Aristotle: a system for development of program analysis based tools

  • Authors:
  • Mary Jean Harrold;Loren Larsen;John Lloyd;David Nedved;Melanie Page;Gregg Rothermel;Manvinder Singh;Michael Smith

  • Affiliations:
  • Clemson University, Clemson, South Carolina;Clemson University, Clemson, South Carolina;Clemson University, Clemson, South Carolina;Clemson University, Clemson, South Carolina;Clemson University, Clemson, South Carolina;Clemson University, Clemson, South Carolina;Clemson University, Clemson, South Carolina;Clemson University, Clemson, South Carolina

  • Venue:
  • ACM-SE 33 Proceedings of the 33rd annual on Southeast regional conference
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

Aristotle provides program analysis information, and supports the development of software engineering tools. Aristotle's front end consists of parsers that gather control flow, local dataflow and symbol table information for procedural language programs. We implemented a parser for C by incorporating analysis routines into the GNU C parser; a C++ parser is being implemented using similar techniques. Aristotle tools use the data provided by the parsers to perform a variety of tasks, such as dataflow and control dependence analysis, dataflow testing, graph construction and graph viewing. Most of Aristotle's components function on single procedures and entire programs. Parsers and tools use database handler routines to store information in, and retrieve it from, a central database. A user interface provides interactive menu-driven access to tools, and users can view results textually or graphically. Many tools can also be invoked directly from applications programs, which facilitates the development of new tools. To assist with system development and maintenance, we are also creating support tools for managing bug and test suite databases.