2005 · 130 citations · 0 references
ComputingComputer ScienceOperating SystemsProgramming LanguagesSoftware EngineeringAbstract Syntax TreesSoftware EvolutionSoftware MaintenanceStatic Code AnalysisAbstract Syntax Tree AnalysisAbstract Syntax Tree Pattern MatchingSoftware Evolution AnalysisSoftware Repository MiningSource Code AnalysisSource Code Change AnalysisSource Code ComparisonSource Code Evolution
Mining software repositories at the source code level can provide a greater understanding of how software evolves. We present a tool for quickly comparing the source code of different versions of a C program. The approach is based on partial abstract syntax tree matching, and can track simple changes to global variables, types and functions. These changes can characterize aspects of software evolution useful for answering higher level questions. In particular, we consider how they could be used to inform the design of a dynamic software updating system. We report results based on measurements of various versions of popular open source programs. including BIND, OpenSSH, Apache, Vsftpd and the Linux kernel.