Giuseppe Lipari's software

Here there is a list of software project on which I have worked in the past years, or at which I am currently working. All of them are released open source.

C++ libraries

RTSim

RTSim is a tool for simulating scheduling algorithms. It consists of two libraries: MetaSim and RTLib. This is the joint work of many people over the years, especially master students and PhD students. They are both available as open source projects on GitHub.

<2014-12-04 jeu.> I am currently working on implementing a new task model of self-suspending tasks on RTLib. I plan to release a new version quite soon.

<2014-11-25 mar.> RTSim is used for implementing a real-time simulator starting from simulink models. See the TRES project at Scuola Superiore Sant'Anna.

Tipa

This is a library for implementing simple parsers in C++. Since I often build simulators, tools for analysis, and recently also a small model checker, I often need to read a configuration file various formats. Therefore, after looking around, I decided to try to use the Boost::Spirit parser.

I have to say that I have mixed feelings about Spirit: I love the concise syntax of the rules, the flexibility, and the many features and tools available. However, I hate the steep learning curve, and I hate the fact that, every time I try to use it, I lose so much time in debugging.

Therefore, I decided to write a very simple library as a replacement for Spirit. I tried to keep the same spirit and use a simple technique to write the rules in a simil-BNF style. However, the enphasis is in simplicity of use, therefore I kept the set of features to a minimal level, and most importantly, I did not try to optimize the parsing process.

Therefore, if you have to write a simple parser for a short file, and create a simple AST, this may be the library you need, give it a try!

The code is available open source on the GitHub page.

<2015-02-01 dim.> I solved a bug with the use of shared pointers in TIPA. Now memory is handled correctly and no memory leak should be possible. However, it is now necessary to put some attention in writing the rules, to avoid bad memory handling: please refer to the documentation in the README.md file for more information.

What is still missing:

  • getting rid of the boost library: still waiting for a decent implementation of the regex in g++;
  • write a full documentation for the library (should not take long).

Please send me comments if you use the software about bugs or requested features.

<2014-12-04 jeu.> I plan to rewrite the lexer and get rid of the dependency from Boost::regex, since it seems that an implementation of std::regex is available in the latest g++. Stay tuned!

Author: Giuseppe Lipari

Created: 2017-05-15 lun. 16:24

Validate