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.
|