Identifying the semantic and textual differences between two versions of a program
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Identifying syntactic differences between two programs
Software—Practice & Experience
SDE 5 Proceedings of the fifth ACM SIGSOFT symposium on Software development environments
Program integration for languages with procedure calls
ACM Transactions on Software Engineering and Methodology (TOSEM)
A safe, efficient regression test selection technique
ACM Transactions on Software Engineering and Methodology (TOSEM)
Pattern matching algorithms
Predicting Fault Incidence Using Software Change History
IEEE Transactions on Software Engineering
Translation validation for an optimizing compiler
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Finding refactorings via change metrics
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The string-to-string correction problem with block moves
ACM Transactions on Computer Systems (TOCS)
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
A fast algorithm for computing longest common subsequences
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Regression test selection for Java software
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Effectively prioritizing tests in development environment
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
A State-of-the-Art Survey on Software Merging
IEEE Transactions on Software Engineering
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Automated Software Engineering
Semantic Diff: A Tool for Summarizing the Effects of Modifications
ICSM '94 Proceedings of the International Conference on Software Maintenance
Detection of Logical Coupling Based on Product Release History
ICSM '98 Proceedings of the International Conference on Software Maintenance
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
Comprehending Reality " Practical Barriers to Industrial Adoption of Software Maintenance Automation
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Extensible Language-Aware Merging
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Dynamically discovering likely program invariants
Dynamically discovering likely program invariants
Identification of Software Instabilities
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Identifying redundancy in source code using fingerprints
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
Predicting Source Code Changes by Mining Change History
IEEE Transactions on Software Engineering
An Automatic Approach to identify Class Evolution Discontinuities
IWPSE '04 Proceedings of the Principles of Software Evolution, 7th International Workshop
A Differencing Algorithm for Object-Oriented Programs
Proceedings of the 19th IEEE international conference on Automated software engineering
Scaling regression testing to large software systems
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Using Origin Analysis to Detect Merging and Splitting of Source Code Entities
IEEE Transactions on Software Engineering
Detecting and Visualizing Refactorings from Software Archives
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
CatchUp!: capturing and replaying refactorings to support API evolution
Proceedings of the 27th international conference on Software engineering
Use of relative code churn measures to predict system defect density
Proceedings of the 27th international conference on Software engineering
Efficient and precise dynamic impact analysis using execute-after sequences
Proceedings of the 27th international conference on Software engineering
Mining Version Histories to Guide Software Changes
IEEE Transactions on Software Engineering
Facilitating software evolution research with kenyon
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Matching execution histories of program versions
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Understanding source code evolution using abstract syntax tree matching
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Analysis of signature change patterns
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
When Functions Change Their Names: Automatic Detection of Origin Relationships
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Fine-grained processing of CVS archives with APFEL
eclipse '06 Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange
Tracking Code Clones in Evolving Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Automatic Inference of Structural Changes for Matching across Program Versions
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Supporting the Investigation and Planning of Pragmatic Reuse Tasks
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Understanding and Aiding Code Evolution by Inferring Change Patterns
ICSE COMPANION '07 Companion to the proceedings of the 29th International Conference on Software Engineering
Identifying Changed Source Code Lines from Version Repositories
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Mining a Change-Based Software Repository
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Determining detailed structural correspondence for generalization tasks
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction
IEEE Transactions on Software Engineering
Journal of Software Maintenance and Evolution: Research and Practice
Proceedings of the 30th international conference on Software engineering
Mining framework usage changes from instantiation code
Proceedings of the 30th international conference on Software engineering
A change-aware development environment by recording editing operations of source code
Proceedings of the 2008 international working conference on Mining software repositories
Discovering and representing systematic code changes
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Ldiff: An enhanced line differencing tool
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Tracking code patterns over multiple software versions with Herodotos
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Clone region descriptors: Representing and tracking duplication in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hierarchical program representation for program element matching
IDEAL'07 Proceedings of the 8th international conference on Intelligent data engineering and automated learning
Actively comparing clones inside the code editor
Proceedings of the 4th International Workshop on Software Clones
Automatically identifying changes that impact code-to-design traceability during evolution
Software Quality Control
Non-essential changes in version histories
Proceedings of the 33rd International Conference on Software Engineering
Historage: fine-grained version control system for Java
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
ShowMeHow: translating user interface instructions between applications
Proceedings of the 24th annual ACM symposium on User interface software and technology
A method for analyzing code homology in genealogy of evolving software
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
An introduction to model versioning
SFM'12 Proceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Feedback-driven binary code diversification
ACM Transactions on Architecture and Code Optimization (TACO) - Special Issue on High-Performance Embedded Architectures and Compilers
Identification of generalization refactoring opportunities
Automated Software Engineering
Detecting inconsistencies in wrappers: a case study
Proceedings of the 2013 International Conference on Software Engineering
The MSR cookbook: mining a decade of research
Proceedings of the 10th Working Conference on Mining Software Repositories
VILO: a rapid learning nearest-neighbor classifier for malware triage
Journal in Computer Virology
Hi-index | 0.00 |
Multi-version program analyses require that elements of one version of a program be mapped to the elements of other versions of that program. Matching program elements between two versions of a program is a fundamental building block for multi-version program analyses and other software evolution research such as profile propagation, regression testing, and software version merging.In this paper, we survey matching techniques that can be used for multi-version program analyses and evaluate them based on hypothetical change scenarios. This paper also lists challenges of the matching problem, identifies open problems, and proposes future directions.