TransformationToolContest / ttc2019-tt2bdd

Free form TTC contest (Truth tables to Binary Decision Diagrams, from ATL Zoo)
MIT License
5 stars 7 forks source link

Review of Fulib #4

Open otherwiseopen opened 5 years ago

otherwiseopen commented 5 years ago

Description

FuLib is a graph transformation library, of which only one data structure, the ObjectTable is used here. Except, it is not really. Instead, a similar data structure, the FulibTable is used, basically an ArrayList of ArrayLists with a map assigning names to rows.

Consequently, the solution is a plain Java solution, using a hand-written "parser" and EMF to create and serialize the transformed BDD.

Notably, none of the included imports and libraries were actually used in the transformation except for the EMF ones.

Execution

The solution runs on my Linux machine without any problems.

Performance

Quite unsurprisingly, the solution is probably close to the lower bound of performance that is reachable by implementing the proposed algorithm in plain Java.

This solution demonstrates that (if no further requirements for the transformation exist), a Java implementation is probably preferable to fancy model transformation tools -- as long as these tools are not much more concise and easy to understand than the hand-written code of this solution.

Review Questions

  1. Does the solution use the provided benchmark structure, i.e., is a batch execution supported? → Yes
  2. Can all models be transformed within 10 minues? → Yes, the solution is very fast!
  3. What kind of result is produced? BDT, BDD? fix/variable order? → BDT (old case variant) with fixed order
  4. Is the transformation correct? → Yes, for all generated models, missing/double values are not supported
  5. Are there computed Metrics? → Yes, the number of nodes in the BDT (almost (?) the maximum possible number, i.e., the full binary tree)