This Article 
 Bibliographic References 
 Add to: 
Preserving Abstraction in Concurrent Programming
February 1988 (vol. 14 no. 2)
pp. 258-263

Recent programming languages have attempted to provide support for concurrency and for modular programming based on abstract interfaces. Building on experience of adding monitors to CLU, a language oriented towards data abstraction, it is explained how these two goals conflict. In particular, the clash between conventional views on interface abstraction and the programming style required for avoiding monitor deadlock is discussed. It is argued that the best compromise between these goals is a combination of a fine-grain locking mechanism together with a method for explicitly defining concurrency properties for selected interfaces.

[1] P. Brinch Hansen,Operating System Principles, Englewood Cliffs, NJ: Prentice-Hall, 1973.
[2] D.H. Craft, "Resource Management in a Decentralized System,"Proc. Ninth ACM Symp. Operating System Principles, ACM Press, New York, Order No. 534830, 1983, pp. 11-19.
[3] C. A. R. Hoare, "Towards a theory of parallel programming," inOperating Systems Techniques, C. A. R. Hoare and R. H. Perrott, Eds. New York: Academic, 1972, pp. 61-71.
[4] C. A. R. Hoare, "Monitors: an operating system structuring concept,"Commun. ACM, vol. 17, no. 10, pp. 549-557, Oct. 1974.
[5] 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.
[6] B. Liskovet al., CLU Reference Manual(Lecture Notes in Computer Sci., vol. 114). Berlin: Springer-Verlag, 1981.
[7] A. Lister, "The problem of nested monitor calls,"Oper. Syst. Rev., vol. 11, no. 3, pp. 5-7, July 1977.
[8] J. G. Mitchell, W. Maybury, and R. Sweet,Mesa Language Manual, Xerox PARC, Palo Alto, CA, Apr. 1979.
[9] Ada Programming Language, U.S. Dep. Defense, Standard ANSI/ MIL-STD-1815A, Washington, DC, 1983.
[10] N. Wirth, "Modula-2," ETH Zurich, Tech. Rep. 36, Mar. 1980.

Index Terms:
concurrent programming; programming languages; modular programming; abstractinterfaces; CLU; data abstraction; interface abstraction; monitor deadlock; fine-grain locking; data structures; high level languages; parallel programming; system recovery
R.C.B Cooper, K.G. Hamilton, "Preserving Abstraction in Concurrent Programming," IEEE Transactions on Software Engineering, vol. 14, no. 2, pp. 258-263, Feb. 1988, doi:10.1109/32.4643
Usage of this product signifies your acceptance of the Terms of Use.