Abstract
One of the objectives of denotational semantics is to give a precise description of programming languages that can serve as a standard against which implementations can be verified, or preferably, from which correct compilers can be derived. We want to use a calculational approach to derive correct and efficient implementations for programming languages from their denotational descriptions. Experience [12] has shown that it is not a good idea to validate an implementation a posteriori, rather development and proof should proceed hand in hand. Besides the correctness aspect, a transformational approach can help to understand the relationships that may or may not exist between various implementations, or even suggest alternative methods. This paper provides a leisurely exposition on the development of a calculational approach to semantics directed compiler generation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Stijn Arts and Reijer Grimbergen. Taking a risc; implementing functional languages on a risc. Master’s thesis, University of Nijmegen, 1990.
R.M. Burstall and P.J. Landin. Programs and their proofs: an algebraic approach. Machine Intelligence, 4, 1969.
J Mc Charthy and J Painter. Correctness of a compiler for arithmetic expressions. In Symposium on Applied Mathematics 19, 1967.
L.M Chirica. Contributions to Compiler Correctness. PhD thesis, University of California at LA, USA, 1976.
C. Consel and O. Danvy. Static and dynamic semantics processing. In Proc. ACM POPL’91, 1991.
] Kyung Doh and Dave Schmidt. Extracting strong typing laws from action semantics. Technical report, Kansas State University, 1991.
Peter Dybjer. Using domain algebras to prove the correctness of a compiler. In LNCS 182. Springer.
Peter Lee. Realistic Compiler Generation. MIT press, 1990.
John McCarthy. Towards a mathematical science of computation. In Information Processing 1962. IFIP, North-Holland, 1962.
Erik Meijer. A Calculational Approach to Semantics Directed Compiler Generation. PhD thesis, University of Nijmegen, Toernooiveld, Nijmegen, The Netherlands, To Appear.
John-Jules Ch. Meyer. Programming calculi based on fixed point transformations: semantics and applications. PhD thesis, Vrije Universiteit, Amsterdam, 1985.
R.E. Milne and C. Strachey. A Theory of Programming Language Semantics. Wiley, 1976. 2 volumes.
F.L. Morris. Advice on structuring compilers and proving them correct. In ACM POPL 3, pages 144–152, 1973.
P.D. Mosses. Abstract semantic algebras! In D. Bj0rner, editor, Formal Description of Programming Concepts ll, pages 63–88. North-Holland, 1983.
Peter Mosses. A constructive approach to compiler correctness. In LNCS 94: Workshop on Semantics Directed Compiler Generation. Springer, 1980.
Motorola Semiconductors. m88100 Processor Manual.
John C. Reynolds. Definitional interpreters for higher order programming languages. In 25th ACM Anual Conference, pages 717–740, 1972.
David A. Schmidt. Denotational Semantics. Allyn and Bacon, 1986.
Peter Sestoft and Harald Sondergaard. A bibliography on partial evaluation. SIG-PLAN Notices, 23 (2), 1988.
Ravi Sethi. Circular expressions: Elimination of static environments. Science of Computer Programming, 1: 203–222, 1982.
Joseph E. Stoy. Denotational Semantics, The Scott-Strachey Approach to Programming Language Theory. The MIT press, 1977.
J.W. Tatcher, E.0 Wagner, and J.B Wright. More advice on structuring compilers and proving them correct. In LNCS 94: Workshop on Semantics Directed Compiler Generation. Springer, 1980.
D.A. Watt. Executable semantic descriptions. Software Practice and Experience, 16 (1): 13–43, 1986.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 Springer-Verlag London
About this paper
Cite this paper
Meijer, E. (1992). More Advice on Proving a Compiler Correct: Improve a Correct Compiler. In: Darlington, J., Dietrich, R. (eds) Declarative Programming, Sasbachwalden 1991. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3794-8_17
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3794-8_17
Publisher Name: Springer, London
Print ISBN: 978-3-540-19735-5
Online ISBN: 978-1-4471-3794-8
eBook Packages: Springer Book Archive