A Calculus for Modeling Software Components [chapter]

Oscar Nierstrasz, Franz Achermann
2003 Lecture Notes in Computer Science  
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.
more » ... 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.
doi:10.1007/978-3-540-39656-7_14 fatcat:tw7cbheuvnetrhe3eeytzxeifi