The Meta-Environment - Rscript

Skip to main content.


Extract-Enrich-View paradigm. Rscript is a small scripting language based on the relational calculus. It is intended for analyzing and querying the source code of software systems: from finding uninitialized variables in a single program to formulating queries about the architecture of a complete software system. Rscript fits well in the extract-enrich-view paradigm shown in the figure below.

Extract. Given the source text, extract relevant information from it in the form of relations. Examples are the CALLS relation that describes direct calls between procedures, the USE relation that relates statements with the variables that are used in the statements, and the PRED relation that relates a statement with its predecessors in the control flow graph. The extraction phase is outside the scope of Rscript but may, for instance, be implemented using ASF+SDF.

Enrich. Derive additional information from the relations extracted from the source text. For instance, use CALLS to compute procedures that can also call each other indirectly (using transitive closure). Here is where Rscript shines.

View. The result of the enrichment phase are again sets and relations. These can be displayed with various tools like. The Meta-Environment has built-in viewing facilities for various relation types.


Online Documentation

See Rscript --- a Relational Approach to Software Analysis