Skip to main content

A Formal Model of Real-Time Program Compilation

  • Conference paper
  • First Online:
Formal Methods for Real-Time and Probabilistic Systems (ARTS 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1601))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. E. Börger and I. Durdanović. Correctness of compiling occam to transputer code. The Computer Journal, 39(1):52–92, 1996.

    Article  Google Scholar 

  3. G. J. Chaitin. Register allocation and spilling via graph coloring. ACM SIGPLAN Notices, 17(6), June 1982.

    Google Scholar 

  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. http://ewic.springer.co.uk/workshops/NFM97/.

    Google Scholar 

  5. C. N. Fischer and R. J. LeBlanc, Jr. Crafting a Compiler. Benjamin/Cummings, 1988.

    Google Scholar 

  6. P. H. B. Gardiner and C. C. Morgan. Data refinement of predicate transformers. Theoretical Computer Science, 87:143–162, 1991.

    Article  MathSciNet  MATH  Google Scholar 

  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. 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. 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. 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. 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. 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.

    Google Scholar 

  13. He Jifeng. Provably Correct Systems. McGraw-Hill, 1995.

    Google Scholar 

  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. 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. 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.

    Chapter  Google Scholar 

  17. K. C. Louden. Compiler Construction: Principles and Practice. PWS Publishing Company, 1997.

    Google Scholar 

  18. C. Morgan. Programming from Specifications. Prentice-Hall, second edition, 1994.

    Google Scholar 

  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. 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.

    Book  MATH  Google Scholar 

  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. 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.

    Article  Google Scholar 

  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. 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/.

    Google Scholar 

  25. D. Watson. High-Level Languages and Their Compilers. Addison-Wesley, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics