Skip to main content

Programming Languages for Real-Time Systems

  • Chapter
Embedded Systems Design

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3436))

Abstract

The real-time and embedded systems market is huge and growing all the time. It has been estimated that 100 times more processors are destined for embedded systems rather than the desktop [Egg02]. Embedded real-time systems [Bur01]:

  • are mainly small (for example, mobile phones) but can also be extremely large and complex (for example air traffic control systems)

  • have potentially complex mathematical models of their controlled environment

  • must be dependable

  • are inherently concurrent

  • must interact within the time frame of the environment

  • must interact with low-level mechanisms such as hardware devices and memory management faculties.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. Aldea Rivas, M., Gonzalez Harbour, M.: Application-Defined Scheduling in Ada. IRTAW 11, Ada Letters XXII(4), 77–84 (2002)

    Article  Google Scholar 

  2. Bacon, D.F., Cheng, P., Rajan, V.T.: A Real-Time Garbage Collector with Low Overhead and Consistent Utilization. In: Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 285–298 (2003)

    Google Scholar 

  3. Bar, M.: Programming Embedded Systems in C and C++. O’Riely (1999)

    Google Scholar 

  4. Black, A.P., et al .: Timber: A Programming Language for Real-Time Embedded Systems. PacSoft Technical Report, Department of Computer Science and Engineering, Oregon Health and Science University (2002), http://www.cse.ogi.edu/PacSoft/publications/2002/Timber-2002-04.pdf

  5. Bernat, G., Burns, A.: Implementing a Flexible Scheduler in Ada. In: Strohmeier, A., Craeynest, D. (eds.) Ada-Europe 2001. LNCS, vol. 2043, pp. 179–190. Springer, Heidelberg (2001)

    Google Scholar 

  6. Back, G., Tullmann, P., Stoller, L.: Java Operating Systems: Design an Implementation. Department of Computer Science, University of Utah (1998)

    Google Scholar 

  7. Bollella, G., Brosgol, B., Dibble, P., Furr, S., Gosling, J., Hardin, D., Turnbull, M.: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)

    Google Scholar 

  8. Burns, A., Wellings, A.J.: Real-Time Systems and Programming Languages, 3rd edn. Addison Wesley, Reading (2001)

    Google Scholar 

  9. Burns, A., Wellings, A.J.: Accessing Delay Queue. Proceedings of IRTAW11, Ada Letters XXI(4), 72–76 (2002)

    Article  Google Scholar 

  10. Burns, A., Dobbing., Vardanega, T.: Guide for Using the Ravenscar Profile in High Integrity Systems. YCS-2003-348, University of York (2003)

    Google Scholar 

  11. Carnahan, L., Ruark, M. (eds.): Requirements for Real-time Extensions for the Java Platform. NIST Publication 5000-243 (1999), http://www.nist.gov/rtjava (last accessed 20/8/2002)

  12. Deters, M., Cytron, R.K.: Automated Discovery of Scoped Memory Regions for RealTime Java. In: ACM ISMM 2002, Berlin, Germany (2002)

    Google Scholar 

  13. Dibble, P., Wellings, A.J.: The Real-Time Specification for Java: Current Status and Future Directions. In: Proceedings of the Seventh International Symposium on Object-Oriented Real-time Distributed Computing, ISORC (2004)

    Google Scholar 

  14. Eggermont, L.D.J. (ed.): Embedded Systems Roadmap 2002, Technology Foundation (STW), STW 2002 ISBN: 90-73461-30-8

    Google Scholar 

  15. Franz, M., Fröhlich, P.H., Kistker, T.: Towards Language Support for Component-Oriented Real-Time Programming. In: 5th Workshop on Object-Oriented Real-Time Dependable Systems, WORDS 2000, pp. 125–130 (2000)

    Google Scholar 

  16. Henriksson, R.: Scheduling Garbage Collection in Embedded Systems, PhD Thesis, Department of Computer Science, Lund University, Sweden (1998)

    Google Scholar 

  17. Hilderink, G.: A New Java Thread Model for Concurrent Programming of Real-Time Systems. Real-Time Magazine (1998)

    Google Scholar 

  18. Higuera, T., et al.: Memory Management for Real-time Java: an Efficient Solution using Hardware Support. Real-Time Systems Journal. Kluwer Academic Publishers (2002)

    Google Scholar 

  19. Java Community Process, JSR50, JSR 50: Distributed Real-Time Specification (2000), http://www.jcp.org/jsr/detail/50.jsp (last accessed 20/8/2002)

  20. Java Community Process, JSR133, JSR 133: Java Memory Model and Thread Specification Revision (2001), http://www.jcp.org/jsr/detail/133.jsp (last accessed 20/8/2002)

  21. Java Community Process, JSR166, JSR 166: Concurrency Utililities (2002), http://www.jcp.org/jsr/detail/166.jsp (last accessed 20/8/2002)

  22. Consortium, J.: Realtime Core Extensions, Revision 1.0.14 (2000), http://www.jconsortium.org/rtjwg/index.html (last accessed 20/8/2002)

  23. Kim, T., et al.: Scheduling Garbage Collection for Embedded Real-Time Systems. In: ACM Workshop on Language, Compilers and Tools for Embedded Systems (LCTES 1999), pp. 55–64 (1999)

    Google Scholar 

  24. Kligerman, E., Stoyenko, A.: Real-Time Euclid, A Language for Relaible Real-Time Systems. IEEE Transactions on Software Engineering, SE 12(9), 941–949 (1986)

    Google Scholar 

  25. Krause, K.H., Hartmann, W.: RT JAVA Proposal (1999), http://www.jconsortium.org/rtjw

  26. Kwon, J., Wellings, A.J., King, S.: Ravenscar-Java: A High-Integrity Profile for Real-Time Java. Java Grande, 131–140 (2002)

    Google Scholar 

  27. Lee, I., Gehlot, V.: Language Constructs for Distributed Real-Time Programming. In: Proceedings of the Real-Time Systems Symposium, pp. 57–66. IEEE Computer Socitey, Los Alamitos (1985)

    Google Scholar 

  28. McGhan, H., O’Connor, M.: picoJava: a Direct Execution Engine for Java Bytecode. IEEE Computer (1998)

    Google Scholar 

  29. Miyoshi, A., Tokuda, H., Kitayama, T.: Implementation and Evaluation of Real-Time Java Threads. In: Real-Time Systems Symposium, IEEE Computer Society, Los Alamitos (1997)

    Google Scholar 

  30. Nilsen, K.: Adding Real-Time Capabilities to Java. Communications of the ACM (1998)

    Google Scholar 

  31. Page, I.: Constrcuting Hardware-Software Systems from a Single Decription. Journal of VLSI Signal Processing 12(1), 87–107 (1996)

    Article  MathSciNet  Google Scholar 

  32. Palopoli, L., Buttazzo, B., Ancilotti, P.: A C Language Extension for Programming Real-Time Applications. In: 6th International Conference on Real-Time Computing Systems and Applications, pp. 103–110. IEEE, Los Alamitos (1999)

    Google Scholar 

  33. Poletto, M., et al.: C and tcc: A Language and Compiler for Dynamic Code Generation. ACM Transactions on Programming Languages and Systems 21(2), 324–369 (1999)

    Article  Google Scholar 

  34. Randell, B.: System Structure for Software Fault Tolerance. IEEE Transactions on Software Engineering, SE 1(2), 65–75 (1975)

    Google Scholar 

  35. Ritzau, T., Fritzon, P.: Decreasing memory over-head in hard real-time garbage collection. In: Sangiovanni-Vincentelli, A.L., Sifakis, J. (eds.) EMSOFT 2002. LNCS, vol. 2491, Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  36. Romanovsky, A., et al. (eds.): ECOOP-WS 2000. LNCS, vol. 2022. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  37. Salcianu, A., Rinard, M.C.: Pointer and Escape Analysis for Multithreaded Programs. In: Proceedings of the 8th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2001)

    Google Scholar 

  38. Shrivastava, S.: Concurrent Pascal with Backward Error Recovery. Software- Practice and Experience 9(12), 1001–1020 (1979)

    Article  MATH  Google Scholar 

  39. Siebert, F.: Real-Time Garbage Collection in Multi-Threaded Systems on a Single Microprocessor. IEEE Real-Time Systems Symposium, 277–278 (1999)

    Google Scholar 

  40. Siebert, F.: Hard Realtime Garbage Collection in Modern Object Oriented Programming Languages. In: AICAS (2002) ISBN: 3-8311-3893-1

    Google Scholar 

  41. Vardanega, T. (ed.): In: Proceedings of the 12th International Real-Time Ada Workshop, Ada letters, vol. XXIII (4) (2003)

    Google Scholar 

  42. Ward, M., Audsley, N.C.: Hardware Implementation of Programming Languages for Real-Time. In: Proceedings of the 8th IEEE Real-Time and Embedded Technology and Applications Symposium, pp. 276–285 (2002)

    Google Scholar 

  43. Wellings, A.J., Clark, R., Jenson, D., Wells, D.: A Framework for Integrating the Real-Time Specification for Java and Java’s Remote Method Invocation. In: Proceedings of the Fifth International Symposium on Object-Oriented Real-time Distributed Computing, ISORC 2002, pp. 13–23 (2002)

    Google Scholar 

  44. Wellings, A.J.: Concurrent and Real-Time Programming in Java. Wiley, Chichester (2004)

    Google Scholar 

  45. Werun, W., Windauer, H.: Intrdouction to PEARL: Process and Experiment Realtime Language. Friedr. Vieweg Sohn (1985)

    Google Scholar 

  46. Wirth, N.: Modula: A Language for Modular Multiprogramming. Software- Practice and Experience 7(1), 3–35 (1977)

    MATH  Google Scholar 

Download references

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Bouyssounouse, B., Sifakis, J. (2005). Programming Languages for Real-Time Systems. In: Embedded Systems Design. Lecture Notes in Computer Science, vol 3436. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31973-3_25

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-31973-3_25

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-25107-1

  • Online ISBN: 978-3-540-31973-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics