Many analyses of software systems can be formalized asrelational queries, for example the detection of design patterns,of patterns of problematic design, of code clones, ofdead code, and of differences between the as-built and theas-designed architecture. This paper describes the conceptsof CrocoPat, a tool for querying and manipulating relations.CrocoPat is easy to use, because of its simple query andmanipulation language based on predicate calculus, and itssimple file format for relations. CrocoPat is efficient, becauseit internally represents relations as binary decisiondiagrams, a data structure that is well-known as a compactrepresentation of large relations in computer-aided verification.CrocoPat is general, because it manipulates not onlygraphs (i.e. binary relations), but n-ary relations.
['Dirk Beyer', 'Andreas Noack', 'Claus Lewerentz']
Simple and efficient relational querying of software structures