ComputingComputer ScienceComputer SystemsProgramming LanguagesSemanticsSyntaxFormal SemanticsInterpreter DesignParsingProgramming Language ImplementationType CheckingType SystemsAbstract SemanticsAbstract Syntax ModelingConcrete Syntax ModelingDenotational ModelsLambda Calculus SemanticsLanguage SyntaxParser GeneratorsSyntax-directed Interpretation
We have written a set of computer programs for testing and exercising programming language specifications given in the style of denotational semantics. The system is built largely in Scheme 84, a dialect of LISP that serves as an efficient lambda-calculus interpreter. The system consists of:• a syntax-directed transducer, which embodies the principle of compositionality,• a type checker, which is extremely useful in debugging semantic definitions, and• an interface to the yacc parser-generator, which allows the system to use concrete syntax rather than the often cumbersome abstract syntax for its programs.In this paper, we discuss the design of the system, its implementation, and discuss its use.
12
Yacc : Yet Another Compiler Compiler
S. C. Johnson, Murray Hill · 1978 · 1.2K citations
R. M. Burstall, David MacQueen, Donald Sannella · 1980 · 351 citations
Charles M. Geschke, James H. Morris, Edwin H. Satterthwaite · Communications of the ACM · 1977 · 162 citations · Full text
Compiling a functional language
Luca Cardelli · 1984 · 154 citations · Full text