Title: Software development in a costing-by-construction framework
Proposer: Hans-Wolfgang Loidl
Suggested supervisors: Hans-Wolfgang Loidl
Goal: Apply the costing-by-construction framework to implement an embedded systems application in Hume and to match given resource constraints
The Hume programming language  provides a model of high-level, embedded systems programming with predictable resource consumption. It comprises a toolset consisting of an interpreter, an abstract machine compiler with backends for several platforms, and a static analysis for predicting heap, stack and time consumption. These tools currently exist as separate programs to be used from the command line.
The goal of this project is to apply the costing-by-construction framework to implement an embedded systems application in Hume and to match given resource constraints. The application simulates a cooling device, as might be found in a laptop, that reacts to temperature input and drives a fan to keep the working temperature within a pre-defined range. An initial Hume implementation should be developed, using a costing-by-construction approach. Following this approach, the code should be structured in such a way that given resource constraints are met. If it turns out that these constraints cannot be met at all, the underlying algorithmic reason has to be clearly identified. The final report should critically reflect on the software development process, the role of the available tools and the suitability of Hume for implementing this application.
Resources required: Hume tools
Degree of difficulty: Moderate
Background needed: Functional Programming