Ada95: An effective concurrent programming language

  • A. Burns
  • A. J. Wellings
Invited Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1088)

Abstract

The concurrency facilities within Ada 95 are more comprehensive than in any other language. Through a discussion of three case studies, this paper shows how the language abstractions supported by Ada can be combined to build effective higher-level abstractions. The three examples concern a concurrency problem, a fault tolerance requirement and a scheduling (real-time) issue. Together they illustrate that many of the criticisms that were rightly focused on Ada 83 have been addressed by the language revision.

Keywords

Atomic Action Concurrent Programming Application Task Optional Part Protected Object 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bloom, T. (1979). Evaluating synchronisation mechanisms, Proceedings of the Seventh ACM Symposium on Operating System Principles, Pacific Grove, pp. 24–32.Google Scholar
  2. Brinch-Hansen, P. (1972). Structured multiprogramming, CACM 15(7):574–578.Google Scholar
  3. Brinch-Hansen, P. (1973). Operating System Principles, Prentice-Hall, New Jersey.Google Scholar
  4. Burns, A. and Wellings, A. J. (1995). Concurrency in Ada, Cambridge University Press.Google Scholar
  5. Burns, A., Lister, A. and Wellings, A. (1987). A Review of Ada Tasking, Lecture Notes in Computer Science, Volume 262, Springer-Verlag.Google Scholar
  6. Davis, R., Tindell, K. and Burns, A. (1993). Scheduling slack time in fixed priority pre-emptive systems, Proceedings Real-Time Systems Symposium, pp. 222–231.Google Scholar
  7. Hoare, C. (1972). Towards a theory of parallel programming, Operating Systems Techniques, Academic Press, pp. 61–71.Google Scholar
  8. Hoare, C. (1974). Monitors — an operating system structuring concept, CACM 17(10):549–557.Google Scholar
  9. Lehoczky, J. and Ramos-Thuel, S. (1992). An optimal algorithm for scheduling soft-aperiodic tasks fixed-priority preemptive systems, Proceedings Real-Time Systems Symposium, pp. 110–123.Google Scholar
  10. Liu, J., Lin, K., Shih, W., Yu, A., Chung, J. and Zhao, W. (1991). Algorithms for scheduling imprecise computations, IEEE Computer pp. 58–68.Google Scholar
  11. Lomet, D. (1977). Process structuring, synchronisation and recovery using atomic actions, Proceedings ACM Conference Language Design for Reliable Software SIGPLAN, pp. 128–137.Google Scholar
  12. Randell, B., Lee, P. and Treleaven, P. (1978). Reliability issues in computing system design, ACM Computing Surveys 10(2):123–165.Google Scholar
  13. Wellings, A. and Burns, A. (1996). Implementing atomic actions in Ada 95, Technical Report YCS.263, Department of Computer Science, University of York.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • A. Burns
    • 1
  • A. J. Wellings
    • 1
  1. 1.Real-Time Systems Research Group Department of Computer ScienceUniversity of YorkUK

Personalised recommendations