Principles of Real-Time Programming

  • Christoph M. Kirsch
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2491)


Real-time programming is a software engineering discipline that has been around ever since the dawn of digital computing. The dream of real-time programmers is to unlock the virtually unlimited potential of software for embedded computer systems - digital computers that are supposed to behave like analog devices. The perfect embedded computer system is invisibly hybrid, it works according to the largely unidentified laws of embedded software but acts according to the laws of physics. The critical interface between embedded software and physics is real-time and yet, while physical processes evolve in real-time, software processes do not. Only the embedded computer system as a whole - embedded software and hardware - determines a complex notion of so-called soft-time to which the software processes adhere: mapping soft-time to real-time is the art of real-time programming. We discuss various realtime programming models that support the development of real-time programs based on different abstractions of soft-time. We informally introduce a real-time process model to study (1) the compositionality of the real-time programming models and (2) the semantics of real-time programs developed in these models.


Process Action Code Block Embed Software Time Safety Embed Process 
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.
    G. Berry. The foundations of Esterel. In C. Stirling G. Plotkin and M. Tofte, editors, Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, 2000.Google Scholar
  2. 2.
    G. Berry, S. Ramesh, and R. K. Shyamasundar. Communicating reactive processes. In Conference Record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 85–98, 1993.Google Scholar
  3. 3.
    G. Buttazzo. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. Kluwer, 1997.Google Scholar
  4. 4.
    N. Halbwachs. Synchronous Programming of Reactive Systems. Kluwer, 1993.Google Scholar
  5. 5.
    N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language Lustre. Proc. of the IEEE, 79(9), 1991.Google Scholar
  6. 6.
    T.A. Henzinger, B. Horowitz, and C.M. Kirsch. Giotto: A time-triggered language for embedded programming. In Proc. First International Workshop on Embedded Software (EMSOFT), LNCS 2211, pages 166–184. Springer Verlag, 2001.Google Scholar
  7. 7.
    T.A. Henzinger and C.M. Kirsch. The Embedded Machine: predictable, portable real-time code. In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 315–326, 2002.Google Scholar
  8. 8.
    T.A. Henzinger, C.M. Kirsch, R. Majumdar, and S. Matic. Time safety checking for embedded programs. In Proc. Second International Workshop on Embedded Software (EMSOFT), LNCS. Springer Verlag, 2002.Google Scholar
  9. 9.
    C.M. Kirsch, M.A.A. Sanvido, T.A. Henzinger, and W. Pree. A Giotto-based helicopter control system. In Proc. Second International Workshop on Embedded Software (EMSOFT), LNCS. Springer Verlag, 2002.Google Scholar
  10. 10.
    E.A. Lee. Embedded software. In M. Zelkowitz, editor, Advances in Computers, volume 56. Academic Press, 2002.Google Scholar
  11. 11.
    C. Liu and J. Layland. Scheduling algorithms for multiprogramming in a hard-real-time environment. Journal of the ACM, 20(1), 1973.Google Scholar
  12. 12.
    S. Malik and Y.-T. Li. Performance Analysis of Real-Time Embedded Software. Kluwer, 1999.Google Scholar
  13. 13.
    D. Pilaud and N. Halbwachs. From a synchronous declarative language to a temporal logic dealing with multiform time. In Proc. of the Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems, LNCS 331, pages 99–110. Springer Verlag, 1988.Google Scholar
  14. 14.
    J. Sifakis. Modeling real-time systems-challenges and work directions. In Proc. First International Workshop on Embedded Software (EMSOFT), LNCS 2211, pages 373–389. Springer Verlag, 2001.Google Scholar
  15. 15.
    N. Wirth. Toward a discipline of real-time programming. Communications of the ACM, 20(8):577–583, 1977.zbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Christoph M. Kirsch
    • 1
  1. 1.Department of Electrical Engineering and Computer SciencesUniversity of CaliforniaBerkeley

Personalised recommendations