Engineering a Simple, Efficient Code Generator Generator

  • David R. Hanson ,
  • Todd A. Proebsting ,
  • Christopher Fraser

Published by Association for Computing Machinery, Inc.

Publication

Many code generator generators use tree pattern matching and dynamic programming. This note describes a simple program that generates matchers that are fast, compact, and easy to understand. It is simpler than common alternatives: 200-700 lines of Icon or 950 lines of C versus 3000 lines of C for Twig and 5000 for burg. Its matchers run up to 25 times faster than Twig’s. They are necessarily slower than burg’s BURS (bottom-up rewrite system) matchers but they are more flexible and still practical.