Abstract Behavioral Specification: unifying modeling and programming
We strive to address the challenge of constructing a modeling language to write software which can take advantage of recent hardware developments (multicore, cloud) without compromising in its abstraction levels.
- Bezirgiannis, N.
- 17 April 2018
- Thesis in Leiden Repository
We strive to address the challenge of constructing a modeling language to write software which can take advantage of recent hardware developments (multicore, cloud) without compromising in its abstraction levels. Our language is based on top of the Abstract Behavioral Specification (ABS), which is an executable modeling language with a focus on cooperative-multitasking concurrency. We translate programs written in ABS to Haskell, an established functional programming language, since Haskell supports both cooperative concurrency in the form of coroutines, and multicore parallelism through lightweight threads of execution. Further, we formally prove the correctness as well as the resource-consumption preservation of the translation of a subset of our language to Haskell.To enable software models take control of their computing resources, we extend our language with certain constructs that abstract over the hardware. This resource-aware language extension is packaged in a tool-suite for human-in-the-loop simulation of Cloud services; such a live simulation can be used for training DevOps to the cloud environment of IT companies.Finally, we provide an implementation of distributed communication to the Cloud infrastructure, so that software models written in ABS can be executed as distributed applications, which can programmatically monitor and control their own Cloud deployment.