The Three Projections of Doctor Futamura (2009)
blog.sigfpe.com
blog.sigfpe.com
> Truffle works by taking your interpreter and generating a compiler by partial evaluation. So I believe they have written a JVM bytecode interpreter and Truffle makes the JIT.
> I'm super impressed by how the Truffle/GraalVM team has been able to turn this theoretical concept into a system that yields production grade compilers
My understanding of this idea is that it potentially enables the architecture of software systems to be drastically transformed at runtime and over time.
Imagine if your software system (Kuberentes manifests, sourcecode, firewall rules, cloud resources such as SQS, autoscaling groups, RDB databases and so on) was all represented by a single AST and you can transform the AST to handle a new constraint by just transforming the AST which could lead to a system that looks completely different.