A Calculus for Modeling Software Components

  • Oscar Nierstrasz
  • Franz Achermann
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2852)


Many competing definitions of software components have been proposed over the years, but still today there is only partial agreement over such basic issues as granularity (are components bigger or smaller than objects, packages, or application?), instantiation (do components exist at run-time or only at compile-time?), and state (should we distinguish between components and “instances” of components?). We adopt a minimalist view in which components can be distinguished by composable interfaces. We have identified a number of key features and mechanisms for expressing composable software, and propose a calculus for modeling components, based on the asynchronous π calculus extended with explicit namespaces, or “forms”. This calculus serves as a semantic foundation and an executable abstract machine for Piccola, an experimental composition language. The calculus also enables reasoning about compositional styles and evaluation strategies for Piccola. We present the design rationale for the Piccola calculus, and briefly outline some of the results obtained.


Partial Evaluation Parallel Composition Abstract Machine Free Channel Agent Expression 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abadi, M., Cardelli, L., Curien, P.-L., Lévy, J.-J.: Explicit substitutions. Journal of Functional Programming 1(4), 375–416 (1991)zbMATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Achermann, F.: Forms, Agents and Channels - Defining Composition Abstraction with Style. PhD thesis, University of Berne (January 2002)Google Scholar
  3. 3.
    Achermann, F., Kneubuehl, S., Nierstrasz, O.: Scripting coordination styles. In: Porto, A., Roman, G.-C. (eds.) COORDINATION 2000. LNCS, vol. 1906, pp. 19–35. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  4. 4.
    Achermann, F., Lumpe, M., Schneider, J.-G., Nierstrasz, O.: Piccola – a small composition language. In: Bowman, H., Derrick, J. (eds.) Formal Methods for Distributed Processing – A Survey of Object-Oriented Approaches, pp. 403–426. Cambridge University Press, Cambridge (2001)Google Scholar
  5. 5.
    Achermann, F., Nierstrasz, O.: Explicit Namespaces. In: Weck, W., Gutknecht, J. (eds.) JMLC 2000. LNCS, vol. 1897, pp. 77–89. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  6. 6.
    Achermann, F., Nierstrasz, O.: Applications = Components + Scripts – A Tour of Piccola. In: Aksit, M. (ed.) Software Architectures and Component Technology, pp. 261–292. Kluwer, Dordrecht (2001)Google Scholar
  7. 7.
    Arbab, F., Mavaddat, F.: Coordination through channel composition. In: Arbab, F., Talcott, C. (eds.) COORDINATION 2002. LNCS, vol. 2315, pp. 21–38. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  8. 8.
    Berry, G., Boudol, G.: The chemical abstract machine. Theoretical Computer Science 96, 217–248 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Boudol, G.: The pi-calculus in direct style. In: Conference Record of POPL 1997, pp. 228–241 (1997)Google Scholar
  10. 10.
    Burstall, R., Lampson, B.: A kernel language for abstract data types and modules. Information and Computation 76(2/3) (1984); Also appeared in Proceedings of the International Symposium on Semantics of Data Types, Springer, LNCS and as SRC Research Report 1 (1984)Google Scholar
  11. 11.
    Cardelli, L., Mitchell, J.C.: Operations on records. In: Gunter, C.A., Mitchell, J.C. (eds.) Theoretical Aspects of Object-Oriented Programming. Types, Semantics and Language Design, pp. 295–350. MIT Press, Cambridge (1993)Google Scholar
  12. 12.
    Dal-Zilio, S.: Le calcul bleu: types et objects. Ph.D. thesis, Université de Nice - Sophia Antipolis (July 1999) (in french)Google Scholar
  13. 13.
    Dami, L.: Software Composition: Towards an Integration of Functional and Object-Oriented Approaches. Ph.D. thesis, University of Geneva (1994)Google Scholar
  14. 14.
    Fournet, C., Gonthier, G.: A hierarchy of equivalences for asynchronous calculi. In: Larsen, K.G., Skyum, S., Winskel, G. (eds.) ICALP 1998. LNCS, vol. 1443, pp. 844–855. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  15. 15.
    Fournet, C., Gonthier, G., Lévy, J.-J., Maranget, L., Rémy, D.: A calculus of mobile agents. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 406–421. Springer, Heidelberg (1996)Google Scholar
  16. 16.
    Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: Why reuse is so hard. IEEE Software 12(6), 17–26 (1995)CrossRefGoogle Scholar
  17. 17.
    Gordon, A.D., Hankin, P.D.: A concurrent object calculus: Reduction and typing. In: Proceedings HLCL 1998. Elsevier ENTCS (1998)Google Scholar
  18. 18.
    Honda, K., Tokoro, M.: An object calculus for asynchronous communication. In: America, P. (ed.) ECOOP 1991. LNCS, vol. 512, pp. 133–147. Springer, Heidelberg (1991)CrossRefGoogle Scholar
  19. 19.
    Kneubuehl, S.: Typeful compositional styles. Diploma thesis, University of Bern (April 2003)Google Scholar
  20. 20.
    Lumpe, M.: A Pi-Calculus Based Approach to Software Composition. Ph.D. thesis, University of Bern, Institute of Computer Science and Applied Mathematics (January 1999)Google Scholar
  21. 21.
    Lumpe, M., Achermann, F., Nierstrasz, O.: A Formal Language for Composition. In: Leavens, G., Sitaraman, M. (eds.) Foundations of Component Based Systems, pp. 69–90. Cambridge University Press, Cambridge (2000)Google Scholar
  22. 22.
    Lutz, M.: Programming Python. O’Reilly & Associates, Inc., Sebastopol (1996)zbMATHGoogle Scholar
  23. 23.
    Merro, M., Sangiorgi, D.: On asynchrony in name-passing calculi. In: Larsen, K.G., Skyum, S., Winskel, G. (eds.) ICALP 1998. LNCS, vol. 1443, pp. 856–867. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  24. 24.
    De Meuter, W.: Agora: The story of the simplest MOP in the world — or — the scheme of object–orientation. In: Noble, J., Moore, I., Taivalsaari, A. (eds.) Prototype-based Programming. Springer, Heidelberg (1998)Google Scholar
  25. 25.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part I/II. Information and Computation 100, 1–77 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  26. 26.
    Milner, R., Sangiorgi, D.: Barbed bisimulation. In: Kuich, W. (ed.) ICALP 1992. LNCS, vol. 623, pp. 685–695. Springer, Heidelberg (1992)Google Scholar
  27. 27.
    Nestmann, U., Pierce, B.C.: Decoding choice encodings. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 179–194. Springer, Heidelberg (1996)Google Scholar
  28. 28.
    Nierstrasz, O.: Contractual types (2003) (submitted for publication)Google Scholar
  29. 29.
    Nierstrasz, O., Achermann, F.: Supporting Compositional Styles for Software Evolution. In: Proceedings International Symposium on Principles of Software Evolution (ISPSE 2000), Kanazawa, Japan, November 1-2, pp. 11–19. IEEE, Los Alamitos (2000)Google Scholar
  30. 30.
    Nierstrasz, O., Achermann, F., Kneubuehl, S.: A guide to jpiccola. Technical report, Institut für Informatik, Universität Bern, Switzerland (2003), Available from
  31. 31.
    Nierstrasz, O., Dami, L.: Component-oriented software technology. In: Nierstrasz, O., Tsichritzis, D. (eds.) Object-Oriented Software Composition, pp. 3–28. Prentice-Hall, Englewood Cliffs (1995)Google Scholar
  32. 32.
    Nishizaki, S.-Y.: Programmable environment calculus as theory of dynamic software evolution. In: Proceedings ISPSE 2000. IEEE Computer Society Press, Los Alamitos (2000)Google Scholar
  33. 33.
    Pierce, B.C., Turner, D.N.: Pict: A programming language based on the pi-calculus. In: Plotkin, G., Stirling, C., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, Cambridge (May 2000)Google Scholar
  34. 34.
    Rémy, D.: Typing Record Concatenation for Free, April 1994. ch. 10, pp. 351–372. MIT Press, Cambridge (1994)Google Scholar
  35. 35.
    Sangiorgi, D.: Expressing Mobility in Process Algebras: First-Order and Higher- Order Paradigms. Ph.D. thesis, Computer Science Dept., University of Edinburgh (May 1993)Google Scholar
  36. 36.
    Sangiorgi, D.: Asynchronous process calculi: the first-order and higher-order paradigms (tutorial). Theoretical Computer Science 253 (2001)Google Scholar
  37. 37.
    Sato, M., Sakurai, T., Burstall, R.M.: Explicit environments. In: Girard, J.-Y. (ed.) TLCA 1999. LNCS, vol. 1581, pp. 340–354. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  38. 38.
    Schärli, N.: Supporting pure composition by inter-language bridging on the meta-level. Diploma thesis, University of Bern (September 2001)Google Scholar
  39. 39.
    Schärli, N., Achermann, F.: Partial evaluation of inter-language wrappers. In: Workshop on Composition Languages, WCL 2001 (September 2001)Google Scholar
  40. 40.
    Schneider, J.-G.: Components, Scripts, and Glue: A conceptual framework for software composition. Ph.D. thesis, University of Bern, Institute of Computer Science and Applied Mathematics (October 1999)Google Scholar
  41. 41.
    Schneider, J.-G., Nierstrasz, O.: Components, scripts and glue. In: Barroca, L., Hall, J., Hall, P. (eds.) Software Architectures – Advances and Applications, pp. 13–25. Springer, Heidelberg (1999)Google Scholar
  42. 42.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  43. 43.
    Szyperski, C.A.: Component Software. Addison-Wesley, Reading (1998)Google Scholar
  44. 44.
    Walker, D.: Objects in the π-calculus. Information and Computation 116(2), 253–271 (1995)zbMATHCrossRefMathSciNetGoogle Scholar
  45. 45.
    Wojciechowski, P.T.: Nomadic Pict: Language and Infrastructure Design for Mobile Computation. PhD thesis,Wolfson College, University of Cambridge (March 2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Oscar Nierstrasz
    • 1
  • Franz Achermann
    • 1
  1. 1.Software Composition GroupUniversity of BernSwitzerland

Personalised recommendations