Binding Time Analysis For Program Specialization In The ESPranto Synchronous Parallel Language
Stc
Date: 2011-08-24
Time: 11:00
Room:
BBL 071
Speaker: Dragos Ionita
Title: Binding Time Analysis for Program Specialization in the ESPranto Synchronous Parallel Language
Abstract
ESPranto is a functional programming language for embedded systems such as the TagTitles console
designed at
Serious Toys, that extends the Esterel synchronous
reactive parallel language. The thesis describes a type system that assigns binding times to subexpressions,
and a redesign of ESPranto's syntax and semantics to allow programmer
control over binding times. A binding time is either
static — indicating that the expression value
is available at compile-time and that it can be converted to a dynamic one,
esterel — indicating
that the expression is related to the coordination constructs inherited from Esterel, or
dynamic — indicating that the expression is to be evaluated at runtime, as determined by the aforementioned
coordination construct semantics. Binding time annotations enable program specialization,
in which a compiler step evaluates parts of the program. Since the type system also allows the
abstraction of coordination constructs, program specialization considerably reduces
the size and helps human understanding of monolithic coordination code that would have otherwise
been required by complex applications, while maintaining correctness properties. In that sense,
the role of specialization in ESPranto is comparable to that of macro expansion in other languages.