Jeff Smits, Gabriël Konat, Eelco Visser. From Whole Program Compilation to Incremental Compilation: A Critical Case. In Second Workshop on Incremental Computing (IC 2019). October 2019.
We introduce a design approach for incremental compilers that we believe may be applicable to other languages. We demonstrate it on the critical case of Stratego, a term rewriting language with open extensibility features. After a brief overview of the open extensibility features, we show our compilation method, which is somewhere in between separate and incremental compilation. Our approach allows us to reuse almost all of the existing compiler while gaining great improvements in recompilation speed. We evaluate the new compiler with a benchmark on the version control history of a large Stratego project.