News for hackers. Stuff that matters.
Re:Essentials of Interpretation by seanmcdirmid on Thursday March 12, 2020 @12:08AM (#22553681)
With something like the dynamic language runtime, even code generation can be easy. Too bad it hasn’t been copied on other platforms outside of .NET.
Re:Essentials of Interpretation by chrisseaton on Thursday March 12, 2020 @05:25AM (#22555097)
What does .NET do to make code generation easy?
Re:Essentials of Interpretation by seanmcdirmid on Thursday March 12, 2020 @09:58AM (#22556892)
The DLR as I mentioned is an API for dynamic code generation that hooks into the platform’s JIT. The code you can generate with it runs fairly fast (as fast as other JITTed code)
Re:Essentials of Interpretation by chrisseaton on Thursday March 12, 2020 @11:38AM (#22557948)
Do you mean just generating bytecode through an API? That's a completely trivial problem in the first place - just linearise your AST. When people talk about 'code generation' they mean the complexity of native instruction scheduling and selection.

And if you want to just generate byetecode doesn't Truffle on Java do that far better than DLR? Truffle seemed to actually achieve what DLR promised but never really managed - genuine support for dynamic languages on .NET/JVM.

Re:Essentials of Interpretation by seanmcdirmid on Thursday March 12, 2020 @12:11PM (#22558276)
The DLR had two parts: support for dynamic languages, and a strongly typed API for generating expression trees at run time. The second component is the one that survived and is fairly robust. It is quick, skipping the bytecode stage completely, and is fully typed.