Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1122018.1122038acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesacm-seConference Proceedingsconference-collections
Article
Free access

Aristotle: a system for development of program analysis based tools

Published: 17 March 1995 Publication History

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.

References

[1]
A. V, Aho, R Sethi, and J. D. Ullman, Compilers, Principles, Techniques, and Tools, Addison-Wesley Publishing Company, 1986.
[2]
R. DeMillo, R. Lipton and F. Sayward, "Hints on test data selection: Hints for the practicing programmer," Computer vol. 12, no. 4, April 1978, pp. 34--41.
[3]
D. M. Dhamdhere, B. K. Rossen and F. K. Zadeck. "How to analyze large programs efficiently and informatively," Proceedings of the ACM SIGPLAN '92 Conference on Programming Language Design and Implementation, Sigplan Notices, pp. 212--223.
[4]
J. Ferrante, K. J. Ottenstein and J. D. Warren, "The program dependence graph and its use in optimization," ACM Transactions on Programming Languages and Systems, vol. 9, no. 3, July 1987, pp. 319--349.
[5]
A. Geist, PVM 3 User's Guide and Reference Manual, Oak Ridge National Laboratory, 1994.
[6]
R. Gupta, M. J. Harrold and M. L. Soffa, "An approach to regression testing using slicing," Conference on Software Maintenance 1992, pp. 299--308.
[7]
M. J. Harrold, B. A. Malloy and G. Rothermel, "Efficient construction of program dependence graphs," Proceedings of the International Symposium on Software Testing and Analysis 93, June 1993, pp. 160--170.
[8]
M. J. Harrold and M. L. Soffa, "Efficient computation of interprocedural definition-use chains," ACM Transactions on Programming Languages and Systems, vol. 16, no. 2, March 1994, pp. 175--204.
[9]
D. Heller, Motif Programming Manual, OSF/Motif Version 1.1, O'Reilly and Associates, Inc., 1994.
[10]
S. Horwitz, J. Prins, T. Reps "Integrating non-interfering versions of programs," ACM Transactions on Programming Languages and Systems vol. 11, no. 3, July 1989, pp. 345--387.
[11]
S. Horwitz, T. Reps and D. Binkley, "Interprocedural slicing using dependence graphs," ACM Transactions on Programming Languages and Systems, v. 12, no. 1, January 1990, pp. 26--60.
[12]
B. Korel, "Dynamic program slicing," Information Processing Letters vol. 29, no. 3, October 1988, pp. 155--163.
[13]
G. Lamprecht, Introduction to Simula 67, Friedr, Vieweg & Sohn, Braunschweig/Wiesbaden, 1983.
[14]
J. R. Larus, "Abstract execution: A technique for efficiently tracing programs," Software: Practice and Experiences, vol. 20, pp. 1241--1258, month, 1990.
[15]
I. Lemke and G. Sander, Visualization of Compiler Graphs, May 1994.
[16]
P. E. Livadas and S. Croll, "A toolset for program understanding," Proceedings of the 2nd Workshop on Program Comprehension, July 1993.
[17]
J. Lloyd, Abstract Execution and Parallelization in Data Flow Testing, M.S. Thesis, Clemson University, October 1994.
[18]
B. A. Malloy; M. J. Harrold and J. D. McGregor, "The implementation of a simulation language using dynamic binding," Object-Oriented Simulation Conference 93, January 1993, pp. 1--8.
[19]
B. Marick, Generic Coverage Tool (GCT) User's Guide, Testing Foundations, Champaign, IL, 1992.
[20]
G. Rothermel and M. J. Harrold, "A safe, efficient algorithm for regression test selection," Proceedings of the Conference on Software Maintenance '93, September 1993, pp. 358--367.
[21]
G. Rothermel and M. J. Harrold, "Selecting tests and identifying test coverage requirements for modified software," Proceedings of the International Symposium on Software Testing and Analysis 94, August 1994, pp. 169--184.
[22]
G. A. Venkatesh and C. N. Fischer, "SPARE: Formal Semantics" TR 873, Computer Sciences Department, University of Wisconsin-Madison, August 1989.
[23]
D. J. Richardson, T. O. O'Malley, C. T. Moore and S. L. Aha, "Developing and integrating ProDAG in the Arcadia Environment," Proceedings of the 5th Symposium on Software Development Environments, December 1992, pp. 109--119.
[24]
R. M. Stallman, "Using and porting 'GNU CC," Free Software Foundation, Inc., Cambridge MA, February 1990, pp. 73--77.
[25]
K. Tewary and M. J. Harrold, "Fault modeling using the program dependence graph," IEEE International Symposium on Software Reliability '94, November 1994, pp. 126--135.
[26]
M. Weiser, "Programmers use slices when debugging," Communications of the ACM vol. 25, no. 7, July 1982, pp. 446--452.
[27]
M. Weiser, "Program slicing," IEEE Transactions on Software Engineering vol. SE-10, no. 4, July 1984, pp. 352--357.

