ESA Summer of Code in Space - Project ideas
This page lists some ideas for students to participate to the ESA Summer of Code in Space (SOCIS) - 2016 Edition
Please see the page of the ESA Summer of code in Space : http://sophia.estec.esa.int/socis/
For a detailed overview of TASTE and OpenGEODE, please visit these pages:
Opengeode is a free and open source state machine editor developed in the scope of the TASTE project and based on a language called SDL (Specification and Description Language). Opengeode allows to capture graphically hierarchical state machines, and store them in a formal textual language. The domain of application of SDL are critical real-time systems, communication protocols, and more generally any communication application.
The complete source code of Opengeode can be downloaded from GitHub:
Opengeode allows to translate SDL models to Ada code and run on any target. In the source code, there are several example of applications ; for example in the tests/regression/test10 directory the application is showing how to go from a state machine with composite states down to a complete application running on Linux and interacting with C code.
Opengeode uses the ASN.1 space certified compiler from ESA to generate the code of data types. This tool (with link for download) is explained here: http://ttsiodras.github.io/asn1.html
Proposals for the Summer of code in Space
The following projects are proposed:
1. Update of the SDL to LLVM code generator (that was initially developped by D. Barbera during SOCIS 2014). In particular the following shall be addressed:
- Complete the LLVM backend, some features need some minor updates, and
- add gdb debug facilities (trace from gdb back to the SDL source file). This is possible using the LLVM API while generating code, but needs to be analysed and implemented.
2. Refactor the parser and semantic checker front-end, using F# or OCaml. The grammar is written in ANTLR and should remain, however it would be desirable to build a clean AST using F#, make checks at this level, and prepare a backend mechanism based on the StringTemplate library. This is the approach followed in our ASN.1 compiler, and should be mimicked for the SDL part. A direct binding of the F# AST to Python could be explored.
3. Port Opengeode to Pyside2 / Qt5
For the first project, student is expected to have knowledge and experience with LLVM, gdb, and Python. Knowledge on SDL and ASN.1 are not strictly mandatory but would help.
For the second project, student is expected to have knowledge and experience with functional languages (in particular OCaml/F#), and experience with compilers.
For the third project, experience with Python and Qt is necessary.
If you are interested in participating as a student, please contact us: maxime (dot) perrotin (at) esa.int