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.