CrocoPat is a tool for simple and efficient relational computation.
CrocoPat manipulates relations of any arity, including graphs (which are binary relations). Its simple and expressive query and manipulation language is based on first-order predicate calculus. The implementation is based on the data structure binary decision diagram (BDD), which is well-known as a compact representation of large relations in computer-aided verification. CrocoPat is easy to integrate with other tools because it reads and writes relations from and to files in a simple tuple format.
Comprehension and assessment of large software systems.
Many structural analyzes of software systems can be formalized as relational queries, for example the detection of design patterns, of patterns of problematic design, of code clones, of dead code, and of differences between the as-built and the as-designed architecture. Through its efficiency and its expressive language, CrocoPat enables practically important analyzes of real-world software systems that are not possible with other graph analysis tools, in particular analyzes that involve transitive closures and the detection of patterns in graphs.
High level BDD package.
While standard BDD packages provide operations for manipulating relations over bits, the CrocoPat library allows the manipulation of relations over strings. It relieves programmers of mapping strings to binary encodings and user variables to BDD variables.
What's New in This Release:
· Only maintenance activities (make it available for MacOS, bug fixes).