The Cornell Program Synthesizer: A Syntax-directed Programming Environment

Tim Teitelbaum and Thomas Reps
Cornell University

Programs are not text; they are hierarchical compositions of computational structures and should be edited, executed, and debugged in an environment that consistently acknowledges and reinforces this viewpoint. The Cornell Program Synthesizer demands a structural perspective at all stages of program development; its separate features are unified by a common foundation: a grammar for the programming language. Its full-screen derivation-tree editor and syntax-directed diagnostic interpreter combine to make the Synthesizer a powerful and responsive interactive programming tool.

Key Words and Phrases: programming environment, program development system, syntax-directed editor, template, diagnostic interpreter, source language debugger.