Cited By

View all
  • (2014)Hybrid Directed Test Suite AugmentationProceedings of the 2014 IEEE International Conference on Software Testing, Verification, and Validation10.1109/ICST.2014.39(263-272)Online publication date: 31-Mar-2014
  • (2013)A Study in Prioritization for Higher Strength Combinatorial TestingProceedings of the 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops10.1109/ICSTW.2013.40(285-294)Online publication date: 18-Mar-2013
  • (2008)Early Bug Detection in Deployed Software Using Support Vector MachineAdvances in Computer Science and Engineering10.1007/978-3-540-89985-3_64(518-525)Online publication date: 2008
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
ACMSE '95: Proceedings of the 33rd annual ACM Southeast Conference
March 1995
300 pages
ISBN:0897917472
DOI:10.1145/1122018
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 March 1995

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ACMSE '95
March 17 - 18, 1995
South Carolina, Clemson

Acceptance Rates

ACMSE '95 Paper Acceptance Rate 47 of 75 submissions, 63%;
Overall Acceptance Rate 502 of 1,023 submissions, 49%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)54
  • Downloads (Last 6 weeks)16
Reflects downloads up to 21 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2014)Hybrid Directed Test Suite AugmentationProceedings of the 2014 IEEE International Conference on Software Testing, Verification, and Validation10.1109/ICST.2014.39(263-272)Online publication date: 31-Mar-2014
  • (2013)A Study in Prioritization for Higher Strength Combinatorial TestingProceedings of the 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops10.1109/ICSTW.2013.40(285-294)Online publication date: 18-Mar-2013
  • (2008)Early Bug Detection in Deployed Software Using Support Vector MachineAdvances in Computer Science and Engineering10.1007/978-3-540-89985-3_64(518-525)Online publication date: 2008
  • (2007)Combinatorial Interaction Regression Testing: A Study of Test Case Generation and Prioritization2007 IEEE International Conference on Software Maintenance10.1109/ICSM.2007.4362638(255-264)Online publication date: Oct-2007
  • (2004)MudPieComputer Languages, Systems and Structures10.1016/j.cl.2003.09.00130:1-2(5-19)Online publication date: 1-Apr-2004
  • (2000)An approach to limit the WYNOT problemProceedings International Conference on Software Maintenance ICSM-9410.1109/ICSM.2000.883048(207-215)Online publication date: 2000
  • (1999)Bytecode-based Java program analysisProceedings of the 37th annual ACM Southeast Conference (CD-ROM)10.1145/306363.306382(14-es)Online publication date: 1-Apr-1999
  • (1999)Impact of function pointers on the call graphProceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090)10.1109/CSMR.1999.756682(51-59)Online publication date: 1999
  • (1999)Points-to analysis for program understandingJournal of Systems and Software10.1016/S0164-1212(98)10058-444:3(213-227)Online publication date: 1-Jan-1999
  • (1998)Empirical Studies of Control Dependence Graph Size forC ProgramsEmpirical Software Engineering10.1023/A:10080883001243:2(203-211)Online publication date: 1-Aug-1998
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media