Piccola1(ID:3318/pic005)


Piccola1, the first version of Piccola can be characterized as a combination of PiL-calculus with some abstractions to ease the definition and usage of functions. The PiL-calculus is the pi-calculus where forms are communicated instead of tuples. A variant of this first prototype is Piccola(F) where forms can be restricted and the presence of labels can be tested. TPiccola is work in progress on a typed version of Piccola.


Related languages
Piccola => Piccola1   Evolution of
Piccola1 => JPiccola   Implementation
Piccola1 => Piccola2   Evolution of
Piccola1 => SPicolla   Implementation

References:
  • Cristina Gheorghiu Cris, “Visualisierung von pi-Programmen,” Technical Report, University of Bern, January 1999, Informatikprojekt view details pdf
  • Schneider, Jean-Guy and Nierstrasz, Oscar "Components, Scripts and Glue" pp13-25 view details pdf Abstract: Jean-Guy Schneider and Oscar Nierstrasz, “Components, Scripts and Glue,” Software Architectures — Advances and Applications, Leonor Barroca, Jon Hall and Patrick Hall (Eds.), pp. 13-25, Springer-Verlag, 1999.

    Abstract
    Experience has shown us that object-oriented technology alone is not enough to guarantee that the systems we develop will be flexible and adaptable. Even "well-designed'' object-oriented software may be difficult to understand and adapt to new requirements. We propose a conceptual framework that will help yield more flexible object-oriented systems by encouraging explicit separation of computational and compositional elements. We distinguish between components that adhere to an architectural style, scripts that specify compositions, and glue that may be needed to adapt components' interfaces and contracts. We also discuss a prototype of an experimental composition language called Piccola that attempts to combine proven ideas from scripting languages, coordination models and languages, glue techniques, and architectural specification.
          in Software Architectures - Advances and Applications, Leonor Barroca, Jon Hall and Patrick Hall (Eds.), Springer-Verlag, 1999 view details
  • Achermann, Franz "Language support for feature mixing" view details Abstract: Franz Achermann, “Language support for feature mixing,” Workshop on Multi-Dimensional Separation of Concerns in Software Engineering (ICSE 2000), Limerick, Ireland, June 2000.

    Abstract
    Object oriented languages cannot express certain composition abstractions due to restricted abstraction power. A number of approaches, like SOP or AOP overcome this restriction, thus giving the programmer more possibilities to get a higher degree of separation of concern. We propose forms, extensible mappings from labels to values, as vehicle to implement and reason about composition abstractions. Forms unify a variety of concepts such as interfaces, environments, and contexts. We are prototyping a composition language where forms are the only and ubiquitous first class value. Using forms, it is possible compose software artifacts focusing on a single concern and thus achieve a high degree of separation of concern. We believe that using forms it also possible to compare and reason about the different composition mechanisms proposed. pdf
          in Workshop on Multi-Dimensional Separation of Concerns in Software Engineering (ICSE 2000), Limerick, Ireland, June 2000 view details
  • Achermann, Franz; Kneubuehl, Stefan and Oscar Nierstrasz, ?Scripting Coordination Styles? pp19-35 view details Abstract: Franz Achermann, Stefan Kneubuehl and Oscar Nierstrasz, “Scripting Coordination Styles,” Coordination~'2000, António Porto and Gruia-Catalin Roman (Eds.), LNCS, vol. 1906, Springer-Verlag, Limassol, Cyprus, September 2000, pp. 19-35.

    Abstract
    The fact that so many different kinds of coordination models and languages have been proposed suggests that no one single approach will be the best for all coordination problems. Different coordination styles exhibiting different properties may be more suitable for some problems than others. Like other architectural styles, coordination styles can be expressed in terms of components, connectors and composition rules. We propose an approach in which coordination styles are expressed as component algebras: components of various sorts can be combined using operators that realize their coordination, yielding other sorts of components. We show how several coordination styles can be defined and applied using Piccola, a small language for composing software components. We furthermore show how glue abstractions can be used to bridge coordination styles when more than one style is needed for a single application. pdf
          in Coordination-2000, António Porto and Gruia-Catalin Roman (Eds.), LNCS, vol. 1906, Springer-Verlag, Limassol, Cyprus, September 2000, view details
  • Franz Achermann and Oscar Nierstrasz, "Explicit Namespaces" pp77-89 view details pdf Abstract: Franz Achermann and Oscar Nierstrasz, “Explicit Namespaces,” Modular Programming Languages, Jürg Gutknecht and Wolfgang Weck (Eds.), LNCS, vol. 1897, Springer-Verlag, Zürich, Switzerland, September 2000, pp. 77-89.

    Abstract
    A namespace is a mapping from labels to values. Most programming languages support different forms of namespaces, such as records, dictionaries, objects, environments, packages and even keyword based parameters. Typically only a few of these notions are first-class, leading to arbitrary restrictions and limited abstraction power in the host language. Piccola is a small language that unifies various notions of namespaces as first-class forms, or extensible, immutable records. By making namespaces explicit, Piccola is easily able to express various abstractions that would normally require more heavyweight techniques, such as language extensions or metaprogramming.
          in Modular Programming Languages, Jürg Gutknecht and Wolfgang Weck (Eds.), LNCS, vol. 1897, Springer-Verlag, Zürich, Switzerland, September 2000 view details
  • Markus Lumpe, Franz Achermann and Oscar Nierstrasz, “A Formal Language for Composition,” Foundations of Component Based Systems, Gary Leavens and Murali Sitaraman (Eds.), pp. 69—90, Cambridge University Press, 2000. view details pdf
          in Modular Programming Languages, Jürg Gutknecht and Wolfgang Weck (Eds.), LNCS, vol. 1897, Springer-Verlag, Zürich, Switzerland, September 2000 view details