With ONR Support, GrammaTech developed a general tool, the Synthesizer Generator, for creating language-based environments from formal specifications. Using a declarative language, an editor designer prepares a specification that includes rules defining a language's context-free abstract syntax, context-sensitive attributions, concrete input syntax, concrete display format, and transformations. From this specification, the Generator creates a full-screen editor for manipulating objects according to these rules. The Synthesizer Generator uses attribute grammars to compute derived information about the object being edited. The fundamental algorithmic importance of the Synthesizer Generator are its algorithms that incrementally recompute attribute values after an editing change. These incremental algorithms permit immediate response when objects are being manipulated through a generated editor.