The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Crafting a compiler
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pointer-induced aliasing: a problem classification
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
The use of program dependence graphs in software engineering
ICSE '92 Proceedings of the 14th international conference on Software engineering
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated support for legacy code understanding
Communications of the ACM
Value dependence graphs: representation without taxation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Context-insensitive alias analysis reconsidered
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Precise flow-insensitive may-alias analysis is NP-hard
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program analysis for software engineering: new applications, new requirements, new tools
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Hybrid slicing: integrating dynamic information with static analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Semantics Guided Regression Test Cost Reduction
IEEE Transactions on Software Engineering
Program analysis via graph reachability
ILPS '97 Proceedings of the 1997 international symposium on Logic programming
Partial online cycle elimination in inclusion constraint graphs
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Handbook of software quality assurance (3rd ed.)
Handbook of software quality assurance (3rd ed.)
On the complexity of flow-sensitive dataflow analyses
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstracting dependencies between software configuration items
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the Conference on The Future of Software Engineering
Software maintenance and evolution: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Proceedings of the Conference on The Future of Software Engineering
Formal specification: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Context-sensitive synchronization-sensitive analysis is undecidable
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pointer analysis: haven't we solved this problem yet?
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Metrics and Models in Software Quality Engineering
Metrics and Models in Software Quality Engineering
Successful Evolution of Software Systems
Successful Evolution of Software Systems
Lazy Algorithmic Debugging: Ideas for Practical Implementation
AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging
Software Architecture in Practice
Software Architecture in Practice
A static analyzer for large safety-critical software
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Using Dependence Graphs as a Support to Document Programs
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
Generating Robust Parsers using Island Grammars
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Understanding Function Behaviors through Program Slicing
WPC '96 Proceedings of the 4th International Workshop on Program Comprehension (WPC '96)
Dynamic Program Slicing in Understanding of Program Execution
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Towards a Clone Detection Benchmark Suite and Results Archive
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Automatic Design Pattern Detection
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Program Simplification as a Means of Approximating Undecidable Propositions
IWPC '99 Proceedings of the 7th International Workshop on Program Comprehension
Structure-preserving binary relations for program abstraction
The essence of computation
Identification of High-Level Concept Clones in Source Code
Proceedings of the 16th IEEE international conference on Automated software engineering
On the Use of Metaballs to Visually Map Source Code Structures and Analysis Results onto 3D Space
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Code Extraction Algorithms which Unify Slicing and Concept Assignment
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Reducing wasted development time via continuous testing
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
Journal of Systems and Software
Software architecture recovery based on pattern matching
Software architecture recovery based on pattern matching
Evolutionary testing in the presence of loop-assigned flags: a testability transformation approach
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Abstracting Stack to Detect Obfuscated Calls in Binaries
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
IEEE Transactions on Software Engineering
Working Session: Textual Views of Source Code to Support Comprehension
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Locating causes of program failures
Proceedings of the 27th international conference on Software engineering
Search-based software test data generation: a survey: Research Articles
Software Testing, Verification & Reliability
Finding application errors and security flaws using PQL: a program query language
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Guest Editorial: Special Issue on Software Maintenance and Evolution
IEEE Transactions on Software Engineering
Studying the Fault-Detection Effectiveness of GUI Test Cases for Rapidly Evolving Software
IEEE Transactions on Software Engineering
Empirical evaluation of the tarantula automatic fault-localization technique
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Generalizing symbolic execution to library classes
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
Symbolic execution of floating-point computations: Research Articles
Software Testing, Verification & Reliability
What's in a Name? A Study of Identifiers
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Dynamic Data Structure Analysis for Java Programs
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Inference and enforcement of data structure consistency specifications
Proceedings of the 2006 international symposium on Software testing and analysis
Cross-Language Program Analysis and Refactoring
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
How Programs Represent Reality (and how they don't)
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
How is aliasing used in systems software?
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Statistical Debugging: A Hypothesis Testing-Based Approach
IEEE Transactions on Software Engineering
Model-driven Development of Complex Software: A Research Roadmap
FOSE '07 2007 Future of Software Engineering
Software Engineering for Automotive Systems: A Roadmap
FOSE '07 2007 Future of Software Engineering
Software Testing Research: Achievements, Challenges, Dreams
FOSE '07 2007 Future of Software Engineering
Formal Software Analysis Emerging Trends in Software Model Checking
FOSE '07 2007 Future of Software Engineering
Safety and Software Intensive Systems: Challenges Old and New
FOSE '07 2007 Future of Software Engineering
Software Reliability Engineering: A Roadmap
FOSE '07 2007 Future of Software Engineering
The Future of Software Performance Engineering
FOSE '07 2007 Future of Software Engineering
Some Trends in Web Application Development
FOSE '07 2007 Future of Software Engineering
A Perspective on the Future of Middleware-based Software Engineering
FOSE '07 2007 Future of Software Engineering
The Future of Programming Environments: Integration, Synergy, and Assistance
FOSE '07 2007 Future of Software Engineering
New Frontiers of Reverse Engineering
FOSE '07 2007 Future of Software Engineering
The Current State and Future of Search Based Software Engineering
FOSE '07 2007 Future of Software Engineering
The Future of Empirical Methods in Software Engineering Research
FOSE '07 2007 Future of Software Engineering
Towards dynamic interprocedural analysis in JVMs
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
FLAVERS: a finite state verification technique for software systems
IBM Systems Journal
Client-driven pointer analysis
SAS'03 Proceedings of the 10th international conference on Static analysis
Dimensions of precision in reference analysis of object-oriented programming languages
CC'03 Proceedings of the 12th international conference on Compiler construction
Formal Software Analysis Emerging Trends in Software Model Checking
FOSE '07 2007 Future of Software Engineering
Software Design and Architecture The once and future focus of software engineering
FOSE '07 2007 Future of Software Engineering
The Future of Programming Environments: Integration, Synergy, and Assistance
FOSE '07 2007 Future of Software Engineering
New Frontiers of Reverse Engineering
FOSE '07 2007 Future of Software Engineering
Transforming sources to petri nets: a way to analyze execution of parallel programs
Proceedings of the 1st international conference on Simulation tools and techniques for communications, networks and systems & workshops
Using Architecture Analysis to Evolve Complex Industrial Systems
Architecting Dependable Systems V
Symbolic Hybrid Programming Tool for Software Understanding
HAIS '08 Proceedings of the 3rd international workshop on Hybrid Artificial Intelligence Systems
Foundation for program understanding
Proceedings of the 2008 conference on Tenth Scandinavian Conference on Artificial Intelligence: SCAI 2008
Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
The fluid software metadata framework (FSM)
Proceedings of the 2nd ACM SIGCHI symposium on Engineering interactive computing systems
Dynamic masking of application displays using OCR technologies
IBM Journal of Research and Development
Automatic construction of an effective training set for prioritizing static analysis warnings
Proceedings of the IEEE/ACM international conference on Automated software engineering
Dependence cluster visualization
Proceedings of the 5th international symposium on Software visualization
Achievements and challenges in software reverse engineering
Communications of the ACM
Ontology model-based static analysis of security vulnerabilities
ICICS'11 Proceedings of the 13th international conference on Information and communications security
Model-Driven engineering of machine executable code
ECMFA'10 Proceedings of the 6th European conference on Modelling Foundations and Applications
Using automatic static analysis to identify technical debt
Proceedings of the 34th International Conference on Software Engineering
Reducing the class coupling of legacy code by a metrics-based relocation of class members
CEE-SET'09 Proceedings of the 4th IFIP TC 2 Central and East European conference on Advances in Software Engineering Techniques
Partitioning applications for hybrid and federated clouds
CASCON '12 Proceedings of the 2012 Conference of the Center for Advanced Studies on Collaborative Research
A case study on effectively identifying technical debt
Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering
Efficient Identification of Linchpin Vertices in Dependence Clusters
ACM Transactions on Programming Languages and Systems (TOPLAS)
State-based model slicing: A survey
ACM Computing Surveys (CSUR)
Hi-index | 0.02 |
The automated and semi-automated analysis of source code has remained a topic of intense research for more than thirty years. During this period, algorithms and techniques for source-code analysis have changed, sometimes dramatically. The abilities of the tools that implement them have also expanded to meet new and diverse challenges. This paper surveys current work on source-code analysis. It also provides a road map for future work over the next five-year period and speculates on the development of source-code analysis applications, techniques, and challenges over the next 10, 20, and 50 years.