ABSTRACT
We show how to analyze the denotational semantics for a programming language to obtain a compiler and a suitable target machine for the language. We do this by rewriting the equations using suitable combinators. The machine operates by simulating the reduction sequences for the combinator terms. The reduction sequences pass through certain standard forms, which become an architecture for the machine, and the combinators become machine instructions. Despite the abstract nature of its development, the machine greatly resembles a conventional one. The method is illustrated by a simple expression language with procedures and input-output.
- Brosgol, B.M. "TCOLAda and the 'Middle End' of the PQCC Ada Compiler" Proc. ACM-SIGPLAN Symposium on the ADA Programming Languages, SIGPLAN Notices 15, 11 (November, 1980), 101--112. Google ScholarDigital Library
- Clarke, T., P. Gladstone, C. Maclean, and A. Norman. "SKIM- The S, K, I Reduction Machine" Proc. 1980 LISP Conf., 128--135. Google ScholarDigital Library
- Curry, H. B., and Feys, R. Combinatory Logic, Vol. 1. North- Holland, Amsterdam, 1958.Google Scholar
- Federhen, S. "A Mathematical Semantics for PLANNER" M.S. Thesis, University of Maryland, 1980.Google Scholar
- Gordon, M.J.C. The Denotational Description of Programming Languages, Springer, Berlin, 1979. Google ScholarDigital Library
- Jones, N. D. (ed.) Semantics-Directed Compiler Generation, Lecture Notes in Comp. Sci., Vol. 94, Springer, Berlin, 1980. Google ScholarDigital Library
- Jones, N. D., and Schmidt, S. "Compiler Generation from Denotational Semantics" in Semantics-Directed Compiler Generation (N.D. Jones, ed), pp. 70--93. Springer Lecture Notes in Computer Science, Vol. 94 (Berlin, 1980). Google ScholarDigital Library
- Morris, F. L. "Advice on Structuring Compilers and Proving Them Correct" Proc. ACM Symp. on Principles of Programming Languages (Boston, 1973), 144--152. Google ScholarDigital Library
- Mosses, P. D. "Mathematical Semantics and Compiler Generation", D. Phil thesis, Oxford Univ., 1975.Google Scholar
- Mosses, P. D. "A Constructive Approach to Compiler Correctness", Automata, Languages, and Programming, Seventh Colloquium (1980). Google ScholarDigital Library
- O'Donnell, Michael. Computing in Systems Described by Equations, Springer Lecture Notes in Computer Science, Vol. 58, Springer, Berlin, 1977. Google ScholarDigital Library
- Raoult, J. C., and Sethi, R. "On metalanguages for a compiler generator: properties of a notation for combining functions", manuscript, Bell Laboratories, Murray Hill, N.J. (July, 1981).Google Scholar
- Raskovsky, M., and Collier, P. "From Standard to Implementation Denotational Semantics", in Semantics-Directed Compiler Generation (N. D. Jones, ed.) Springer, Berlin, 1980. Google ScholarDigital Library
- Sethi, R. "Circular Expressions: elimination of static environments" Automata, Languages, and Programming, 8th Colloquium, Acre. Lecture Notes in Computer Science, Vol. 115, Springer, Berlin, 1981. Google ScholarDigital Library
- Stoy, Joseph E. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory MIT Press, Cambridge, MA, 1977. Google ScholarDigital Library
- Thatcher, J. W., Wagner, E. G., and Wright, J. B. "More on Advice on Structuring Compilers and Proving Them Correct" Theoret. Comp. Sci. 15 (1981), 223--249.Google ScholarCross Ref
- Turner, D. A. "A New Implementation Technique for Applicative Languages" Software: Practice and Experience 9 (1979), 31--49.Google ScholarCross Ref
- Wand, M. "Deriving Target Code as a Representation of Continuation Semantics," to appear, ACM Trans. on Prog. Lang. and Sys. Google ScholarDigital Library
- Wand, M. "Different Advice on Structuring Compilers and Proving Them Correct" Indiana University Computer Science Department, Technical Report No. 95 (September, 1980).Google Scholar
- Semantics-directed machine architecture
Recommendations
Operational semantics-directed compilers and machine architectures
We consider the task of automatically constructing intermediate-level machine architectures and compilers generating code for these architectures, given operational semantics for source languages. We use operational semantics in the form of abstract ...
A truly generative semantics-directed compiler generator
Proceedings of the 1982 SIGPLAN symposium on Compiler constructionThis paper describes semantic processing in the compiler generating system MUG2. MUG2 accepts high-level descriptions of the semantics of a programming language including full runtime semantics, data flow analysis, and optimizing transformations. This ...
A truly generative semantics-directed compiler generator
SIGPLAN '82: Proceedings of the 1982 SIGPLAN symposium on Compiler constructionThis paper describes semantic processing in the compiler generating system MUG2. MUG2 accepts high-level descriptions of the semantics of a programming language including full runtime semantics, data flow analysis, and optimizing transformations. This ...
Comments