Skip to main content

A Calculus for Modeling Software Components

  • Conference paper
Book cover Formal Methods for Components and Objects (FMCO 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2852))

Included in the following conference series:

Abstract

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Cardelli, L., Curien, P.-L., Lévy, J.-J.: Explicit substitutions. Journal of Functional Programming 1(4), 375–416 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  2. Achermann, F.: Forms, Agents and Channels - Defining Composition Abstraction with Style. PhD thesis, University of Berne (January 2002)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Achermann, F., Nierstrasz, O.: Explicit Namespaces. In: Weck, W., Gutknecht, J. (eds.) JMLC 2000. LNCS, vol. 1897, pp. 77–89. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  8. Berry, G., Boudol, G.: The chemical abstract machine. Theoretical Computer Science 96, 217–248 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  9. Boudol, G.: The pi-calculus in direct style. In: Conference Record of POPL 1997, pp. 228–241 (1997)

    Google Scholar 

  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. 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. Dal-Zilio, S.: Le calcul bleu: types et objects. Ph.D. thesis, Université de Nice - Sophia Antipolis (July 1999) (in french)

    Google Scholar 

  13. Dami, L.: Software Composition: Towards an Integration of Functional and Object-Oriented Approaches. Ph.D. thesis, University of Geneva (1994)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: Why reuse is so hard. IEEE Software 12(6), 17–26 (1995)

    Article  Google Scholar 

  17. Gordon, A.D., Hankin, P.D.: A concurrent object calculus: Reduction and typing. In: Proceedings HLCL 1998. Elsevier ENTCS (1998)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  19. Kneubuehl, S.: Typeful compositional styles. Diploma thesis, University of Bern (April 2003)

    Google Scholar 

  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. 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. Lutz, M.: Programming Python. O’Reilly & Associates, Inc., Sebastopol (1996)

    MATH  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part I/II. Information and Computation 100, 1–77 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  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. 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. Nierstrasz, O.: Contractual types (2003) (submitted for publication)

    Google Scholar 

  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. Nierstrasz, O., Achermann, F., Kneubuehl, S.: A guide to jpiccola. Technical report, Institut für Informatik, Universität Bern, Switzerland (2003), Available from http://www.iam.unibe.ch/~scg/Research/Piccola

  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. 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. 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. Rémy, D.: Typing Record Concatenation for Free, April 1994. ch. 10, pp. 351–372. MIT Press, Cambridge (1994)

    Google Scholar 

  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. Sangiorgi, D.: Asynchronous process calculi: the first-order and higher-order paradigms (tutorial). Theoretical Computer Science 253 (2001)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Schärli, N., Achermann, F.: Partial evaluation of inter-language wrappers. In: Workshop on Composition Languages, WCL 2001 (September 2001)

    Google Scholar 

  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. 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. Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)

    MATH  Google Scholar 

  43. Szyperski, C.A.: Component Software. Addison-Wesley, Reading (1998)

    Google Scholar 

  44. Walker, D.: Objects in the π-calculus. Information and Computation 116(2), 253–271 (1995)

    Article  MATH  MathSciNet  Google Scholar 

  45. Wojciechowski, P.T.: Nomadic Pict: Language and Infrastructure Design for Mobile Computation. PhD thesis,Wolfson College, University of Cambridge (March 2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nierstrasz, O., Achermann, F. (2003). A Calculus for Modeling Software Components. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, WP. (eds) Formal Methods for Components and Objects. FMCO 2002. Lecture Notes in Computer Science, vol 2852. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39656-7_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-39656-7_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-20303-2

  • Online ISBN: 978-3-540-39656-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics