Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/24208.24228acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article
Free access

An incremental algorithm for software analysis

Published: 01 January 1987 Publication History

Abstract

In programming environments aimed at “industrial strength” software development, there is a need for software tools which facilitate both design and maintenance. These tools should encourage experimentation with different system configurations which enable designers to a priori estimate the associated system complexity and judge the ease of accommodating enhancements. Maintainers should be able to check straightforwardly the ramifications of system changes due to enhancements or “bug fixes”. With interprocedural data flow information about the definition and use of global variables and parameters in a software system, tools can be built to perform these tasks.
For large, complex systems, efficient methods for interprocedural analysis are necessarily incremental, as a software system is a dynamically evolving entity. Incremental algorithms update current information about a system in response to a change rather than re-calculating the information by re-analyzing the entire system. This paper reports our development of a general purpose incremental data flow analysis algorithm, which is applicable to both intraprocedural and interprocedural domains. It is based on interval analysis, a technique whose observed performance is linear for most programs; under reasonable assumptions about program flow graphs this linearity can be verified [20].

References

[1]
Aho, A. V., Sethi, R. and Ullman, J. D. Compilerr: Principler, Techniquer, and Took Addison-Wesley, 1986.
[2]
Allen, F. E. and Cocke, J. A Program Data Flow Analysis Procedure. Cammunicotions of the ACM 19(3):137-147, 1977. Banning, J. P.
[3]
Banning, J.P A Method for Determining the Side Effect of Procedure Calls. PhD thesis, Department of Electrical Engineering, Stanford University, 1978.
[4]
Banning, J. An Efficient Way to Find the Side Effects of Procedure Calls and the Aliases of VariabIes. In Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languoges, pages 2841. Association for Computing Machinery-SIGPLAN, Januuy, 1979.
[5]
Berman, M. A., Paul& M. C., and Ryder, B. G. Proving Relative Lower Bounde for Incremental Algorithms. Computer Science Technical Report DCS-TR-154, Department of Computer Science, Rutgers Univeraity, April, 1985. being reviewed for publication.
[6]
Burke, M. An Interval Analysis Approach Toword Interprocedural Doto Flow Analysis. Computer Science Technical Report RC 10640, IBM Thomas J. Watson Research Center, Yorktown Heights, New York, July, 1984.
[7]
Burstall, R. and Darlington, J. A Transformation System for Developing Recursive Programs. Journal of the ACM 24(1):44-67, January, 1977.
[8]
Cooper, K. and Kennedy, K. Efficient Computation of Flow Insensitive Interprocedural Summary Information, In Proceedings of SIGPLAN '84 Symposium on Compiler Construction, pages 247-258. June, 1984. SIGPLAN Notices, Vol 19, No 6.
[9]
Cooper, K. Analyzing Aliases of Reference Formal Parameters. In Conference Record of the Twelfth Annual ACM Symposium on Principle8 of Progromming Longuages, pages 281-290. January, 1985.
[10]
Hecht, M. S. Flow Anolyrio of Computer Progrome. Elwvier North-Holland, 1977.
[11]
Johnson, S. C. LINT, A C Program Checker. In UNIX System Programmer's Manual, Vol 2, paps 278-290. Halt, Rinehart, and Winston, 1979.
[12]
Johnson, G. and Fischer, C. A Meta-Language and System for Nonlocal Incremental Attribute Evaluation in Language- Based Editors. In Conference Record of the Twelth Annual ACM Symposium on the Principles of Programming Longuogea, pages 141-151. Association for Computing Machinery-SIGPLAN, January, 1985.
[13]
Marlowe, T., Paul& M. C., and Ryder, B. G. Conditionr jot Incremental Aeration: Ezompled and Countcrcz4mpkr. Department of Computer Science Technical Report DCS-TR-190, Rutgers University, May, 1986. being reviewed for public&ion.
[14]
Reps, T. Optimal-time Incremental Semantic Analysir for Syntax-directed Editors. In Conjerencc Record oj the Ninth Annual ACM Symposium on Principle8 oj Programming Languages, pagea 16Q176. Association for Computing Machinery-SIGPLAN, January, 1982.
[15]
Ryder, B. G. The PFORT Verifier. Sojtwarc Practice and Ezpcrience 4:359377, 1974.
[16]
Ryder, B. G. Constructing the Call Graph of a Program. IEEE Transactions on Sojtwarc Engineer&g SE-5(3):216-225, May, 1979.
[17]
Ryder, B. G. Incremenfal Data Flow Anal@ Bared on a Unified Model of Elimination Algorilhms. PhD thesis, Department of Computer Science, Rutgers University, 1982.
[18]
Ryder, B. G, Incremental Data Flow Anslysis. In Conjercncc Record of the Tenth Annual ACM Symposium on Principle8 of Programming Languagee, pages 167-176. Association for Computing Machinery-SIGPLAN, January, 1982.
[19]
Ryder, B. G. and Paull, M. C. Incrcmcntol Data Flow Analyria Algorithmr. Technical Report DCS-TR-131, Department of Computer Science, 1983. being reviewed for publication.
[20]
Ryder, B. C. and Paull, M. C. Elimination Algorirhmr for Data Flow Analysis. Technical Report DCS-TR-140, Department of Computer Science, 1984. revised 1986, former title: A Unified Model of Elimination Algorithms, being reviewed for publication.
[21]
Ryder, Barbara G. and Carroll, Martin D. A New Struckre jor Perjorming Interval-bared Incremental D&o Flow Analpir. Center for Computer Aids for Industrial Productivity Technical Report CAIP-TR-S&018, Rutgem University, May, 1986.
[22]
Ryder, Barbara G. and Carroll, Martin D. Intcrvol-based Incremental Data Flow Analyak Center for Computer Aids for Indurtrid Productivity Technical Report CAIP-TR-86-017, Rutgem University, May, 1986.
[23]
Schwartz, J. T. and Sharir, M. Tarjan'r Feat Interval Finding Algorithm. SETL Newsletter No. 204, March 3, 1978, Courant Institute of Mathtmatical Scitnca, Ntw York University. 1978
[24]
Schwartz, J. T. and Sharir, M. A Design /or Oplimitatioru of Ihe Bitvcetorinj Clasr. Computer Science Technical Report 17, Courant Institute of Mathematical Scitncee, New York University, September, 1979.
[25]
Tarjan, R. E. Testing Flow Graph Rtducibility. Journal oj Computer and System Scicnccr 9:355-365, 1974.
[26]
Tarjan, R. E. Fast Algorithms for Solving Path Problems. Journal oj the ACM 28(3):594-614, 1981.

