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 (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/)
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
Supervisors:
- Volker Stolz (HVL), Violet Ka I Pun (HVL)
- Intl. cooperation with U. Torino, IT: Prof. Ferruccio Damiani & Gianluca Torta
(it will be possible to visit U.Torino through ERASMUS either for course work or for writing the thesis)