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.
Keywords
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Abadi, M., Cardelli, L., Curien, P.-L., Lévy, J.-J.: Explicit substitutions. Journal of Functional Programming 1(4), 375–416 (1991)
Achermann, F.: Forms, Agents and Channels - Defining Composition Abstraction with Style. PhD thesis, University of Berne (January 2002)
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)
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)
Achermann, F., Nierstrasz, O.: Explicit Namespaces. In: Weck, W., Gutknecht, J. (eds.) JMLC 2000. LNCS, vol. 1897, pp. 77–89. Springer, Heidelberg (2000)
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)
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)
Berry, G., Boudol, G.: The chemical abstract machine. Theoretical Computer Science 96, 217–248 (1992)
Boudol, G.: The pi-calculus in direct style. In: Conference Record of POPL 1997, pp. 228–241 (1997)
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)
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)
Dal-Zilio, S.: Le calcul bleu: types et objects. Ph.D. thesis, Université de Nice - Sophia Antipolis (July 1999) (in french)
Dami, L.: Software Composition: Towards an Integration of Functional and Object-Oriented Approaches. Ph.D. thesis, University of Geneva (1994)
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)
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)
Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: Why reuse is so hard. IEEE Software 12(6), 17–26 (1995)
Gordon, A.D., Hankin, P.D.: A concurrent object calculus: Reduction and typing. In: Proceedings HLCL 1998. Elsevier ENTCS (1998)
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)
Kneubuehl, S.: Typeful compositional styles. Diploma thesis, University of Bern (April 2003)
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)
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)
Lutz, M.: Programming Python. O’Reilly & Associates, Inc., Sebastopol (1996)
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)
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)
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, part I/II. Information and Computation 100, 1–77 (1992)
Milner, R., Sangiorgi, D.: Barbed bisimulation. In: Kuich, W. (ed.) ICALP 1992. LNCS, vol. 623, pp. 685–695. Springer, Heidelberg (1992)
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)
Nierstrasz, O.: Contractual types (2003) (submitted for publication)
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)
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
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)
Nishizaki, S.-Y.: Programmable environment calculus as theory of dynamic software evolution. In: Proceedings ISPSE 2000. IEEE Computer Society Press, Los Alamitos (2000)
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)
Rémy, D.: Typing Record Concatenation for Free, April 1994. ch. 10, pp. 351–372. MIT Press, Cambridge (1994)
Sangiorgi, D.: Expressing Mobility in Process Algebras: First-Order and Higher- Order Paradigms. Ph.D. thesis, Computer Science Dept., University of Edinburgh (May 1993)
Sangiorgi, D.: Asynchronous process calculi: the first-order and higher-order paradigms (tutorial). Theoretical Computer Science 253 (2001)
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)
Schärli, N.: Supporting pure composition by inter-language bridging on the meta-level. Diploma thesis, University of Bern (September 2001)
Schärli, N., Achermann, F.: Partial evaluation of inter-language wrappers. In: Workshop on Composition Languages, WCL 2001 (September 2001)
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)
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)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)
Szyperski, C.A.: Component Software. Addison-Wesley, Reading (1998)
Walker, D.: Objects in the π-calculus. Information and Computation 116(2), 253–271 (1995)
Wojciechowski, P.T.: Nomadic Pict: Language and Infrastructure Design for Mobile Computation. PhD thesis,Wolfson College, University of Cambridge (March 2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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