Software Practical
"Design and implementation of a new parser for MUSCOD-II input files using the boost::spirit parser."
Results
This software practical has been successfully completed by Timo Minartz and Markus Breit during summer term 2008.
Dowload presentation slides as PDF.
Description
The optimal control software package MUSCOD-II is driven by small input files colloquially known
as 'DAT Files'. These contain a textual description of the setup of the optimal control problem to
be solved.
Aim
The aim of this software practical is to redesign and reimplement the DAT file parser in C++.
We envision to do so with the help of the boost::spirit parser library. The first goal is to recreate
the existing functionality while focussing on improved error checking and validation of the data
being read. In a second step, a number of small improvements to the current DAT file syntax shall be
implemented.
The boost::spirit library is a well-maintained and extensively documented scanner and parser library.
It allows for the formulation of a syntax given in EBNF in terms of C++ functions and operators.
Subsequently, a string or file can easily be parsed according to this syntax.
The participants' work will focus on designing the grammar and implementing semantic actions,
data validation, and error checking.
Focus
Technical. Software design and implementation.
Size of the project
This project is suited for two or three students as an advanced software practical.
Requirements
- In-depth knowledge of C++ is mandatory to make efficient use of boost::spirit.
- Familiarity with grammars of formal languages (e.g., enhanced Backus-Naur form, EBNF)
or former experience with lexical scanners and syntax parsers (e.g., lexx, yacc, bison) is advantageous.
- Some knowledge of numerical methods for optimal control of ODE/DAE systems
(e.g., from a 'Numerik 1' or 'Numerik 2' lecture given by the SimOpt workgroup) might come in handy.
Further reading
Contact
Dipl.-Math. Christian Kirches
Interdisciplinary Center for Scientific Computing (IWR)
Im Neuenheimer Feld 368
Universität Heidelberg
e-mail: christian.kirches@iwr.uni-heidelberg.de
Room : INF 368 (IWR), R 414
back
|