Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Issues in the design of a parallel object-oriented language

Published: 01 March 1989 Publication History

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.

References

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 1985 Eindhoven, the Netherlands Philips Research Laboratories
[4]
America P. Definition of the Programming Language POOL-T ESPRIT Project 415 Document 91 1985 Eindhoven, the Netherlands Philips Research Laboratories
[5]
America P. A Proof Theory for a Sequential Version of POOL ESPRIT Project 415 Document 188 1986 Eindhoven, the Netherlands Philips Research Laboratories
[6]
America P. Inheritance and Subtyping in a Parallel Object-Oriented Language 1987 Paris, France Springer-Verlag 234-242
[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 1988 Eindhoven, the Netherlands Philips Research Laboratories
[9]
America P. Standard Classes for POOL2 ESPRIT Project 415 Document 365 1988 Eindhoven, the Netherlands Philips Research Laboratories
[10]
America P. Standard Units for POOL2 ESPRIT Project 415 Document 366 1988 Eindhoven, the Netherlands Philips Research Laboratories
[11]
America P. Rationale for the Design of POOL2 ESPRIT Project 415 Document 393 1988 Endhoven, the Netherlands Philips Research Laboratories
[12]
America P. Also appeared Philips Journal of Research 1989 44 2/3 365-383
[13]
America P. and de Bakker J. Designing Equivalent Semantic Models for Process Creation Theoretical Computer Science 1988 60 2 109-176
[14]
America P. and de Boer F. A Proof System for a Parallel Language with Dynamic Process Creation ESPRIT Project 415 Document 445 1988 Eindhoven, the Netherlands Philips Research Laboratories
[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 1986 Amsterdam, the Netherlands Centre for Mathematics and Computer Science
[19]
Andrews G. R. and Schneider F. B. Concepts and Notations for Concurrent Programming ACM Computing Surveys 1983 15 1 3-43
[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 1981 3 4 431-483
[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 1980 2 3 359-385
[23]
Backus J. Can Programming be Liberated from the Von Neumann Style? — a Functional Style and Its Algebra of Programs Communications of the ACM 1978 21 8 613-641
[24]
Baeten J. C. M., Bergstra J. A., and Klop J. W. On the Consistency of Koomen's Fair Abstraction Rule Theoretical Computer Science 1987 51 1, 2 129-176
[25]
de Bakker J. W. and Zucker J. I. Processes and the Denotational Semantics of Concurrency Information and Control 1982 54 70-120
[26]
Bergstra J. A. and Klop J. W. Process Algebra for Synchronous Communication Information and Control 1984 60 109-137
[27]
Bergstra J. A. and Klop J. W. Algebra of Communicating Processes with Abstraction Theoretical Computer Science 1985 37 1 77-121
[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 1984 Amsterdam, the Netherlands Centre for Mathematics and Computer Science
[30]
Black A., Hutchinson N., Jul E., Levy H., and Carter L. Distribution and Abstract Types in Emerald IEEE Transactions on Software Engineering 1987 SE-13 1 65-76
[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 1982 Herts, United Kingdom British Standards Institution
[34]
Cardelli L. A Semantics of Multiple Inheritance Information and Computation 1988 76 138-164
[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 1966 9 9 671-678
[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 1986 Aachen, West Germany Lehrstuhl für Informatik, RWTH Aachen
[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 1985 7 4 622-636
[44]
Gerth R. and de Roever W. P. A Proof System for Concurrent Ada Programs Science of Computer Programming 1984 4 2 159-204
[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 1977 8 323-364
[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 1969 12 10 576-580
[52]
Hoare C. A. R. Communicating Sequential Processes Communications of the ACM 1978 21 8 666-677
[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 1987 Amsterdam, the Netherlands Centre for Mathematics and Computer Science
[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 1982 Pasadena, California California Institute of Technology, Computer Science Department
[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 1982 25 7 419-428
[63]
Meyer B. Eiffel: Programming for Reusability and Extendibility ACM SIGPLAN Notices 1987 22 2 85-99
[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 1987 Paris, France Springer-Verlag 171-180
[66]
Odijk E. A. M. de Bakker J. W., Nijman A. J., and Treleaven P. C. The DOOM System and its Applications: a Survey of ESPRIT 415 Subproject A Proc. PARLE: Parallel Architectures and Languages Europe. Volume I:Parallel Architectures 1987 Eindhoven, the Netherlands Springer-Verlag 461-479
[67]
Owicki S. and Gries D. An Axiomatic Proof Technique for Parallel Programs I Acta Informatica 1976 6 319-340
[68]
Plotkin G. D. A Powerdomain Construction SIAM Journal on Computing 1976 5 3 452-487
[69]
Plotkin G. D. A Structural Approach to Operational Semantics Report DAIMI FN-19 1981 Aarhus, Denmark Aarhus University, Computer Science Department
[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 1988 Amsterdam, the Netherlands Centre for Mathematics and Computer Science
[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 1985 Hudson, Massachusetts Digital Equipment Corporation, Eastern Research Lab
[74]
Seitz C. L. The Cosmic Cube Communications of the ACM 1985 28 1 22-33
[75]
Shaw, M. (ed.):ALPHARD: Form and Content. Springer-Verlag, 1981.
[76]
Smith A. J. Cache Memories ACM Computing Surveys 1982 14 3 473-530
[77]
Smyth M. B. Power Domains Journal of Computer and System Sciences 1978 16 23-36
[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 1982 14 1 93-143
[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 1986 Amsterdam, the Netherlands Centre for Mathematics and Computer Science
[83]
Wirth, N.:Programming in Modula-2. Springer-Verlag, 1982.
[84]
Wouters R. A Generalized Select Statement for POOL ESPRIT Project 415 Document 430 1988 Eindhoven, the Netherlands Philips Research Laboratories
[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) 1985 Nafplion, Greece Springer-Verlag 509-519

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Formal Aspects of Computing
Formal Aspects of Computing  Volume 1, Issue 1
Mar 1989
410 pages
ISSN:0934-5043
EISSN:1433-299X
Issue’s Table of Contents

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Accepted: 15 October 1989
Received: 15 October 1989
Published: 01 March 1989
Published in FAC Volume 1, Issue 1

Author Tags

  1. Object-oriented programming
  2. Parallelism
  3. Programming language design

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)40
  • Downloads (Last 6 weeks)9
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media