1 CHAPTER 1 Applications = Components + Scripts A tour of Piccola Franz Achermann, Oscar Nierstrasz Software Composition Group, University of Berne Abstract. Piccola is a language for composing applications from software components. It has a small syntax and a minimal set of features needed for specifying different styles of software composition. The core features of Piccola are communicating agents, which perform computations, and forms, which are the communicated values. Forms are a special notion of extensible, immutable records. Forms and agents allow us to unify components, static and dynamic contexts and arguments for invoking services. Through a series of examples, we present a tour of Piccola, illustrating how forms and agents suffice to express a variety of compositional abstractions and styles. 1. Introduction Piccola is intended to be a general-purpose language for software composition. Whereas existing programming languages appear to be suitable for implementing software components, and many scripting languages and fourth-generation lan- guages have been developed to address the needs of particular component models, there has been relatively little work that attempts to develop a generalized approach that may span various architectural styles and component models.