The Synthesizer Generator: A System for Constructing Language-Based Editors

The Synthesizer Generator: A System for Constructing Language-Based Editors presents a detailed account of the Synthesizer Generator, a system for automating the construction of customized editors for particular languages. The unique feature of the Synthesizer Generator is its use of an immediate-computation paradigm to perform analysis, translation, and error reporting while an object is being edited. With the Synthesizer Generator one can create programming language environments that incrementally parse, type-check, and compile a program as it is interactively developed. The use of the system is not restricted to programming languages; editors for logics, specification languages, and verification languages can be created as well. The specification language of the Synthesizer Generator is based on the attribute-grammar concept, which plays a major role in the way compiler construction is taught today. For this reason, the Synthesizer Generator is ideal for use in course projects and should be of particular interest to those involved in compiler construction. The Synthesizer Generator is also intended for readers with an interest in software tools and methods for building interactive systems. More than just a user guide for the system, the book contains a wealth of material for those building specialized editors "by hand", without using an editor-generating tool; it discusses the issues that motivated the decisions made in the design of the system, as well as a number of the algorithms used in the system's implementation.