ScaFi Aggregate Programming Toolkit
Introduction
ScaFi (Scala Fields) is a Scala-based library and framework for Aggregate Programming. It implements a variant of the Higher-Order Field Calculus (HOFC) operational semantics, which is made available as a usable domain-specific language (DSL), and provides a platform and API for simulating and executing Aggregate Computing systems and applications.
Learning Resources
- ScaFi User Manual
- ScaFi Developer Manual
- https://github.com/scafi/hello-scafi : shows basic usage of ScaFi
- https://github.com/scafi/learning-scafi-alchemist : shows how to use ScaFi within the Alchemist simulator in order to simulate aggregate systems
- A tutorial repository on ScaFi and aggregate computing by G. Audrito
Usage
Notes
- ScaFi >= 0.3.3 cross-compiles for Scala 2.11, 2.12, 2.13.
Steps
- Add the dependency to scafi in your project, e.g., via sbt (
build.sbt
):
or via Gradle (build.gradle.kts
):
- Use the API (e.g., to set up a simple simulation)
More information is available in the ScaFi Documentation.
Related tools
- Alchemist Simulator: a rich, flexible simulation framework that supports ScaFi
- Protelis: an external Aggregate Programming DSL
People
Main Researchers and Authors
- Mirko Viroli
- Roberto Casadei
- Gianluca Aguzzi
Research Collaborators
- Danilo Pianini
- Giorgio Audrito
- Ferruccio Damiani
References
- See papers
Contacts
- roby [dot] casadei [at] unibo.it
- mirko [dot] viroli [at] unibo.it