1985 · 24 citations · 8 references
ComputingComputer ScienceCompilersProgramming LanguagesSemanticsAbstract Syntax TreesProgramming Language DesignSyntax Analysis
The intermediate representations (IR) used by most compilers have an operational semantics. The nodes in the graph (or tree, or quad-code sequence) have an interpretation as the operation codes of some abstract machine. A denotational semantics, in which each node in the IR graph has a static meaning, can lead to a clean interface between the front and back ends of the compiler. Furthermore, it is possible to concisely specify a code generator to translate the denotational representation into machine code. Combined with recent work allowing the denotational specification of front ends to translate the input language into the IR, a complete compiler with a well-defined semantics may be generated. Using this technique, compilers have been written for (most of) Pascal and C which, although they compile slowly, produce fairly good machine code. July 25, - 1 - 1 1. Introduction The intermediate representations (IR) used by most compilers have an operational semantics. The nodes in the gra...
8
R. M. Burstall, David MacQueen, Donald Sannella · 1980 · 351 citations
A semantics-directed compiler generator
Lawrence C. Paulson · 1982 · 91 citations · Full text