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,…).
– Aggregate Progamming (http://ap-project.di.unito.it/)
– The Protelis Programming Language for Aggregate Computing (https://protelis.github.io/)
– The ABS Modelling Language (https://abs-models.org/)
– 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