Skip to main content
Log in

Procol

A concurrent object-oriented language with protocols delegation and constraints

Acta Informatica Aims and scope Submit manuscript

Cite this article

Abstract

PROCOL is an object-oriented language with distributed delegation. It strongly supports concurrency: many objects may be active simultaneously, they execute in parallel unless engaged in communication. An object has exported operations, called Actions. Only one Action can be active at a time, however special interrupt Actions may interrupt regular Actions. Communication is performed via remote procedure call, or via a one-way synchronous message with short-time binding. In communications both client and server can be specified, either by object instance identifiers, or by type. Therefore client-server mappings may be 1-1,n-1, or 1-n, though only 1 message is transferred. PROCOL controls object access by an explicit per-object protocol. This protocol is a specification of the legality and serialization of the interaction between the object and its clients. It also provides for client type checking. The use of protocols in object communication fosters structured, safer and potentially verifiable information exchange between objects. The protocol also plays an important role as a partial interface specification. In addition it acts as a composition rule over client objects, representing relations with the client objects. PROCOL's communication binding is dynamic (run-time); it functions therefore naturally in a distributed, incremental and dynamic object environment. PROCOL also supports constraints, without compromising information hiding. An implementation is available in the form of aC extension.

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.

Institutional subscriptions

References

  1. Agha, G., Hewitt, C.: Concurrent programming using Actors. In: Yonezawa, A., Tokoro, M. (eds.) Object-oriented concurrent programming, pp. 37–53. Cambridge: MIT Press 1987

    Google Scholar 

  2. America, P.: POOL-T: A parallel object-oriented language. In: Yonezawa, A., Tokoro, M. (eds.) Object-oriented concurrent programming, pp. 199–220. Cambridge: MIT Press 1987

    Google Scholar 

  3. Bal, H.E., Tanenbaum, A.S.: Distributed programming with shared data. Proceedings IEEE Conference on Computer Languages, pp. 82–91. Washington: IEEE 1988

    Google Scholar 

  4. Borning, A., Duisberg, R.: Constraint-based tools for user interface. ACM Trans. Graphics5(4), 345–374 (1986)

    Google Scholar 

  5. Campbell, R.H., Habermann, A.N.: The specification of process synchronization by path expressions (Lect. Notes Comput. Sci., Vol. 16, pp. 89–102). Berlin Heidelberg New York: Springer 1974

    Google Scholar 

  6. Cox, B.J.: Object-oriented programming. An evolutionary approach. Reading: Addison-Wesley 1987

    Google Scholar 

  7. Dahl, O.-J., Myhrhaug, B., Nygaard, K.: Simula 67 common base language (NCC Publications S-52). Oslo: Norwegian Computing Center 1967

    Google Scholar 

  8. Feldman, J.: High-level programming for distributed computing. Commun. ACM22(6), 353–359 (1979)

    Google Scholar 

  9. Gehani, N.: The concurrent C programming language. Reading, Mass.: Addison-Wesley 1989

    Google Scholar 

  10. Hewitt, C.: Laws for communicating parallel processes. In: Gilchrist, B. (eds.), IFIP Information Processing, Vol. 77, pp. 987–992. Amsterdam: North-Holland 1977

    Google Scholar 

  11. Hoare, C.A.R.: Communicating sequential processing. Commun. ACM21(8), 666–677 (1978)

    Google Scholar 

  12. Ichbiah, J. et al.: Rationale for the design of the ADA programming language. Sigplan Notices (ACM)14(6) (1979), part B (1980)

  13. Leler, W.: Constraint programming languages. Their specification and generation. Reading Mass: Addison-Wesley 1988

    Google Scholar 

  14. Liskov, B., Snyder, A., Atkinson, R., Schaffert, C.: Abstraction mechanisms in CLU. Commun. ACM20(8), 564–575 (1977)

    Google Scholar 

  15. Meyer, B.: Object-oriented software construction. Englewood Cliffs: Prentice Hall 1988

    Google Scholar 

  16. Oosterom, P. van, Laffra, C.: Persistent graphical objects in PROCOL. In: Bézivin, J., Meyer, B., Nerson, J.M. (eds). TOOLS 2, the TOOLS'90 Proceedings, pp. 271–283, 1990

  17. Schaffert, C., Cooper, T., Bullis, B., Kilian, M., Wilpolt, C.: An introduction to Trellis/Owl. ACM Conference Proceedings OOPSLA'86, Portland, Special Issue. SigPlan Notices23(11), 9–16 (1986)

    Google Scholar 

  18. Shaw, M., Wulf, W.A., London, R.L.: Abstraction and verification in Alphard: defining and specifying iteration and generators. Commun. ACM20(8), 553–564 (1977)

    Google Scholar 

  19. Stein, L.A.: Delegation is Inheritance. ACM Conference Proceedings OOPSLA'87, Orlando, Special Issue. SigPlan Notices22(12), 138–146 (1987)

    Google Scholar 

  20. Stroustrup, B.: The C++ programming language. Reading, Mass.: Addison-Wesley 1986

    Google Scholar 

  21. Tripathi, A., Berge, E., Aksit, M.: An implementation of the object-oriented concurrent programming language SINA. Software-Pract. Exp.19(3), 235–256 (1989)

    Google Scholar 

  22. Bos, J. van den, Plasmeijer, M.J., Stroet, J.W.M.: Process communication based on input specifications. ACM-TOPLAS (Trans. Programm. Languages Syst.)3(3), 224–250 (1981)

    Google Scholar 

  23. Bos, J. van den: ABSTRACT INTERACTION TOOLS: A language for user interface management systems. ACM-TOPLAS (Trans. Programm. Languages Syst.)10(2), 215–247 (1988)

    Google Scholar 

  24. Bos, J. van den: PCOL — A protocol-constrained object language. SIGPLAN Notices22(9), 14–19 (1987)

    Google Scholar 

  25. Bos, J. van den: PROCOL — A protocol-constrained concurrent object-oriented language. SIGPLAN Notices, (Special Issue)24(4), 149–151 (1989)

    Google Scholar 

  26. Bos, J. van den, Laffra, C.: PROCOL — A parallel object language with protocols. ACM Conference Proceedings OOPSLA'89, New Orleans (Special Issue) SigPlan Notices23(11), 95–102 (1989)

    Google Scholar 

  27. Bos, J. van den: PROCOL — A protocol-constrained concurrent object-oriented language. Inform. Process. Lett.32, 221–227 (1989)

    Google Scholar 

  28. Xerox Learning Research Group: The Smalltalk-80 system. BYTE6(8), 36–48 (1981)

    Google Scholar 

  29. Yonezawa, A., Briot, J.-P., Shibayama, E.: Object-oriented concurrent programming in ABCL/1. ACM Conference Proceedings OOPSLA'86, Portland (Special Issue) SigPlan Notices21 (10), 258–268 (1989)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This author is supported by the Dutch Science Organization NWO

Rights and permissions

Reprints and Permissions

About this article

Cite this article

van den Bos, J., Laffra, C. Procol. Acta Informatica 28, 511–538 (1991). https://doi.org/10.1007/BF01463943

Download citation

  • Received:

  • Issue Date:

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

Keywords

Navigation