A Formal Model of Real-Time Program Compilation

  • Karl Lermer
  • Colin Fidge
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1601)


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.


Assignment Statement Program Counter Machine Code Intermediate Language Integer Representation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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.Google Scholar
  2. 2.
    E. Börger and I. Durdanović. Correctness of compiling occam to transputer code. The Computer Journal, 39(1):52–92, 1996.CrossRefGoogle Scholar
  3. 3.
    G. J. Chaitin. Register allocation and spilling via graph coloring. ACM SIGPLAN Notices, 17(6), June 1982.Google Scholar
  4. 4.
    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. Scholar
  5. 5.
    C. N. Fischer and R. J. LeBlanc, Jr. Crafting a Compiler. Benjamin/Cummings, 1988.Google Scholar
  6. 6.
    P. H. B. Gardiner and C. C. Morgan. Data refinement of predicate transformers. Theoretical Computer Science, 87:143–162, 1991.MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    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.Google Scholar
  8. 8.
    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.Google Scholar
  9. 9.
    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.Google Scholar
  10. 10.
    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.Google Scholar
  11. 11.
    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.Google Scholar
  12. 12.
    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. Scholar
  13. 13.
    He Jifeng. Provably Correct Systems. McGraw-Hill, 1995.Google Scholar
  14. 14.
    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.Google Scholar
  15. 15.
    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.Google Scholar
  16. 16.
    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.CrossRefGoogle Scholar
  17. 17.
    K. C. Louden. Compiler Construction: Principles and Practice. PWS Publishing Company, 1997.Google Scholar
  18. 18.
    C. Morgan. Programming from Specifications. Prentice-Hall, second edition, 1994.Google Scholar
  19. 19.
    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.Google Scholar
  20. 20.
    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.CrossRefzbMATHGoogle Scholar
  21. 21.
    T. S. Norvell. Machine code programs are predicates too. In D. Till, editor, Sixth Refinement Workshop, pages 188–204. Springer-Verlag, 1994.Google Scholar
  22. 22.
    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.CrossRefGoogle Scholar
  23. 23.
    S. Sendall. Semantics of machine instructions. Honours thesis, Department of Computer Science and Electrical Engineering, The University of Queensland, October 1997.Google Scholar
  24. 24.
    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. Scholar
  25. 25.
    D. Watson. High-Level Languages and Their Compilers. Addison-Wesley, 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Karl Lermer
    • 1
  • Colin Fidge
    • 1
  1. 1.Software Verification Research CentreThe University of QueenslandQueenslandAustralia

Personalised recommendations