Modular platform-independent object-oriented efficient rewriting compilers can be developed with minimal effort by integrating current object-oriented compiler technologies in Java. We describe integration innovations that allow rapid production of source-to-source translation programs (compilers) implemented through traditional compiler construction techniques and tools. The innovation is the incorporation of the null-object pattern to capture epsilon (null) productions in a parse tree, allowing rapid development of domain-specific languages. The generated syntax trees, augmented with transformation functions, possess flexible traversal patterns that simplify code generation. Two prototypes, one used to develop a tiny language, DBCSV, that facilitates data transfers between comma-separated value text files and database systems, the other a bootstrapping refinement, are discussed. |