Abstract
Program compilation can be formally defined as a sequence of equivalence-preserving transformations, or refinements, from high-level language programs to assembler code. Recent models also incorporate timing properties, but the resulting formalisms are prohibitively complex. Here we take advantage of a new, simple model of real-time refinement to present a straightforward formalism for compilation that incorporates real-time constraints.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
J. A. Bergstra, T. B. Dinesh, J. Field, and J. Heering. A complete transformational toolkit for compilers. Technical Report CS-R9601, Computer Science, Centrum voor Wiskunde en Informatica, January 1996.
E. Börger and I. Durdanović. Correctness of compiling occam to transputer code. The Computer Journal, 39(1):52–92, 1996.
G. J. Chaitin. Register allocation and spilling via graph coloring. ACM SIGPLAN Notices, 17(6), June 1982.
C. J. Fidge. Modelling program compilation in the refinement calculus. In D. J. Duke and A. S. Evans, editors, 2nd BCS-FACS Northern Formal Methods Workshop, Electronic Workshops in Computing. Springer-Verlag, 1997. http://ewic.springer.co.uk/workshops/NFM97/.
C. N. Fischer and R. J. LeBlanc, Jr. Crafting a Compiler. Benjamin/Cummings, 1988.
P. H. B. Gardiner and C. C. Morgan. Data refinement of predicate transformers. Theoretical Computer Science, 87:143–162, 1991.
M. Gordon. A formal method for hard real-time programming. In J. M. Morris and R. C. Shaw, editors, 4th Refinement Workshop, pages 378–410. Springer-Verlag, 1991.
K. J. Gough. Multi-target compiler development: Evolution of the Gardens Point compiler project. In H. Mössenböck, editor, Modular Programming Languages, volume 1204 of Lecture Notes in Computer Science. Springer-Verlag, 1997.
S. Grundon, I. J. Hayes, and C. J. Fidge. Timing constraint analysis. In C. Mc-Donald, editor, Computer Science’ 98: Proc. 21st Australasian Computer Science Conference, pages 575–586. Springer-Verlag, 1998.
R. W. S. Hale. Program compilation. In J. Bowen, editor, Towards Verified Systems, volume 2 of Real-Time Safety Critical Systems, chapter 7, pages 131–146. Elsevier, 1994.
I. J. Hayes. Separating timing and calculation in real-time refinement. In J. Grundy, M. Schwenke, and T. Vickers, editors, International Refinement Workshop & Formal Methods Pacific’ 98, Discrete Mathematics and Theoretical Computer Science, pages 1–16. Springer-Verlag, 1998.
I. J. Hayes and M. Utting. A sequential real-time refinement calculus. Technical Report 97-33, Software Verification Research Centre, University of Queensland, August 1997. http://svrc.it.uq.edu.au/Bibliography/svrc-tr.html?97-33.
He Jifeng. Provably Correct Systems. McGraw-Hill, 1995.
C. A. R. Hoare. Refinement algebra proves correctness of compiling specifications. In C. Morgan and J. Woodcock, editors, 3rd Refinement Workshop, pages 33–48. Springer-Verlag, 1990.
K. Lermer and C. J. Fidge. Compilation as refinement. In L. Groves and S. Reeves, editors, Formal Methods Pacific’ 97, pages 142–164. Springer, 1997.
K. Lermer and C. J. Fidge. A methodology for compilation of high-integrity real-time programs. In C. Lengauer, M. Griebel, and S. Gorlatch, editors, Euro-Par’97: Parallel Processing, volume 1300 of Lecture Notes in Computer Science, pages 1274–81. Springer-Verlag, 1997. Longer version available as Software Verification Research Centre Technical Report 96-18.
K. C. Louden. Compiler Construction: Principles and Practice. PWS Publishing Company, 1997.
C. Morgan. Programming from Specifications. Prentice-Hall, second edition, 1994.
G. Morrisett, D. Walker, K. Crary, and N. Glew. From System F to Typed Assembly Language. In Proc. 1998 Symposium on Principles of Programming Languages, San Diego, 1998.
M. Müller-Olm. Modular Compiler Verification: A Refinement-Algebraic Approach Advocating Stepwise Abstraction, volume 1283 of Lecture Notes in Computer Science. Springer-Verlag, 1997.
T. S. Norvell. Machine code programs are predicates too. In D. Till, editor, Sixth Refinement Workshop, pages 188–204. Springer-Verlag, 1994.
N. Ramsey and M. F. Fernández. Specifying representations of machine instructions. ACM Transactions on Programming Languages and Systems, 19(3):492–524, May 1997.
S. Sendall. Semantics of machine instructions. Honours thesis, Department of Computer Science and Electrical Engineering, The University of Queensland, October 1997.
M. Utting and C. J. Fidge. A real-time refinement calculus that changes only time. In He Jifeng, John Cooke, and Peter Wallis, editors, BCS-FACS Seventh Refinement Workshop, Electronic Workshops in Computing. Springer-Verlag, 1996. http://ewic.springer.co.uk/workshops/7RW/.
D. Watson. High-Level Languages and Their Compilers. Addison-Wesley, 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lermer, K., Fidge, C. (1999). A Formal Model of Real-Time Program Compilation. In: Katoen, JP. (eds) Formal Methods for Real-Time and Probabilistic Systems. ARTS 1999. Lecture Notes in Computer Science, vol 1601. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48778-6_12
Download citation
DOI: https://doi.org/10.1007/3-540-48778-6_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66010-1
Online ISBN: 978-3-540-48778-4
eBook Packages: Springer Book Archive