Cited By

View all
  • (2024)Homeostasis: Design and Implementation of a Self-Stabilizing CompilerACM Transactions on Programming Languages and Systems10.1145/364930846:2(1-58)Online publication date: 1-May-2024
  • (2005)Interprocedural parallelization analysis in SUIFACM Transactions on Programming Languages and Systems10.1145/1075382.107538527:4(662-731)Online publication date: 1-Jul-2005
  • (2005)Incremental and demand-driven points-to analysis using logic programmingProceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming10.1145/1069774.1069785(117-128)Online publication date: 11-Jul-2005
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SDE 2: Proceedings of the second ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
January 1987
227 pages
ISBN:0897912128
DOI:10.1145/24208
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1987

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

SESPSDE86

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)93
  • Downloads (Last 6 weeks)23
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Homeostasis: Design and Implementation of a Self-Stabilizing CompilerACM Transactions on Programming Languages and Systems10.1145/364930846:2(1-58)Online publication date: 1-May-2024
  • (2005)Interprocedural parallelization analysis in SUIFACM Transactions on Programming Languages and Systems10.1145/1075382.107538527:4(662-731)Online publication date: 1-Jul-2005
  • (2005)Incremental and demand-driven points-to analysis using logic programmingProceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming10.1145/1069774.1069785(117-128)Online publication date: 11-Jul-2005
  • (1991)Interprocedural Def-Use associations in C programsProceedings of the symposium on Testing, analysis, and verification10.1145/120807.120820(139-153)Online publication date: 1-Oct-1991
  • (1991)Analysis and transformation in the ParaScope editorProceedings of the 5th international conference on Supercomputing10.1145/109025.109126(433-447)Online publication date: 1-Jun-1991
  • (1990)Profiling an Incremental Data Flow Analysis AlgorithmIEEE Transactions on Software Engineering10.1109/32.4437716:2(129-140)Online publication date: 1-Feb-1990
  • (1989)An efficient hybrid algorithm for incremental data flow analysisProceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/96709.96728(184-196)Online publication date: 1-Dec-1989
  • (1989)Interprocedual data flow testingACM SIGSOFT Software Engineering Notes10.1145/75309.7532714:8(158-167)Online publication date: 1-Nov-1989
  • (1989)Interprocedual data flow testingProceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification10.1145/75308.75327(158-167)Online publication date: 1-Nov-1989
  • (1989)Fast interprocedual alias analysisProceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/75277.75282(49-59)Online publication date: 3-Jan-1989
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media