ASE 2023
Mon 11 - Fri 15 September 2023 Kirchberg, Luxembourg
Wed 13 Sep 2023 13:42 - 13:54 at Room E - Code Change Analysis Chair(s): Vladimir Kovalenko

The source code of successful projects is evolving all the time, resulting in hundreds of thousands of code changes stored in source code repositories. This wealth of data can be useful, e.g., to find changes similar to a planned code change or examples of recurring code improvements. This paper presents DiffSearch, a search engine that, given a query that describes a code change, returns a set of changes that match the query. The approach is enabled by three key contributions. First, we present a query language that extends the underlying programming language with wildcards and placeholders, providing an intuitive way of formulating queries that is easy to adapt to different programming languages. Second, to ensure scalability, the approach indexes code changes in a one-time preprocessing step, mapping them into a feature space, and then performs an efficient search in the feature space for each query. Third, to guarantee precision, i.e., that any returned code change indeed matches the given query, we present a tree-based matching algorithm that checks whether a query can be expanded to a concrete code change. We present implementations for Java, JavaScript, and Python, and show that the approach responds within seconds to queries across one million code changes, has a recall of 80.7% for Java, 89.6% for Python, and 90.4% for JavaScript, enables users to find relevant code changes more effectively than a regular expression-based search and GitHub’s search feature, and is helpful for gathering a large-scale dataset of real-world bug fixes.

The implementation and a web interface of DiffSearch are publicly available: http://diffsearch.software-lab.org

Slides (DiffSearchSlides.pdf)2.30MiB

Wed 13 Sep

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

13:30 - 15:00
Code Change AnalysisResearch Papers / Journal-first Papers at Room E
Chair(s): Vladimir Kovalenko JetBrains Research
13:30
12m
Talk
Code Difference Guided Adversarial Example Generation for Deep Code Models
Research Papers
Zhao Tian Tianjin University, Junjie Chen Tianjin University, Zhi Jin Peking University
Pre-print File Attached
13:42
12m
Talk
DiffSearch: A Scalable and Precise Search Engine for Code Changes
Journal-first Papers
Luca Di Grazia University of Stuttgart, Paul Bredl University of Stuttgart, Michael Pradel University of Stuttgart
Link to publication DOI Pre-print File Attached
13:54
12m
Talk
ZC3 Zero-Shot Cross-Language Code Clone Detection
Research Papers
Jia Li , Chongyang Tao Peking University, Zhi Jin Peking University, Fang Liu Beihang University, Jia Li Peking University, Ge Li Peking University
Pre-print File Attached
14:06
12m
Talk
Persisting and Reusing Results of Static Program Analyses on a Large Scale
Research Papers
Johannes Düsing TU Dortmund University, Ben Hermann TU Dortmund, Ben Hermann TU Dortmund
Pre-print
14:18
12m
Talk
Optimizing Continuous Development By Detecting and Preventing Unnecessary Content Generation
Research Papers
Talank Baral George Mason University, Shanto Rahman The University of Texas at Austin, Bala Naren Chanumolu George Mason University, Basak Balci Ozyegin University, Tuna Tuncer Ozyegin University, August Shi The University of Texas at Austin, Wing Lam George Mason University
Pre-print Media Attached
14:30
12m
Talk
iASTMapper: An Iterative Similarity-Based Abstract Syntax Tree Mapping AlgorithmRecorded talk
Research Papers
Neng Zhang School of Software Engineering, Sun Yat-sen University, ChenQinde School of Software Engineering, Sun Yat-sen University, Zibin Zheng Sun Yat-sen University, Ying Zou Queen's University, Kingston, Ontario
Pre-print Media Attached