Real-Time Program Refinement Using Auxiliary Variables

  • Ian Hayes
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1926)


Real-time program development can be split into a machine- independent phase, that deriv es a machine-independent real-time program from a specification, and a machine-dependent phase, that checks that the compiled program will meet its deadlines when executed on the target machine.

In this paper we extend a machine-independent real-time programming language with auxiliary variables. These are introduced to facilitate both reasoning about the correctness of real-time programs and the expression of timing deadlines, and hence the calculation of timing constraints on paths through a program. The auxiliary variable concept is extended to auxiliary parameters to procedures.


Auxiliary Variable Sequential Composition Main Program Logical Constant Auxiliary Parameter 
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]
    C. J. Fidge, I. J. Hayes, and G. Watson. The deadline command. IEE Proceedings Software, 146(2):104–111, April 1999.CrossRefGoogle Scholar
  2. [2]
    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 Conf. (ACSC’98), Perth, 4-6 Feb., pages 575–586. Springer-Verlag, 1998.Google Scholar
  3. [3]
    I. J. Hayes. Reasoning about non-terminating loops using deadline commands. In Roland Backhouse and Jose Oliveira, editors, Mathematics of Program Construction (MPC’2000), July 2000.Google Scholar
  4. [4]
    I. J. Hayes, C. J. Fidge, and K. Lermer. Semantic identification of dead control-flow paths. Technical Report 99-32, Software Verification Research Centre, The University of Queensland, October 1999.Google Scholar
  5. [5]
    I. J. Hayes and B. P. Mahony. Using units of measurement in formal specifications. Formal Aspects of Computing, 7(3):329–347, 1995.CrossRefGoogle Scholar
  6. [6]
    I. J. Hayes and M. Utting. Coercing real-time refinement: A transmitter. In D. J. Duke and A. S. Evans, editors, BCS-FACS Northern Formal Methods Workshop (NFMW’96), Electronic Workshops in Computing. Springer Verlag, 1997.Google Scholar
  7. [7]
    I. J. Hayes and M. Utting. A sequential real-time refinement calculus. Technical Report UQ-SVRC-97-33, Software Verification Research Centre, The University of Queensland, URL, 1997.
  8. [8]
    E. C. R. Hehner. Termination is timing. In J.L.A. van de Snepscheut, editor, Mathematics of Program Construction, volume 375 of Lecture Notes in Computer Science, pages 36–47. Springer-Verlag, June 1989.Google Scholar
  9. [9]
    E. C. R. Hehner. A Practical Theory of Programming. Springer Verlag, 1993.Google Scholar
  10. [10]
    J. Hooman and O. van Roosmalen. Formal design of real-time systems in a platform-independent way. Parallel and Distributed Computing Practices, 1(2):15–30, 1998.Google Scholar
  11. [11]
    Sung-Soo Lim, Young Hyun Bae, Gyu Tae Jang, Byung-Do Rhee, Sang Lyul Min, Chang Yun Park, Heonshik Shin, Kunsoo Park, Soo-Mook Moon, and Chong Sang Kim. An accurate worst case timing analysis for RISC processors. IEEE Trans. on Software Eng., 21(7):593–604, July 1995.CrossRefGoogle Scholar
  12. [12]
    C. C. Morgan. Programming from Specifications. Prentice Hall, second edition,1994.Google Scholar
  13. [13]
    M. Utting and C. J. Fidge. A real-time refinement calculus that changes only time. In He Jifeng, editor, Proc. 7th BCS/FACS Refinement Workshop, Electronic Workshops in Computing. Springer, July 1996. URL

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Ian Hayes
    • 1
  1. 1.School of Computer Science and Electrical EngineeringThe University of QueenslandBrisbaneAustralia

Personalised recommendations