Efficient code generation from Timber models

The research aims to further compilation methods of Timber specifications to generate memory and CPU efficient code for embedded target platforms. The basis of the work is the concept of super-compilation, a technique for systematic and aggressive code transformations exploiting information known at compile time. Although the basic theory of super-compilation is established, the results have yet to reach into real-world applications. Our ongoing work is set to identify and resolve the questions remaining to apply super-compilation to Timber code generation.

Timber, as such, is a high level language based on lambda calculus for functional evaluation, with a heritage to Haskell and other functional languages, e.g. ML. Traditionally, functional languages have a reputation for their expressive power, and that they lend themselves well to formal reasoning. However, the use of functional languages has traditionally been limited to non real-time applications on fairly large computers (compared to embedded systems). Here is where Timber promises to stand out, combining the pure and well defined semantics of functional languages with the concept of stateful objects, and concurrent real-time execution. In order to offer guarantees for robust real-time behavior, analysis must be carried out on the holistic model (i.e., the system and it’s environment). One of the cornerstones is static worst case resource analysis, the most known is probably Worst Case Execution Time WCET etc. This goes hand in hand with the problem of generating efficient code through super-compilation, utilizing information derivable at compile time. Our ongoing work is set to identify and resolve the Timber specific issues remaining in order to apply super-compilation to Timber specifications, and further, to allow statically known properties to be utilized towards resource analysis.

Supervisors and contacts; Johan Nordlander
PhD Student; Peter Jonsson.

Luleå University of Technology