The team develops many tools to support empirical research and we disseminate our techniques in the following main tools:
- Melange is a language and platform for assembling and integrating multiple domain-specific languages (DSL).
- Familiar is a language for importing, exporting, composing, decomposing, editing, configuring, computing “diffs”, refactoring, reverse engineering, testing, and reasoning about (multiple) feature models.
- Kevoree aims at enabling distributed reconfigurable software development.
- Our diversification toolbox gathers a set of tools to monitor and automatically synthesize variants of Java programs.
As a common technical foundations, we use a lot in the team the followings tools:
Spoon: Java src code transformation
- Spoon parses Java source code and creates an Abstract Syntax Tree (AST) : e.g. Micro/Design pattern detection, Architectural rule checking, Metrics
- Usage for source-to-source code transformation: e.g. Automatic instrumentation & logging, Automatic refactoring, Automatic repair
- Powerful API (better than JavaParser)
ByteBuddy: runtime code generation
- Byte Buddy is a code generation and manipulation library for creating and modifying Java classes during the runtime of a Java application and without the help of a compiler.
- Byte Buddy offers a convenient API for changing classes either manually, using a Java agent or during a build.
Graal, Truffle, Polyglot
- Truffle: Language Implementation Framework
- High level representation of the language AST
- Annotated AST to assist Graal speculative optimizations.
- Polyglot: A language interop framework that allows Truffle languages to call each other
- The GEMOC Studio provides generic components through Eclipse technologies for the development, integration, and use of heterogeneous executable modeling languages.
SciPy is a Python-based ecosystem of open-source software for mathematics, science, and engineering. In particular, these are some of the core packages:
- NumPy Base N-dimensional array package
- SciPy library: Fundamental library for scientific computing
- Matplotlib: Comprehensive 2D Plotting
- IPython: Enhanced Interactive Console
- Sympy: Symbolic mathematics
- pandas: Data structures & analysis
- Machine Learning in Python
- Simple and efficient tools for data mining and data analysis
- Accessible to everybody, and reusable in various contexts
- Built on NumPy, SciPy, and matplotlib
- Open source, commercially usable - BSD license
- GreyCat is the first Temporal Many-World Graph database. In a nutshell, this project defines a graph storage and processing framework that allows you to store and analyze highly interconnected complex data structures and rapidly evolving over time. This data structure can be as well infinitely cloneable in order to evaluate potential alternatives modifications to find the best one. To sum up GreyCat is a core data structure framework to build for businesses, a live reasoning engine that can handle simulations and analytics over data in motion.
Tips & Tricks
Here, we share tips and tricks acquired when implementing our prototypes, or papers. It’s free for edition, with a trust-based policy. So feel free to add yours!