Talk on Composita at Microsoft Research, Redmond, WA, USA, 2008.
Composita Programming Language and System
COMPOSITA is a component-oriented programming language and runtime system developed by Luc Bläser at ETH Zurich and was continued and maintained at HSR Hochschule für Technik Rapperswil and its successor OST Ostschweizer Fachhochschule. It is designed to promote structural clarity, high dynamicity, and inherent concurrency in the construction of modern software systems. The component notion is directly supported by only high-level concepts, in order to enable simple and expressive programming.Project start 2004. Main realization at ETH Zurich, Native Systems Group.
Since 2011 continued and maintained at HSR Hochschule für Technik Rapperswil, since 2020 OST Ostschweizer Fachhochschule.
Latest Student Project (2020): COMPOSITA 2.0
In his MSc. thesis in 2020, Hansruedi Patzen implemented a protoype of a web-based runtime system for COMPOSITA, see the Thesis.
Implementation
VMWare Instance
VM Image Version (April 2013): Composita can be downloaded as a VMWare instance:
- Composita on VMWare (zipped, 58MB, 8 Apr 2013).
The COMPOSITA language is implemented by two systems:
- The development system (A2 Oberon operating) bootable on partition 1: This serves for editing and compiling Composita programs.
- The runtime system (native Composita kernel) bootable on partition 2: This allows running the compiled Composita programs.
More information and instructions can be found in the files "Composita.Tool" and "TrafficSimulation.Tool" on the development system.
You may directly run some programs in the runtime system (boot partition 2):
NEW(s, Simulation)
producer consumer scenario runsDELETE(s)
NEW(e, Eratosthenes)
CONNECT(SystemTime(e), SYSTEM)
sieve of Eratosthenes runsDELETE(e)
NEW(t, TrafficSimulation)
CONNECT(FileSystem(t), SYSTEM)
CONNECT(SystemTime(t), SYSTEM)
traffic simulation computation runsDELETE(t)
NEW(a, RoadAnimator)
CONNECT(FileSystem(a), SYSTEM)
CONNECT(SystemTime(a), SYSTEM)
CONNECT(GraphicView(a), SYSTEM)
displays traffic simulationDELETE(a)
Bootable ISO Images
Alternatively, the bootable ISO images of the developement and runtime systems are available.
The development systems runs under the A2 Oberon operating system (formely called Bluebottle). The CD ISO image below can be booted on a PC-compatible Intel x86 machine. Please follow the instructions in the 'ComponentSystem.Tool' file under the Oberon platform.
- Development System on A2 (zipped bootable ISO image, 81MB, 1 Jul 2010).
The native Composita kernel runs on any PC-compatible Intel x86 single or multi-processor machine with support of IDE disks, AT keyboard and VESA graphic (default mode is 118).
- Composita Operating System (zipped bootable ISO image, 79KB, 1 Jul 2010).
Applications
The following applications have been currently developed in COMPOSITA:
- Traffic Simulation Package (256KB, 10 November 2007).
- Typical Concurrent Programs (8KB, 25 September 2007).
The packages also contain analogous implementations in other programming languages to compare the runtime performance.
Benchmark
To evaluate the system's scalability and performance, the following set of test programs with analogous implementation in other languages is available:
- Benchmark Package (32KB, 20 June 2010)
License
Please pay attention to the license and legal disclaimer (click here) for the documents and software of the programming language and system.
Related Publications
- L. Bläser. A Component Language for Structured Parallel Programming. Joint Modular Languages Conference (JMLC) 2006, Oxford, UK, In Lecture Notes in Computer Science 4228, Springer, Sept. 2006. Document.
- L. Bläser. A Component Language for Pointer-Free Concurrent Programming and its Application to Simulation. ETH Diss. 17480, ETH Zürich, Nov. 2007. Document.
- L. Bläser. A High-Performance Operating System for Structured Concurrent Programs. Workshop on Programming Languages and Operating Systems (PLOS) 2007, Stevenson WA, USA, In ACM Digital Library, Oct. 2007. Document.
- L. Bläser. How Can We Liberate Ourselves From Pointers? Intl. Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA) 2007, Montreal, CA, In OOPSLA 2007 Companion, Oct. 2007. Document.
- L. Bläser. A Component-Oriented Language for Pointer-Free Parallel Programming. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS) 2007, Timmendorfer Strand, Germany, Technical Report, University of Lübeck, Oct. 2007. Document.
- L. Bläser and J. Gutknecht. COMPOSITA: A Study in Runtime Architecture for Massively Parallel Systems. Kolloquium für Programmiersprachen und Grundlagen der Programmierung (KPS), Wittenberg, Germany, Oct. 2013. Document.
- L. Bläser. Composita: Bringing Order to Agent Communications. Intl. Workshop on Programming based on Actors, Agents, and Decentralized Control (AGERE14) at SPLASH 2014, Portland, OR, USA, Oct. 2014. Document.