BJ

B.F. Janssen

info

Please Note

2 records found

The Statix meta-language has been developed in order to simplify the definition of static semantics in programming languages. A high-level static semantics definition of a language in Statix can be used to generate a type-checker, hence abstracting over the shared implementation details. Statix should be able to express the static semantics of itself as well. The process of defining a language using itself is called bootstrapping. In this thesis we discuss the bootstrapping of the Statix meta-language within the Spoofax language workbench. The bootstrapping of a type-system domain specific language hasn't previously been discussed in existing work. It acts as an interesting case study on the use of Statix to define semantics for a constraint-based declarative language as well as the use of Statix throughout a full compiler pipeline. In addition bootstrapping grants Statix a more expressive type system, which enables the future development of the language.

Throughout this thesis we discuss the components of the Statix compiler and explain how these changed as part of the bootstrapping process. The correctness is validated by comparing compiled specifications of the bootstrapped compiler and the existing reference solution for alpha equivalence. We also provide a brief indication of the performance of the bootstrapped Statix compiler.

The bootstrapped compiler is believed to be correct, but does currently not perform to the desired standard. The compiler is successful on smaller language projects, but has a massive growth in compile time when it is used on larger, more complex language projects. This means future work is needed in order for it to be incorporated into the language workbench. ...

A Coach Cockpit Application

Team Sunweb, a professional cycling team and our client, is constantly looking for innovations to help them win races. They tasked us with creating an application which could assist coaches with determining the strategy during a race. This application, which we dubbed TelaSol, is supposed to run on a tablet that is mounted on the dashboard inside the coach car. For this project we developed an application that allows races to be prepared on a desktop computer and tracked during a race on a tablet-optimized interactive dashboard. On this dashboard, there will be information on the riders, the route and comments that can be added before the race.

During development we have considered existing solutions, relevant literature and useful technologies to get an idea of what was possible and how we could achieve our goal. We used this knowledge to create our initial set of requirements. We then proceeded development of application using an agile approach, which involves regular feedback moments from our client to update the requirements and adjust our focus accordingly. To verify the quality of our product we relied on a combination of automated tests, user testing and validation through the client.

Initially the application was supposed to integrate live data coming from the riders during the race, but due to a regulation change we had to change our focus. Instead, we focused primarily on creating the application for playback purposes, while still keeping it adaptable to live data. The application performs the main tasks that were initially defined properly. After further development on live data and extensive situational testing, the app can be used to its full potential. Using TelaSol, Team Sunweb will improve their ability to analyze races and increase their chances of winning.
...