Correctness of Code Generation from a Two-Level Meta-Language

We present a two-level denotational metalanguage suitable for defining programming languages with procedures as second class citizens. Code generation is developed for a slight restriction of this metalanguage and this generalizes previous algebraic approaches. This paper focuses on the correctness proof of the code generation; in particular the method used for directly proving equivalence between an operational and a denotational semantics and the modification of Reynolds' idea of a relational functor.

[1]  Peter D. Mosses A Constructive Approach to Compiler Correctness , 1980, ICALP.

[2]  Hanne R. Nielson,et al.  Pragmatic Aspects of Two-Level Denotational Meta-Languages , 1986, ESOP.

[3]  Peter Dybjer,et al.  Using Domain Algebras to Prove the Correctness of a Compiler , 1985, STACS.

[4]  James W. Thatcher,et al.  More on Advice on Structuring Compilers and Proving them Correct , 1979, Theor. Comput. Sci..

[5]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[6]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[7]  Nielson Flemming,et al.  Abstract interpretation using domain theory , 1984 .

[8]  Flemming Nielson,et al.  Code generation from two-level denotational meta-languages , 1985, Programs as Data Objects.

[9]  Harald Ganzinger,et al.  Programs as Data Objects , 1986, Lecture Notes in Computer Science.

[10]  Michael J. C. Gordon,et al.  The Denotational Description of Programming Languages , 1979, Springer New York.

[11]  Robin Milner,et al.  An Algebraic Definition of Simulation Between Programs , 1971, IJCAI.

[12]  F. Lockwood Morris,et al.  Advice on structuring compilers and proving them correct , 1973, POPL.

[13]  Luca Cardelli The Functional Abstract Machine , 1983 .

[14]  Gordon D. Plotkin,et al.  The category-theoretic solution of recursive domain equations , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[15]  John C. Reynolds,et al.  On the Relation between Direct and Continuation Semantics , 1974, ICALP.