This Article 
 Bibliographic References 
 Add to: 
Language Constructs for Specifying Concurrency in CDL
August 1989 (vol. 15 no. 8)
pp. 977-993

A description is given of language constructs for specifying concurrency in CDL*. The main goals in designing the language have been: modular specification, data integrity, and expressiveness. The language constructs are presented, and it is shown through examples how the constructs mirror the goals. The major advantages of the constructs are as follows: (1) data integrity is achieved without resorting to mutual exclusion unnecessarily, (2) dynamic resource management is achieved safely guaranteeing the anonymity of the dynamically allocating resources, and (3) similar components can be packaged together without resorting to sequential access. Various features of the language are illustrated through examples. In short, the language provides a step towards integrating abstraction mechanisms and specification techniques. Some of the features in CDL* are compared to some of the features available in other languages, including distributed programming languages.

[1] G. R. Andrews, "Synchronizing resources,"ACM Trans. Program. Lang. Syst., vol. 3, no. 4, pp. 405-430, Oct. 1981.
[2] G. R. Andrews and J. McGraw, "Language features for process interactions," inProc. ACM Conf. Language Deign for Reliable Software, Raleigh, NC, 1977.
[3] G. R. Andrews and F. B. Schneider, "Concepts and notations for concurrent programming,"ACM Comput. Surveys, vol. 15, no. 1, pp. 3-43, Mar. 1983.
[4] T. Bloom, "Evaluating synchronization mechanisms," inProc. Seventh Symp. Operating Systems Principles, ACM-SIGOPS, Dec. 1979.
[5] P. Brinch Hansen, "The programming language Concurrent Pascal,"IEEE Trans. Software Eng., vol. SE-2, pp. 199-206, 1975.
[6] R. H. Campbell and A. N. Habermann. "The specification of process synchronization by path expressions." inLecture Notes in Computer Science vol. 16, Operating Systems, Apr. 1974, pp. 89-102.
[7] N. Gehani and A. D. McGettrick, Eds.,Software Specification Techniques. Reading, MA: Addison Wesley, 1986.
[8] R. T. Gerth, W. P. deRoever, and M. Roncken,Procedures and Concurrency(LNCS, vol. 137). New York: Springer-Verlag, 1982, pp. 132-163.
[9] C. E. Hewitt, "Viewing control structures as patterns of passing messages,"J. Artificial Intell., vol. 8, no. 3, pp. 323-364, 1977.
[10] B. T. Hailpern,Verifying Concurrent Processes Using Temporal Logic(Lecture Notes in Computer Science no. 129). New York: Springer-Verlag, 1982.
[11] C. A. R. Hoare, "Monitors: an operating system structuring concept,"Commun. ACM, vol. 17, no. 10, pp. 549-557, Oct. 1974.
[12] J. H. Howard, "Proving monitors,"Commun. ACM, vol. 19, pp. 273-279, May 1976.
[13] Common Design Language: CDL, Software Eng. Inst. (SEI), IBM, NY, Sept. 1983.
[14] J. L. W. Kessels, "An alternative to event queues for synchronization in monitors,"Commun. ACM, vol. 20, pp. 500-503, 1977.
[15] L. Lamport, "Specifying Concurrent ProgramModules,"ACM Trans. Programming Languages and Systems, Vol. 5, No. 2, Apr. 1983, pp. 190-222.
[16] B. W. Lampson and D. D. Redell, "Experiences with processes and monitors in Mesa,"Commun. ACM, vol. 23, no. 2, pp. 105-117, Feb. 1980.
[17] L. Y. Liu and R. K. Shyamasundar, "An operational semantics of real-time design language RT-CDL," Pennsylvania State Univ., Tech. Rep., 1988.
[18] F. Oles and J. W. Thatcher, "CDL/2 Language Discussion," IBM Internal Rep., Yorktown Heights, NY, Aug. 1984.
[19] S. Owicki and D. Gries, "Verifying properties of parallel programs: An axiomatic approach,"Commun. ACM, vol. 19, pp. 279-285, May 1976.
[20] D. L. Parnas, "The non-problem of nested monitor calls,"ACM Operat. Syst. Rev., vol. 12, no. 1, pp. 12-14, 1978.
[21] A. Pnueli,The Temporal Semantics of Concurrent Programs(LNCS, vol. 70). New York: Springer-Verlag, 1979, pp. 1-20.
[22] R. K. Shyamasundar and J. W. Thatcher, "'CDL*: Language constructs and proof rules," IBM T. J. Watson Research Center, Yorktown Heights, NY, Internal Rep., 1986.
[23] A. Silberschatz, R. B. Kieburtz, and A. J. Bernstein, "Extending Concurrent Pascal to allow dynamic resource management,"IEEE Trans. Software Eng., vol. SE-3, pp. 210-217, 1977.
[24] J. W. Thatcher and F. Oles, "Proposed CDL/2 grammer: Line by line comparison with CDL/1," IBM, Yorktown Heights, NY, Internal Rep., Aug. 1984.
[25] P. Wegner and S. A. Smolka, "Processes, tasks, and monitors: A comparative study of concurrent programming primitives,"IEEE Trans. Software Eng., vol. SE-9, pp. 446-462, 1983.
[26] N. Wirth, "Modula: A language for modular programming,"Software Practice and Experience, vol. 7, pp. 3-35, 1977.
[27] W. A. Wulf, R. L. London, and M. Shaw, "An introduction to the construction and verification of Alphard programs,"IEEE Trans. Software Eng., vol. SE-2, no. 4, pp. 253-265, 1976.

Index Terms:
CDL* concurrency specification; language constructs; modular specification; data integrity; expressiveness; mutual exclusion; dynamic resource management; anonymity; dynamically allocating resources; abstraction mechanisms; specification techniques; CDL*; distributed programming languages; data integrity; parallel programming; specification languages
R.K. Shyamasundar, J.W. Thatcher, "Language Constructs for Specifying Concurrency in CDL," IEEE Transactions on Software Engineering, vol. 15, no. 8, pp. 977-993, Aug. 1989, doi:10.1109/32.31354
Usage of this product signifies your acceptance of the Terms of Use.