Former Group of Prof. Dr. Luc Bläser

Talk at Microsoft Research, 2009
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 download paperThesis.

Implementation

VMWare Instance

VM Image Version (April 2013): Composita can be downloaded as a VMWare instance:

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 runs
    DELETE(s)
  • NEW(e, Eratosthenes)
    CONNECT(SystemTime(e), SYSTEM)
    sieve of Eratosthenes runs
    DELETE(e)
  • NEW(t, TrafficSimulation)
    CONNECT(FileSystem(t), SYSTEM)
    CONNECT(SystemTime(t), SYSTEM)
    traffic simulation computation runs
    DELETE(t)
  • NEW(a, RoadAnimator)
    CONNECT(FileSystem(a), SYSTEM)
    CONNECT(SystemTime(a), SYSTEM)
    CONNECT(GraphicView(a), SYSTEM)
    displays traffic simulation
    DELETE(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.

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).

Applications

The following applications have been currently developed in COMPOSITA:

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:

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. download paperDocument.
  • L. Bläser. A Component Language for Pointer-Free Concurrent Programming and its Application to Simulation. ETH Diss. 17480, ETH Zürich, Nov. 2007. download paperDocument.
  • 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. download paperDocument.
  • 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. download paperDocument.
  • 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. download paperDocument.
  • 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. download paperDocument.
  • 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. download paperDocument.