Home // ADAPTIVE 2010, The Second International Conference on Adaptive and Self-Adaptive Systems and Applications // View article
ESPranto: a Framework for Developing Applications for Adaptive Hardware
Authors:
Robert van Herk
Leszek Holenderski
Keywords: adaptive systems; computer languages; parallel programming; functional programming.
Abstract:
Evermore highly adaptive hardware toolkits become available, of which the applications are configured, fine-tuned or even created altogether by their end-users. To support these users, we need to think about flexible, yet accessible frameworks with which these end-users can adapt applications to their personal needs. We present a programming framework, called ESPranto, which strives exactly to do so. ESPranto is basically Esterel extended with funcros. Esterel is a reactive programming language suited for programming control-dominated applications. Commands can be executed in parallel and parallel commands can communicate. Contrary to most language, the Esterel compiler automatically proves that programs will never cause run time problems such as deadlocks, race conditions or crashes. Because Esterel does not have very strong abstraction mechanisms we added funcros. Funcros are functional macros. Like macros, they are statically expanded when applied to actual arguments. Unlike macros, funcros are type safe and hygienic (local declarations are renamed during expansion, to guarantee that there are no collisions with existing identifiers). Funcros can be recursive and higher-order in the sense that they take funcros as parameters and return funcros as results. One can also apply them partially, by providing less actual parameters than formal parameters. In addition, we added a polymorphic type system to Esterel, to allow funcros to be polymorphic and hence make ESPranto more expressive, while maintaining type safety. These extensions allowed us to use ESPranto as a host language for embedding several domain specific languages. The languages were specifically designed for developing reactive applications for a storytelling environment called StoryToy and for a tangible interaction tablet called TagTiles. The macro-like properties allowed us to keep the useful features of Esterel described above. The functional properties allowed us to use ESPranto to facilitate end-user programming: our end-users use ESPranto to adapt and extend applications to their own needs.
Pages: 184 to 193
Copyright: Copyright (c) IARIA, 2010
Publication date: November 21, 2010
Published in: conference
ISSN: 2308-4146
ISBN: 978-1-61208-109-0
Location: Lisbon, Portugal
Dates: from November 21, 2010 to November 26, 2010