Keynote Speaker 1
Department of Computer Science, University College London (UCL)
Keynote Title: What is a Software Clone?
Software Clones have been a focus of research for decades and we believe that we possess a comprehensive understanding of what constitutes a software clone and how source code can be similar. However, are we actually using the right or the most fitting definitions? And what if we are not? What if our understanding is limited? Based on our work on code similarity, this talk will illuminate these concerns and try to answer the questions by looking at nearly half a century of research. Throughout this journey, we unearth challenges to our conventional understanding what software clones are and we will point out how the comprehension has changed. Much of our understanding is encapsulated by Ira Baxter’s famous definition of a clone: “Clones are segments of code that are similar according to some definition of similarity.” This definition has shaped research on software clones, but has it served us well? Typically, software clones are categorised into four distinct types, based on their textual and functional similarity. However, because there is no formal definition, different authors have used variations of the four types. The variation is particularly large for type 4 clones, sometimes also called semantic clones, where the units of code are similar in their functionality. The identification of similar functionality has recently received heightened attention, emerging as an ongoing challenge. The most promising advances are based on learning code similarities from large benchmarks, but recent work has shown that existing benchmarks may not be suitable for the task. The presentation will end with an outlook on how the benchmark problem can be overcome in the future.
Keynote Speaker 2
Department of Software Engineering, Nanzan University
Keynote Title: Making Code Clone Detection More Handy and Instantaneous
Numerous code clone detection tools have been proposed and are actually used in research and practice. However, many of these tools require complex installation and environment settings for their proper use. This talk will present two topics from our recent research results, aiming for handy and instantaneous clone detection. 'ccgrep' is a grep-like, token-based pattern-matching tool, and it performs pattern matching between the query and the target text to identify type 1 or type 2 clone pairs. 'CCX' is a web server system that offers clone detection services using several different clone detectors and their parameters. It can compare detection results and display a graphical representation of the differences.