Building SolidOpt Multimodel Graph

SolidOpt (www.solidopt.org) provides toolchain helpful for various code transformations like compilation, decompilation and optimization. The project has various of intermediary source code representations such as .NET IL, control flow graphs, call graphs, three address code, abstract syntax tree and etc. There are various transformations between the representations. For example control flow graph to .NET IL, control flow graph to three address code and so on.

We would like to implement a graph describing all possible code models (as nodes) and their connections (as edges). The created graph should support finding shortest path between two nodes and finding all possible path between two nodes.

There is initial implementation of the idea, which should be used as starting point. It has to be enhanced such that it supports the path search.

Knowledge Prerequisite: C#, Basic knowledge of graph theory

Expected results: The final project should fulfill the requirements, should have unit test and should be ready for adoption in our mainline.

Mentor: Vassil Vassilev