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)
[ Parent
| on HN ]
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.