Specifying code analysis tools

Customised code analysis tools for the maintenance and evolution of existing software systems can be created by storing program information in a database, and using an application generator to translate the high-level specifications of the analyses the tools are intended to perform. We present a high-level domain-specific language for the specification of program analysis tools that exploit an algebraic program representation called F(p). The algebraic representation is a compact program view which describes the static composition of the control structures and the set of the resulting potential executions. Operands of the algebraic expression (that represent the program's constructs) are used as indexes to access information stored in the database. The specification language provides facilities for the traversal of the program representation and access to the associated information in the database. The program model and the analysis results are integrated into a unique conceptual model, thus simplifying the reuse of the results of an analysis and the integration of the tools.

[1]  Andrew D Holt,et al.  The Unix Programming Environment , 1985 .

[2]  C. V. Ramamoorthy,et al.  The C Information Abstraction System , 1990, IEEE Trans. Software Eng..

[3]  Brian A. Malloy,et al.  Data flow testing of parallelized code , 1992, Proceedings Conference on Software Maintenance 1992.

[4]  Premkumar T. Devanbu GENOA - A Customizable, Language- And Front-end Independent Code Analyzer , 1992, International Conference on Software Engineering.

[5]  Brian A. Malloy,et al.  A unified interprocedural program representation for a maintenance environment , 1991, Proceedings. Conference on Software Maintenance 1991.

[6]  Aniello Cimitile,et al.  Prolog for Software Maintenance , 1995, SEKE.

[7]  Aniello Cimitile,et al.  Software salvaging based on conditions , 1994, Proceedings 1994 International Conference on Software Maintenance.

[8]  Aniello Cimitile,et al.  Algorithms for program dependence graph production , 1995, Proceedings of International Conference on Software Maintenance.

[9]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[10]  Premkumar T. Devanbu,et al.  Automated construction of testing and analysis tools , 1994, Proceedings of 16th International Conference on Software Engineering.

[11]  Aniello Cimitile,et al.  A Logic-Based Approach to Reverse Engineering Tools Production , 1992, IEEE Trans. Software Eng..

[12]  Aniello Cimitile,et al.  Reverse engineering: Algorithms for program graph production , 1991, Softw. Pract. Exp..

[13]  Suzanne W. Dietrich,et al.  The application of deductive databases to inter-module code analysis , 1991, Proceedings. Conference on Software Maintenance 1991.

[14]  Norman Fenton,et al.  Metrics and software structure , 1987 .

[15]  Mark A. Linton Implementing relational views of programs , 1984 .

[16]  Giuseppe Visaggio,et al.  An environment for the reengineering of Pascal programs , 1991, Proceedings. Conference on Software Maintenance 1991.