Skip to main content
Log in

Issues in the design of a parallel object-oriented language

  • Published:
Formal Aspects of Computing

Abstract

This paper discusses the considerations that have played a role in the design of the language POOL2. This language integrates the structuring techniques of object-oriented programming with mechanisms for expressing parallelism. We introduce the basic principles of object-oriented programming and its significance for program development methodologies. Several approaches for integrating objects and parallelism are compared and arguments for the choices made in POOL2 are presented. We also explain why inheritance is not yet included in POOL2. A brief overview of the research in formal aspects of POOL is given. Finally we indicate some directions for future developments.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Agha, G.:Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.

  2. Allen, R., Callahan, D. and Kennedy, K.: Automatic Decomposition of Scientific Programs for Parallel Execution. InProc. 14th POPL, Munich, West Germany, 21–23 January 1987, pp. 63–76.

  3. America, P.: A Sketch of POOL-S, a Simplified Version of POOL1. ESPRIT Project 415 Document 27, Philips Research Laboratories, Eindhoven, the Netherlands, February 1985.

    Google Scholar 

  4. America, P.: Definition of the Programming Language POOL-T. ESPRIT Project 415 Document 91, Philips Research Laboratories, Eindhoven, the Netherlands, September 1985.

    Google Scholar 

  5. America, P.: A Proof Theory for a Sequential Version of POOL. ESPRIT Project 415 Document 188, Philips Research Laboratories, Eindhoven, the Netherlands, October 1986.

    Google Scholar 

  6. America, P.: Inheritance and Subtyping in a Parallel Object-Oriented Language.ECOOP'87:European Conference on Object-Oriented Programming, Paris, France, 15–17 June 1987, pp. 234–242, Lecture Notes in Computer Science 276, Springer-Verlag.

    Google Scholar 

  7. America, P.: POOL-T — a Parallel Object-Oriented Language.Object-Oriented Concurrent Programming, Yonezawa and Tokoro (eds), pp. 199–220, MIT Press, 1987.

  8. America, P.: Definition of POOL2, a Parallel Object-Oriented Language. ESPRIT Project 415 Document 364, Philips Research Laboratories, Eindhoven, the Netherlands, April 1988.

    Google Scholar 

  9. America, P.: Standard Classes for POOL2. ESPRIT Project 415 Document 365, Philips Research Laboratories, Eindhoven, the Netherlands, April 1988.

    Google Scholar 

  10. America, P.: Standard Units for POOL2. ESPRIT Project 415 Document 366, Philips Research Laboratories, Eindhoven, the Netherlands, April 1988.

    Google Scholar 

  11. America, P.: Rationale for the Design of POOL2. ESPRIT Project 415 Document 393, Philips Research Laboratories, Endhoven, the Netherlands, May 1988.

    Google Scholar 

  12. America, P.: A Behavioural Approach to Subtyping in Object-Oriented Programming Languages.Workshop in Inheritance Hierarchies in Knowledge Representation and Programming Languages, Viareggio, Italy, 6–8 February 1989. Also appeared inPhilips Journal of Research, 44 (2/3), 365–383, (1989)

    Google Scholar 

  13. America, P. and de Bakker, J.: Designing Equivalent Semantic Models for Process Creation.Theoretical Computer Science, 60(2), 109–176, (1988).

    Google Scholar 

  14. America, P. and de Boer, F.: A Proof System for a Parallel Language with Dynamic Process Creation. ESPRIT Project 415 Document 445, Philips Research Laboratories, Eindhoven, the Netherlands, October 1988.

    Google Scholar 

  15. America, P. and de Boer, F.: A Proof Theory for a Sequential Version of POOL. Technical Report, Centre for Mathematics and Computer Science, Amsterdam, the Netherlands, 1989. To appear.

  16. America, P. and Rutten, J.: Solving Reflexive Domain Equations in a Category of Complete Metric Spaces.Mathematical Foundations of Programming Language Semantics, M. Main, A. Melton, M. Mislove and D. Schmidt, (eds), pp. 254–288, Lecture Notes in Computer Science 298, Springer-Verlag, 1988. To appear inJournal of Computer and System Sciences.

  17. America, P., de Bakker, J., Kok, J. N. and Rutten, J.: Operational Semantics of a Parallel Object-Oriented Language. Conference Record of the 13th Symposium of Principles of Programming Languages, St. Petersburg, Florida, 13–15 January 1986, pp. 194–208.

  18. America, P., de Bakker, J., Kok, J. N. and Rutten, J.: A Denotational Semantics of a Parallel Object-Oriented Language. Report CS-R8626, Centre for Mathematics and Computer Science, Amsterdam, the Netherlands, August 1986. To appear inInformation and Computation.

    Google Scholar 

  19. Andrews, G. R. and Schneider, F. B.: Concepts and Notations for Concurrent Programming.ACM Computing Surveys, 15(1), 3–43 (1983).

    Google Scholar 

  20. ANSI:The Programming Language Ada Reference Manual, ANSI/MIL-STD-1815A-1983, approved 17 February 1983. Lecture Notes in Computer Science 155, Springer-Verlag, 1983.

  21. Apt, K. R.: Ten Years of Hoare Logic: a Survey-Part I.ACM Transactions on Programming Languages and Systems, 3(4), 431–483 (1981).

    Google Scholar 

  22. Apt, K. R., Francez, N. and de Roever, W. P.: A Proof System for Communicating Sequential Processes.ACM Transactions on Programming Languages and Systems, 2(3), 359–385 (1980).

    Google Scholar 

  23. Backus, J.: Can Programming be Liberated from the Von Neumann Style? — a Functional Style and Its Algebra of Programs.Communications of the ACM, 21(8), 613–641 (1978).

    Google Scholar 

  24. Baeten, J. C. M., Bergstra, J. A. and Klop, J. W.: On the Consistency of Koomen's Fair Abstraction Rule.Theoretical Computer Science, 51(1, 2), 129–176 (1987).

    Google Scholar 

  25. de Bakker, J. W. and Zucker, J. I.: Processes and the Denotational Semantics of Concurrency.Information and Control, 54, 70–120 (1982).

    Google Scholar 

  26. Bergstra, J. A. and Klop, J. W.: Process Algebra for Synchronous Communication.Information and Control, 60, 109–137 (1984).

    Google Scholar 

  27. Bergstra, J. A. and Klop, J. W.: Algebra of Communicating Processes with Abstraction.Theoretical Computer Science, 37(1), 77–121 (1985).

    Google Scholar 

  28. Bergstra, J. A., Klop, J. W. and Olderog, E.-R.: Failures without Chaos: a New Process Semantics for Fair Abstraction.Formal Description of Programming Concepts III — Proceedings of the Third IFIP WG 2.2Working Conference, M. Wirsing, (ed.), Gl. Avernaes, Ebberup, Denmark, 25–28 August 1986, pp. 77–102, North-Holland.

  29. Bergstra, J. A., Klop, J. W. and Tucker, J. V.: Process Algebra with Asynchronous Communication Mechanisms. Report CS-R8410, Centre for Mathematics and Computer Science, Amsterdam, the Netherlands, 1984.

    Google Scholar 

  30. Black, A., Hutchinson, N., Jul, E., Levy, H. and Carter, L.: Distribution and Abstract Types in Emerald.IEEE Transactions on Software Engineering, SE-13(1), 65–76 (1987).

    Google Scholar 

  31. Bobrow, D. G., DeMichiel, L. G., Gabriel, R. P., Keene, S., Kiczales, G. and Moon, D. A.: Common Lisp Object System Specification. Document 88-003, X3J13 standards committee (ANSI Common Lisp), June 1988.

  32. de Boer, F. S.: A Proof Rule for Process Creation.Formal Description of Programming Concepts III — Proceedings of the Third IFIP WG 2.2Working Conference, M. Wirsing, (ed.), Gl. Avernaes, Ebberup, Denmark, 25–28 August 1986, pp. 23–50, North-Holland.

  33. BSI:Specification for the Computer Programming Language Pascal. Standard BS 6192, British Standards Institution, Herts, United Kingdom, 1982.

    Google Scholar 

  34. Cardelli, L.: A Semantics of Multiple Inheritance.Information and Computation, 76, 138–164 (1988).

    Google Scholar 

  35. Clinger, W. D.: Foundations of Actor Semantics. Technical Report 633, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, May 1981.

  36. Cox, B. J.:Object-Oriented Programming. Addison-Wesley, 1986.

  37. Dahl, O.-J. and Nygaard, K.: Simula: an ALGOL-based Simulation Language.Communications of the ACM, 9(9), 671–678 (1966).

    Google Scholar 

  38. Damm, W. and Döhmen, G.: The POOL-Machine: a Top Level Specification for a Distributed Object-Oriented Machine. ESPRIT Project 415 Document 1, Lehrstuhl für Informatik, RWTH Aachen, Aachen, West Germany, 3 October, 1986.

    Google Scholar 

  39. Damm, W., Döhmen, G. and den Haan, P.: Using AADL to Specify Distributed Computer Architectures: a Case Study.Deliverable 3of the Working Group on Semantics and Proof Techniques, J. W. de Bakker, (ed.), Chapter 1.4, ESPRIT Project 415, October 1987.

  40. Dugundji, J.:Topology. Allyn and Bacon, Boston, Massachusetts, 1966.

  41. Engelking, R.:General Topology. Polish Scientific Publishers, 1977.

  42. Feldmann, J. A., Fanty, M. A., Goddard, N. H. and Lyne, K. J.: Computing with Structured Connectionist Networks.Communications of the ACM, 170–187 (1988).

  43. Francez, N. and Yemini, S. A.: Symmetric Intertask Communication.ACM Transactions on Programming Languages and Systems, 7(4), 622–636 (1985).

    Google Scholar 

  44. Gerth, R. and de Roever, W. P.: A Proof System for Concurrent Ada Programs.Science of Computer Programming, 4(2), 159–204 (1984).

    Google Scholar 

  45. Goldberg, A. and Robson, D.:Smalltalk-80,The Language and its Implementation. Addison-Wesley, 1983.

  46. Gordon, M.J.C.:The Denotational Description of Programming Languages: An Introduction. Springer-Verlag, 1979.

  47. Halbert, D. C. and O'Brien, P. D.: Using Types and Inheritance in Object-Oriented Programming.IEEE Software, 71–79 (1987).

  48. Hennessy M. and Plotkin, G.: Full Abstraction for a Simple Parallel Programming Language.Proc. 8th Symposium on Mathematical Foundations of Computer Science, J. Bečvář, (ed.), 1979, pp. 108–120, Lecture Notes in Computer Science 74, Springer-Verlag.

  49. Hewitt, C.: Viewing Control Structures as Patterns of Passing Messages.Artificial Intelligence, 8, 323–364 (1977).

    Google Scholar 

  50. Hillis, W. D.:The Connection Machine. M.I.T. Press, 1985.

  51. Hoare, C. A. R.: An Axiomatic Basis for Computer Programming.Communications of the ACM, 12(10), 576–580, 583 (1969).

    Google Scholar 

  52. Hoare, C. A. R.: Communicating Sequential Processes.Communications of the ACM, 21(8), 666–677 (1978).

    Google Scholar 

  53. Janssens, D. and Rozenberg, G.: Basic Notions of Actor Grammars: a Graph Grammar Model for Actor Computation.Graph-Grammars and Their Application to Computer Science, H. Ehrig, M. Nagl, G. Rozenberg and A. Rosenfeld, eds, pp. 280–298, Lecture Notes in Computer Science 291, Springer-Verlag, 1987.

  54. Kennedy, K.: Automatic Translation of FORTRAN Programs to Vector Form. Technical Report 476-029-4, Rice University, October 1980.

  55. Kok, J. N. and Rutten, J. J. M. M.: Contractions in Comparing Concurrency Semantics. Report CS-R8755, Centre for Mathematics and Computer Science, Amsterdam, the Netherlands, November 1987.

    Google Scholar 

  56. Kowalski, R.Logic for Problem Solving. North-Holland, 1979.

  57. Koymans, R., Vytopil, J. and de Roever, W. P.: Real-time Programming and Asynchronous Message Passing. Proc.Second Annual ACM Symposium on Principles of Distributed Computing, Montreal, Canada, August 1983.

  58. Lang, C. R., Jr.: The Extension of Object-Oriented Languages to a Homogeneous, Concurrent Architecture. Ph.D. thesis, California Institute of Technology, Computer Science Department, Pasadena, California, May 1982. Technical Report 5014:TR:82.

    Google Scholar 

  59. Leih, G.: Actor Graph Grammars and POOL2. PRISMA Project Document 265, University of Leiden, Department of Computer Science, February 1988.

  60. Lieberman, H.: A Preview of Act 1. A.I. Memo 625, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, June 1981.

  61. Liskov, B., Atkinson, R., Bloom, T., Moss, E., Schaffert, J. C., Scheifler, R and Snyder, A.:CLV Reference Manual. Lecture Notes in Computer Science 114, Springer-Verlag, 1981.

  62. Meyer, B.: Principles of Package Design.Communications of the ACM, 25(7), 419–428 (1982).

    Google Scholar 

  63. Meyer, B.: Eiffel: Programming for Reusability and Extendibility.ACM SIGPLAN Notices, 22(2), 85–99 (1987).

    Google Scholar 

  64. Meyer, B.:Object-Oriented Software Construction. Prentice-Hall, 1988.

  65. Moss, J. E. B. and Kohler, W. H.: Concurrency Features for the Trellis/Owl Language.ECOOP '87: European Conference on Object-Oriented Programming, Paris, France, 15–17 June 1987, 171–180, Lecture Notes in Computer Science 276, Springer-Verlag.

    Google Scholar 

  66. Odijk, E. A. M.: The DOOM System and its Applications: a Survey of ESPRIT 415 Subproject A.Proc. PARLE: Parallel Architectures and Languages Europe. Volume I:Parallel Architectures, J. W. de Bakker, A. J. Nijman and P. C. Treleaven, (eds), Eindhoven, the Netherlands, 15–19 June 1987, 461–479, Lecture Notes in Computer Science 258, Springer-Verlag.

    Google Scholar 

  67. Owicki, S. and Gries, D.: An Axiomatic Proof Technique for Parallel Programs I.Acta Informatica, 6, 319–340, 1976.

    Google Scholar 

  68. Plotkin, G. D.: A Powerdomain Construction.SIAM Journal on Computing, 5(3), 452–487 (1976).

    Google Scholar 

  69. Plotkin, G. D.: A Structural Approach to Operational Semantics. Report DAIMI FN-19, Aarhus University, Computer Science Department, Aarhus, Denmark, September 1981.

    Google Scholar 

  70. Plotkin, G. D.: An Operational Semantics for CSP. In D. Bjørner, (ed.),Formal Description of Programming Concepts II, pp. 199–223, North-Holland, 1983.

  71. Rutten, J.: Semantic correctness for a parallel object-oriented language. Report CS-R8843, Centre for Mathematics and Computer Science, Amsterdam, the Netherlands, October 1988. To appear in SIAM Journal of Computing.

    Google Scholar 

  72. Schaffert, C., Cooper, T., Bullis, B., Kilian, M. and Wilpolt, C.: An Introduction to Trellis/Owl.Proc. ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, Portland, Oregon, September 1986, pp. 9–16.

  73. Schaffert, C., Cooper, T. and Wilpolt, C.: Trellis Object-Based Environment — Language Reference Manual. Technical Report DEC-TR-372, Digital Equipment Corporation, Eastern Research Lab, Hudson, Massachusetts, 25 November 1985.

    Google Scholar 

  74. Seitz, C. L.: The Cosmic Cube.Communications of the ACM, 28(1), 22–33 (1985).

    Google Scholar 

  75. Shaw, M. (ed.):ALPHARD: Form and Content. Springer-Verlag, 1981.

  76. Smith, A. J.: Cache Memories.ACM Computing Surveys, 14(3), 473–530 (1982).

    Google Scholar 

  77. Smyth, M. B.: Power Domains.Journal of Computer and System Sciences, 16, 23–36 (1978).

    Google Scholar 

  78. Theriault, D. G.: Issues in the Design and Implementation of Act 2. Technical Report 728, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, June 1983.

  79. Treleaven, P. C., Brownbridge, D. R. and Hopkins, R. P.: Data Driven and Demand Driven Computer Architecture.ACM Computing Surveys, 14(1), 93–143 (1982).

    Google Scholar 

  80. Turner, D. A.: Miranda: a Non-strict Functional Language with Polymorphic Types.Functional Programming Languages and Computer Architecture, J.-P. Jouannaud (ed.), pp. 1–16, Lecture Notes in Computer Science 201, Springer-Verlag, 1985.

  81. Tucker, J. V. and Zucker, J. I.:Program Correctness over Abstract Data Types, with Error-State Semantics. CWI Monographs 6, North-Holland, 1988.

  82. Vaandrager, F. W.: Process Algebra Semantics for POOL. Report CS-R8629, Centre for Mathematics and Computer Science, Amsterdam, the Netherlands, August 1986.

    Google Scholar 

  83. Wirth, N.:Programming in Modula-2. Springer-Verlag, 1982.

  84. Wouters, R.: A Generalized Select Statement for POOL. ESPRIT Project 415 Document 430, Philips Research Laboratories, Eindhoven, the Netherlands, August 1988.

    Google Scholar 

  85. Zwiers, J., de Roever, W. P. and van Emde Boas, P.: Compositionality and Concurrent Networks: Soundness and Completeness of a Proof System.Proc. 12th International Colloquium on Automata, Languages and Programming (ICALP), Nafplion, Greece, 15–19 July 1985, pp. 509–519, Lecture Notes in Computer Science 194, Springer-Verlag.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

America, P. Issues in the design of a parallel object-oriented language. Formal Aspects of Computing 1, 366–411 (1989). https://doi.org/10.1007/BF01887214

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01887214

Key words

Navigation