Abstract

This paper presents the experience that has been acquired over a period of three years during the Ph.D. dissertation of the first author. This experience has been characterised by three fundamental phases. The first of these produced an earlier paper [Eltantawi and Maresca, 1994] and dealt with the first experience of the application of logic programming (LP) to programming language analysis. This consisted of defining a methodology, and setting up a tool for the analysis of a few programming languages and for the representation of the main low-level design documents. The second phase stemmed from a second paper [Giannone and Maresca, 1995], which focused on the way in which useful documents were to be extracted during the System Comprehension activity, primarily in the reverse engineering phase. In this connection, applying LP techniques made it possible to define a methodology and set up a tool for generalising the extraction and abstraction of information to help in the building of the above documents, making them independent of the programming language. Phase three, this paper, represents the logical continuation of the first two, and tackles the application of LP techniques to RE activities and, in particular, the construction of low- and high-level design documents in a multilanguage environment. Specifically, this experience is concerned with the analysis of programming languages for reverse engineering (RE) topics using two approaches: a main approach based on logic, and a complementary approach based on database manipulation. The authors describe methodologies for the analysis of code belonging to a multilanguage environment, and discuss the motivations that made it possible to achieve the specific design and implementation of a software tool called “Multilanguage Analyser” (M-Lan-An). This tool can synthesise the candidate methodologies for the construction of low-level design documentation (such as the algebraic form), and high-level design documentation (such as the code structure-tree, the call-tree, the declaration-tree, and so forth). All the documents can be visualised and browsed using user-friendly interfaces, while the tool can determine some important objective metrics such as McCabe's number, Halstead's dimensional metrics, number of knots and their density, which are important indicators of the complexity of the analysed code. Currently, M-Lan-An can analyse several programming languages such as ANSI C/Turbo C, FORTRAN 77 and PL/1. The tool operates on PC (IBM-DOS) and is built in Turbo PROLOG V. 2.0 and CLIPPER V. 5.2.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.