Successful cross-language clone detection could enable researchers and developers to create robust language migration tools, facilitate learning additional programming languages once one is mastered, and promote reuse of code snippets over a broader code base. However, identifying cross-language clones presents special challenges to the clone detection problem. A lack of common underlying representation between arbitrary languages means detecting clones requires one of the following solutions: 1) a static analysis framework replicated across each targeted language with annotations matching language features across all languages, or 2) a dynamic analysis framework that detects clones based on runtime behavior.
In this work, we demonstrate the feasibility of the latter solution, a dynamic analysis approach for cross-language clone detection. As an added challenge, we target a static typed language, Java, and a dynamic typed language, Python. As is done in prior clone detection work, we use input/output behavior to match clones, though we overcome limitations of prior work by amplifying the number of inputs and covering more data types; and as a result, achieve better clusters than prior attempts. Compared to HitoshiIO, a recent clone detection tool, SLACC retrieves 6x as many clusters and has higher precision (86.7% vs. 30.7%).
This is the first work to perform clone detection for dynamic typed languages (precision = 87.3%) and the first to perform clone detection across languages that lack a common underlying representation (precision = 94.1%). It provides a first step towards the larger goal of extensible and scalable language migration tools.
Sat 11 JulDisplayed time zone: (UTC) Coordinated Universal Time change
01:05 - 02:05
|SLACC: Simion-based Language Agnostic Code ClonesTechnical|
George Mathew North Carolina State University, Chris Parnin North Carolina State University, Kathryn Stolee North Carolina State UniversityPre-print
|Near-Duplicate Detection in Web App Model InferenceTechnical|
Rahulkrishna Yandrapally University of British Columbia, Canada, Andrea Stocco Università della Svizzera italiana, Ali Mesbah University of British ColumbiaPre-print
Software Engineering in Practice
Qun Xia Tencent Inc., Zhongzhu Zhou , Zhihao Li Tencent Inc., Bin Xu Tencent Inc., Wei Zou Tencent Inc., Zishun Chen Tencent Inc., Huafeng Ma Tencent Inc., Gangqiang Liang Tencent Inc., Haochuan Lu Fudan University, Shiyu Guo Tencent Inc., Ting Xiong Tencent Inc., Yuetang Deng Tencent, Inc., Tao Xie Peking University
|Unblind Your Apps: Predicting Natural-Language Labels for Mobile GUI Components by Deep LearningTechnical|
Jieshan Chen Australian National University, Chunyang Chen Monash University, Zhenchang Xing Australia National University, Xiwei Xu Data 61, Liming Zhu CSIRO's Data61 and UNSW, Guoqiang Li Shanghai Jiao Tong University, Jinshui Wang School of Information Science and Engineering, Fujian University of Technology, Fuzhou, China
|DroidMutator: An Effective Mutation Analysis Tool for Android ApplicationsDemo|
|BigTest: Symbolic Execution Based Systematic Test Generation Tool for Apache SparkDemo|