Experiences with the PSG — Programming System Generator [chapter]

G. Snelting
1985 Lecture Notes in Computer Science  
The programming system generator developed at the Technical University of Darmstadt generates sophisticated interactive programming envirorm~nts from formal language definitions. From a formal, entirely nonprocedural definition of the language's syntax, context conditions and denotational semantics, it produces a hybrid editor, an interpreter and a library syst~n. The editor allows both structure editingandtextediting, guaranteeing immediate recognition of syntax and semantic errors. The
more » ... or has been used to generate environments for PASCAL, MODULA-2 and the formal language definition language itself. A brief description of the generated environments and the definition language is given, and our experiences with formal language definitions are discussed from the language definer's point of view as well as from the programmer's point of view using the generated environments. of a PSG environment. The basic units for editing and interpreting are called fragments. A fragment is an arbitrary part of a program, for example a statanent, a procedure declaration or a whole program. Fragments are internally stored as abstract syntax trees. Fragments may be incuL~lete, that is, subccnloonents may be missing. Missing su~nents are called templates. Bottcm-up system development is provided by c(m~ining fragments, while the fragments themselves are constructed top-down. The editor supports two input modes, which may be mixed freely by the user. In textual mode, the editor behaves like a normal screen-oriented text editor with the uslm~l capabilities to enter, modify, delete, search etc. text. By keystroke, incr~nental syntactic and semantic analysis are invoked.
doi:10.1007/3-540-15199-0_10 fatcat:cbhhzpzps5c4jg2nnhsscjmhnu