6.5.1. General Language Representation

This section explains the types of nodes and edges (the “elements”) in the RFG along with their attributes. There are types of graph elements within the RFG models that are abstract from the point of view of the source code analysis, i.e., the front ends will not create elements of those types. You can add graph elements of these types nonetheless in your specification views because some analyses depend on the subclass relationship.

The various languages are modeled by a uniform schema. Therefore it is possible that the naming does not reflect the terminology of a language directly. E.g, the C# property of being a sealed entity is named Element.Is_Final, which is a term taken from the Java world.

This is due to the fact that there is no common terminology for all languages while the basic concepts are very similar.

Caution

Be aware that you might have to translate the terminology used here into your language’s terminology.

In addition to the basic node and edge types presented here, some languages need additional kinds of elements (e.g., node-package Package in Java or node-namespace Namespace in C++ and C#). These elements and the details of the types presented here are explained in the respective language chapters.