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 art 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 an 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 far 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 PI/1. The tool operates on PC (IBM-DOS) and is built in Turbo PROLOG V. 2.0 and CLIPPER V.5.2. Copyright (C) 1996 Elsevier Science Ltd
Logic programming and database schema in reverse engineering: Analysis and documentation for existing code in a multilanguage environment / M. R. A., Eltantawi; Maresca, Paolo. - In: ENGINEERING APPLICATIONS OF ARTIFICIAL INTELLIGENCE. - ISSN 0952-1976. - STAMPA. - 9:(1996), pp. 561-574. [10.1016/0952-1976(96)00050-4]
Logic programming and database schema in reverse engineering: Analysis and documentation for existing code in a multilanguage environment
MARESCA, PAOLO
1996
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 art 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 an 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 far 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 PI/1. The tool operates on PC (IBM-DOS) and is built in Turbo PROLOG V. 2.0 and CLIPPER V.5.2. Copyright (C) 1996 Elsevier Science LtdI documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.