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.
Similar content being viewed by others
References
Agha, G.:Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.
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.
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.
America, P.: Definition of the Programming Language POOL-T. ESPRIT Project 415 Document 91, Philips Research Laboratories, Eindhoven, the Netherlands, September 1985.
America, P.: A Proof Theory for a Sequential Version of POOL. ESPRIT Project 415 Document 188, Philips Research Laboratories, Eindhoven, the Netherlands, October 1986.
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.
America, P.: POOL-T — a Parallel Object-Oriented Language.Object-Oriented Concurrent Programming, Yonezawa and Tokoro (eds), pp. 199–220, MIT Press, 1987.
America, P.: Definition of POOL2, a Parallel Object-Oriented Language. ESPRIT Project 415 Document 364, Philips Research Laboratories, Eindhoven, the Netherlands, April 1988.
America, P.: Standard Classes for POOL2. ESPRIT Project 415 Document 365, Philips Research Laboratories, Eindhoven, the Netherlands, April 1988.
America, P.: Standard Units for POOL2. ESPRIT Project 415 Document 366, Philips Research Laboratories, Eindhoven, the Netherlands, April 1988.
America, P.: Rationale for the Design of POOL2. ESPRIT Project 415 Document 393, Philips Research Laboratories, Endhoven, the Netherlands, May 1988.
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)
America, P. and de Bakker, J.: Designing Equivalent Semantic Models for Process Creation.Theoretical Computer Science, 60(2), 109–176, (1988).
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.
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.
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.
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.
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.
Andrews, G. R. and Schneider, F. B.: Concepts and Notations for Concurrent Programming.ACM Computing Surveys, 15(1), 3–43 (1983).
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.
Apt, K. R.: Ten Years of Hoare Logic: a Survey-Part I.ACM Transactions on Programming Languages and Systems, 3(4), 431–483 (1981).
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).
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).
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).
de Bakker, J. W. and Zucker, J. I.: Processes and the Denotational Semantics of Concurrency.Information and Control, 54, 70–120 (1982).
Bergstra, J. A. and Klop, J. W.: Process Algebra for Synchronous Communication.Information and Control, 60, 109–137 (1984).
Bergstra, J. A. and Klop, J. W.: Algebra of Communicating Processes with Abstraction.Theoretical Computer Science, 37(1), 77–121 (1985).
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.
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.
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).
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.
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.
BSI:Specification for the Computer Programming Language Pascal. Standard BS 6192, British Standards Institution, Herts, United Kingdom, 1982.
Cardelli, L.: A Semantics of Multiple Inheritance.Information and Computation, 76, 138–164 (1988).
Clinger, W. D.: Foundations of Actor Semantics. Technical Report 633, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, May 1981.
Cox, B. J.:Object-Oriented Programming. Addison-Wesley, 1986.
Dahl, O.-J. and Nygaard, K.: Simula: an ALGOL-based Simulation Language.Communications of the ACM, 9(9), 671–678 (1966).
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.
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.
Dugundji, J.:Topology. Allyn and Bacon, Boston, Massachusetts, 1966.
Engelking, R.:General Topology. Polish Scientific Publishers, 1977.
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).
Francez, N. and Yemini, S. A.: Symmetric Intertask Communication.ACM Transactions on Programming Languages and Systems, 7(4), 622–636 (1985).
Gerth, R. and de Roever, W. P.: A Proof System for Concurrent Ada Programs.Science of Computer Programming, 4(2), 159–204 (1984).
Goldberg, A. and Robson, D.:Smalltalk-80,The Language and its Implementation. Addison-Wesley, 1983.
Gordon, M.J.C.:The Denotational Description of Programming Languages: An Introduction. Springer-Verlag, 1979.
Halbert, D. C. and O'Brien, P. D.: Using Types and Inheritance in Object-Oriented Programming.IEEE Software, 71–79 (1987).
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.
Hewitt, C.: Viewing Control Structures as Patterns of Passing Messages.Artificial Intelligence, 8, 323–364 (1977).
Hillis, W. D.:The Connection Machine. M.I.T. Press, 1985.
Hoare, C. A. R.: An Axiomatic Basis for Computer Programming.Communications of the ACM, 12(10), 576–580, 583 (1969).
Hoare, C. A. R.: Communicating Sequential Processes.Communications of the ACM, 21(8), 666–677 (1978).
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.
Kennedy, K.: Automatic Translation of FORTRAN Programs to Vector Form. Technical Report 476-029-4, Rice University, October 1980.
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.
Kowalski, R.Logic for Problem Solving. North-Holland, 1979.
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.
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.
Leih, G.: Actor Graph Grammars and POOL2. PRISMA Project Document 265, University of Leiden, Department of Computer Science, February 1988.
Lieberman, H.: A Preview of Act 1. A.I. Memo 625, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, June 1981.
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.
Meyer, B.: Principles of Package Design.Communications of the ACM, 25(7), 419–428 (1982).
Meyer, B.: Eiffel: Programming for Reusability and Extendibility.ACM SIGPLAN Notices, 22(2), 85–99 (1987).
Meyer, B.:Object-Oriented Software Construction. Prentice-Hall, 1988.
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.
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.
Owicki, S. and Gries, D.: An Axiomatic Proof Technique for Parallel Programs I.Acta Informatica, 6, 319–340, 1976.
Plotkin, G. D.: A Powerdomain Construction.SIAM Journal on Computing, 5(3), 452–487 (1976).
Plotkin, G. D.: A Structural Approach to Operational Semantics. Report DAIMI FN-19, Aarhus University, Computer Science Department, Aarhus, Denmark, September 1981.
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.
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.
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.
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.
Seitz, C. L.: The Cosmic Cube.Communications of the ACM, 28(1), 22–33 (1985).
Shaw, M. (ed.):ALPHARD: Form and Content. Springer-Verlag, 1981.
Smith, A. J.: Cache Memories.ACM Computing Surveys, 14(3), 473–530 (1982).
Smyth, M. B.: Power Domains.Journal of Computer and System Sciences, 16, 23–36 (1978).
Theriault, D. G.: Issues in the Design and Implementation of Act 2. Technical Report 728, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, June 1983.
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).
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.
Tucker, J. V. and Zucker, J. I.:Program Correctness over Abstract Data Types, with Error-State Semantics. CWI Monographs 6, North-Holland, 1988.
Vaandrager, F. W.: Process Algebra Semantics for POOL. Report CS-R8629, Centre for Mathematics and Computer Science, Amsterdam, the Netherlands, August 1986.
Wirth, N.:Programming in Modula-2. Springer-Verlag, 1982.
Wouters, R.: A Generalized Select Statement for POOL. ESPRIT Project 415 Document 430, Philips Research Laboratories, Eindhoven, the Netherlands, August 1988.
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.
Author information
Authors and Affiliations
Rights 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
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF01887214