Information Technology Reference
In-Depth Information
producing a set of mapping elements specifying the matching elements together
with a similarity value between 0 (strong dissimilarity) and 1 (identity) indicat-
ing the plausibility of their correspondence.
The implementation of the porting support procedure is ongoing work, and it
is mainly consisting of (a) the development of the API Ontology builder and API
annotator; (b) the development of the source code analysis front end (starting
from a previous implementation realized within the ROSE compiler construc-
tion toolkit; (c) the integration of the already developed modules ALCOR and
Schema Matcher; (d) the implementation of a Graphical User Interface, provid-
ing the user with the matching results in a form graphically relating the source
code excerpts with suggested target API elements, in order to perform a suitable
and effective support to the porting activity.
In the following sections we describe in more details the working principles
and the ongoing implementation and integration of the Algorithmic Concepts
Recognition module (sec. 4.1), of the Schema Matcher module (sec. 4.2) and of
the API Ontology Builder module (sec. 4.3).
4.1 Algorithmic Concepts Recognition
The Algorithmic Concept Recognizer , previously designed and developed [10,11]
implements a technique for automated algorithmic concepts recognition in source
code [12], where the definition of parallelizable algorithmic concept and the tech-
nique to describe and detect the algorithmic concepts by using an attributed
grammar were presented, and which is briefly resumed here.
The Algorithmic Concepts Recognition is a Program Comprehension tech-
nique to recognize in source code the instances of known algorithms. The recogni-
tion strategy is based on a hierarchical parsing of algorithmic concepts. Starting
from an intermediate representation of code, Basic Concepts are recognized first.
Subsequently they become components of Structured Concepts in a hierarchical
and / or recursive way. This abstraction process, can be modeled as a hierar-
chical parsing, by using Concept Recognition Rules that act on a description of
concept instances found in the code.
Basic concepts. The building blocks of the hierarchical abstraction process are
the Basic Concepts . They are chosen among the elements of the intermediate
code representation at the structural level. A slightly modified version of the Pro-
gram Dependence Graph is used: it is augmented with syntactical information
(e.g. trees structures representing expressions for each statement node), control
and data dependence information (e.g. control branches, data dependence level,
variables,...areadded).
Concept Recognition Rules. The Concept Recognition Rules are the production
rules of the parsing: they describe the set of characteristics and properties to
permit the identification of an algorithmic concept instance in the code.
Each recognition rule related to an algorithmic concept specifies how sub-
concepts, formed by set of statements and variables linked by a functionality,
 
Search WWH ::




Custom Search