Content area
A limitation of current selection-entry syntax-directed editors is that a particular editor is limited to manipulating programs in one particular programming language. The IMEGS research project was initiated with one of its two primary goals being to have one selection-entry syntax-directed editor be able to manipulate programs in a variety of block-structured languages. For each language that can be used in the IMEGS editor, the syntactic and semantic definition for that language is stored in a file. When invoking IMEGS, the user chooses the desired programming language and the contents of the language file are read and are used as parameters of the syntax-directed environment. Production templates are defined for the language using a general context-free syntax, while an operator-precedence parser is used for the incremental compilation of phrases. The second primary goal of IMEGS was to allow an IMEGS system user to specify the language definition incrementally. The IMEGS environment provides software tools for this purpose.
A prototype which meets the primary goals of the IMEGS research project has been implemented at Texas A&M. The prototype demonstrates that a single syntax-directed programming environment can be used for construction of programs in several block-structured languages. The IMEGS project has also shown that a language in a syntax-directed environment can be defined incrementally without having to reconstruct the programming environment with each change to the language definition, as must be done for compilers generated by compiler-compilers and syntax-directed editors constructed using syntax-directed editor generators.