The aggregate programming paradigm provides a way of thinking about and decomposing problems that can be solved with a network of distributed sensors and computers. Aggregate programming tries to produce reliable and robust collective behavior from uncoordinated local interactions (broadcasts) between machines. Protelis is a programming language designed for aggregate programming.

ABS is a language for Abstract Behavioral Specification, which combines implementation-level specifications with verifiability, high-level design with executablity, and formal semantics with practical usability. ABS is a concurrent, object-oriented, modeling language that features functional data-types.

Research questions include:

– Can we use ABS to model aggregate computing systems?
– Can we use ABS models to efficiently simulate Protelis programs?
– Can we do so at scale (number of devices)?

A prospective student should…

…like programming, programming paradigms and programming languages;
…be willing to learn about grammars and programming language semantics;
…have an interest in Internet of Things, Cyber-Physical Systems, Edge/Fog/Cloud computing;
…independently set up and run experiments (e.g. check out open source-projects from GitHub,…).

Related projects:

– Aggregate Progamming (
– The Protelis Programming Language for Aggregate Computing (
– The ABS Modelling Language (

Some references:

– Aggregate Programming for the Internet of Things (PDF): The flagship publication of Aggregate Computing, containing a rather accessible introduction to the general topic
– On Distributed Runtime Verification by Aggregate Computing (PDF): A paper presenting a novel application for aggegate programming