Lambda the Ultimate

inactiveTopic Refill - A Generative Java Dialect
started 1/13/2003; 1:39:26 PM - last post 1/13/2003; 7:15:58 PM
Bryn Keller - Refill - A Generative Java Dialect  blueArrow
1/13/2003; 1:39:26 PM (reads: 1567, responses: 1)
Refill - A Generative Java Dialect
Kasper Osterbye, Refill - a generative java dialect (presentation and paper), ECOOP'02

It has become popular to extend the Java programming language to experiment with different new and old language ideas. If the extension requires changes to the syntax, extensions are typically done by adapting an existing compiler, or by building a pre-processor. The pre-processor approach has the disadvantage that it is difficult to integrate static error checking, the adaptation approach has the disadvantage that standard compilers are optimised for speed and not flexibility. Hence they are not geared towards experiments in language extension. The refill compiler generator for Java is our attempt to provide an environment where one can experiment with Java extensions that requires extensions to syntax, static semantic checking, and where final code generation is done by generating base level Java.

There's also a powerpoint presentation here.
Posted to implementation by Bryn Keller on 1/13/03; 1:40:14 PM

Michael Vanier - Re: Refill - A Generative Java Dialect  blueArrow
1/13/2003; 7:15:58 PM (reads: 414, responses: 0)
As I understand it, this is sort of like a macro approach with more static type-checking. I like the general idea, but I can see some pitfalls:

First, the java grammar is complex enough as it is. Anyone trying to make a non-trivial extension is likely to encounter shift/reduce and/or reduce/reduce conflicts which may thwart the extension effort altogether. To me, this is a good argument for syntactically simple languages like lisp/scheme, which don't have this problem.

Second, the authors don't address the issue of debugging. When you run your extended code through a debugger, do you see the original (extended syntax) code or the macro transformation? This can very adversely affect the usability of macro systems.

Also, it's all vaporware for now ;-) Still, it's an interesting paper.