Hacker News new | past | comments | ask | show | jobs | submit login

There's an approach to compilation where you take the input program, but instead of running it you output what the interpreter would do, as a new program. So you get meh performance but you have an executable.

Here's a project doing that: https://news.ycombinator.com/item?id=19508616

This is a theory around this approach: https://en.wikipedia.org/wiki/Partial_evaluation#Futamura_pr...




Yep yep, we're talking about the same thing. I like to call it an inline interpreter.

It's a nice compromise. The emit-logic can be kept fairly uniform and low-maintenance since its more or less identical to the regular interpreter.

I got around 10% increased performance on a Forth in C for whatever that's worth.

One thing to keep in mind is to use functions in the emitted code rather than simply dumping everything in a pile. Most compilers don't deal well with code piles from my experience , which makes the code both compile and run slower than it could.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: