Boo is an interesting language made in C# that targets .Net. It's compilable and has both static and duck-typing (I think it can be interpreted too? Not sure..).
Take a look here: http://boo.codehaus.org/ I don't see why it wouldn't be possible to do something like that in D. On Sat, Aug 28, 2010 at 1:44 AM, Justin Johansson <n...@spam.com> wrote: > As one who has an interest in developing dynamic languages, I'm > finding that implementing a DL which features both static and dynamic > typing in classical OO/imperative languages to be quite a challenge. > > Recently I came across Microsoft's Dynamic Language Runtime (DLR). > > This "is a runtime environment that adds a set of services for dynamic > languages to the common language runtime (CLR). The DLR makes it easier > to develop dynamic languages to run on the .NET Framework and to add > dynamic features to statically typed languages." > > More info is here: > Dynamic Language Runtime Overview > http://msdn.microsoft.com/en-us/library/dd233052.aspx > > The "Expression Tree" feature is particularly interesting as this > allows AST nodes to directly express computable expressions, which, > in a way, IMHO, unifies the idea that expressions can be thought of > as lazy values. > > "Expression trees represent code in a tree-like data structure, where each > node is an expression, for example, a method call or a binary operation such > as x < y." > > What I'm wondering now is whether languages like D, C++, Java are > really suited for implementing a dynamic languages which feature > a mix of static and dynamic typing capability. My reading so far > suggests that a higher level approach is needed and that's why we > are seeing development of such things as DLR. I'm not sure how > dated this is but time ago there was the Spineless Tagless G-machine > (STG) which was developed to underpin the implementation of the Glasgow > Hashell Compiler. > > The following PDF article by Simon Peyton Jones gives a good rundown > on the STG machine: > > Implementing lazy functional languages on stock hardware: > www.dcc.fc.up.pt/~pbv/aulas/linguagens/peytonjones92implementing.pdf > > Amongst other things, one of the things that seems to be missing in D > which would ease the development of DL's is "pattern matching" > capability such as is found in the Scala language. I seem to recall > that the topic of pattern matching has been briefly discussed on this > ng before (bearophile et. al.???) > > To sum up, I'd really appreciate feedback as to whether or not is > worth considering D as a suitable language for implementing a dynamic > language having a non-trivial type system, or is a higher level > approach (such as DLR or STG) really required? > > Thanks in advance for all responses, > Justin Johansson >