Ada 95: An Effective Concurrent Programming Language

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.

[1]  Toby Bloom,et al.  Evaluating synchronization mechanisms , 1979, SOSP '79.

[2]  Per Brinch Hansen,et al.  Structured multiprogramming , 1972, CACM.

[3]  Alan Burns,et al.  Concurrency in ADA , 1995 .

[4]  Wei-Kuan Shih,et al.  Algorithms for scheduling imprecise computations , 1991, Computer.

[5]  John P. Lehoczky,et al.  An optimal algorithm for scheduling soft-aperiodic tasks in fixed-priority preemptive systems , 1992, [1992] Proceedings Real-Time Systems Symposium.

[6]  Per Brinch Hansen,et al.  Operating System Principles , 1973 .

[7]  Alan Burns,et al.  A Review of Ada Tasking , 1987, Lecture Notes in Computer Science.

[8]  Alan Burns,et al.  Implementing Atomic Actions in Ada 95 , 1997, IEEE Trans. Software Eng..

[9]  Alan Burns,et al.  Scheduling slack time in fixed priority pre-emptive systems , 1993, 1993 Proceedings Real-Time Systems Symposium.

[10]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[11]  Wei Kuan Shih,et al.  Fast algorithms for scheduling imprecise computations , 1989, RTSS 1989.

[12]  Brian Randell,et al.  Reliability Issues in Computing System Design , 1978, CSUR.