Dam, Mads; Jensen, Frank Compiler generation from relational semantics. (English) Zbl 0589.68007 Programming, Proc. Eur. Symp., Saarbrücken/FRG 1986, Lect. Notes Comput. Sci. 213, 1-29 (1986). Summary: [For the entire collection see Zbl 0578.00005.] We consider the problem of automatically deriving correct compilers from relational semantic specifications of programming languages. A relational semantics is an assignment of initial-state final-state relations (defined by means of proof rules) to programs. Compilers are generated in three steps. First, the language definition is transformed into a stack semantics in which the storage of semantic values is made explicit. Next, stack rules are assembled into a so called language scheme containing exactly one rule for each language construct. We consider languages for which non-deterministic branches may be replaced by deterministic ones. Finally, rules are expanded for the purpose of recursion detection, thus obtaining schemes which may be used for code generation in a syntax- directed compiler. MSC: 68N01 General topics in the theory of software 68Q55 Semantics in the theory of computing Keywords:correct compilers; relational semantic specifications; programming languages; proof rules; stack semantics; language scheme; language construct; recursion detection; code generation Citations:Zbl 0578.00005 PDFBibTeX XML