How D addresses the problem of Extending and/or Embedding other languages ?

via Digitalmars-d digitalmars-d at puremagic.com
Tue Aug 26 04:40:43 PDT 2014


On Tuesday, 26 August 2014 at 06:44:52 UTC, Jacob Carlborg wrote:
> On 25/08/14 22:34, "Marc Schütz" <schuetzm at gmx.net>" wrote:
>
>> Take Ruby as an example: Ruby is a scripting language that 
>> cannot be
>> compiled to native code (though it can be JITted).
>
> Both MacRuby [1] and RubyMotion [2] supports ahead of time 
> compilation. I'm pretty sure Apple doesn't allow anything else 
> than compiled languages on iOS. Except for HTML and JavaScript.
>
> [1] http://macruby.org/
> [2] http://www.rubymotion.com/

I've heard about them, but I don't know any details. Anyway, the 
way Ruby works, they either need to restrict the language, 
include a full interpreter/jitter, or at most they could only 
translate it to a very abstract level. Like for an expression 
like `a + b` generating a call to a helper function like 
`send(_var_a, SYMBOL(":+"), _var_b);`, and hoping that the 
compiler backend can eliminate this in some cases.

But this doesn't really change my point: it's just another two 
ABIs, and their probably not meant to be public interfaces, to 
let the implementers keep some freedom for future developments.


More information about the Digitalmars-d mailing list