A debugging system for reactive programming.
Bachelor Thesis, Master Thesis
Reactive languages provide dedicated language-level abstractions for the development of reactive applications, such as event streams and signals. Thanks to this programming technique, reactive applications can be developed in a declarative way, specifying the relation that exists among reactive entities. In contrast to traditional programming paradigms, which require manual updates, with reactive programming, changes are propagated automatically: dependent components (e.g., the GUI) are updated by the runtime when the entities they depend on change (e.g., the data in the model).
Because of the declarative flavor of reactive programming, traditional debugging tools based on step-by step execution and memory inspection, are hardly effective in this context. For example, in a declarative setting, it is not clear how to “step-over” statements or what “setting a breakpoint” would even mean.
The candidate will work on an innovative debugging tool that is aware of the reactive system an can leverage the regular structure of reactive applications to guide programmers in the debugging activity. The thesis will be part of the reactive programming project in the context of the PACE project (http://www.pace-erc.eu/).
Expected gain of knowledge
The candidate will acquire skills in the development of Eclipse plugins and more generally in the field IDEs and of toold supporting the development process. These topics will be complemented by expertise on reactive programming.
- Sirish Chandrasekaran, Owen Cooper, Amol Deshpande, Michael J. Franklin, Joseph M. Hellerstein, Wei Hong, Sailesh Krishnamurthy, Samuel R. Madden, Fred Reiss, and Mehul A. Shah.: Flapjax: A Programming Language for Ajax Applications.. ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications, 2009
- Guido Salvaneschi, Mira Mezini: Reactive Behavior in Object-oriented Applications: An Analysis and a Research Roadmap. In Proceedings of the 11th annual international conference on Aspect-oriented Software Development, MODULARITY AOSD 2013