Abstract
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: map** 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.
Supported in part by the DARPA SEC grant F33615-C-98-3614 and the MARCO GSRC grant 98-DT-660.
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
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.
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.
G. Buttazzo. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. Kluwer, 1997.
N. Halbwachs. Synchronous Programming of Reactive Systems. Kluwer, 1993.
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language Lustre. Proc. of the IEEE, 79(9), 1991.
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.
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.
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.
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.
E.A. Lee. Embedded software. In M. Zelkowitz, editor, Advances in Computers, volume 56. Academic Press, 2002.
C. Liu and J. Layland. Scheduling algorithms for multiprogramming in a hard-real-time environment. Journal of the ACM, 20(1), 1973.
S. Malik and Y.-T. Li. Performance Analysis of Real-Time Embedded Software. Kluwer, 1999.
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.
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.
N. Wirth. Toward a discipline of real-time programming. Communications of the ACM, 20(8):577–583, 1977.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kirsch, C.M. (2002). Principles of Real-Time Programming. In: Sangiovanni-Vincentelli, A., Sifakis, J. (eds) Embedded Software. EMSOFT 2002. Lecture Notes in Computer Science, vol 2491. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45828-X_6
Download citation
DOI: https://doi.org/10.1007/3-540-45828-X_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-44307-0
Online ISBN: 978-3-540-45828-9
eBook Packages: Springer Book Archive