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.
Conference DaySat 11 JulDisplayed time zone: (UTC) Coordinated Universal Time change
01:05 - 02:05
|SLACC: Simion-based Language Agnostic Code ClonesTechnical|
George MathewNorth Carolina State University, Chris ParninNorth Carolina State University, Kathryn StoleeNorth Carolina State UniversityPre-print
|Near-Duplicate Detection in Web App Model InferenceTechnical|
Rahulkrishna YandrapallyUniversity of British Columbia, Canada, Andrea StoccoUniversità della Svizzera italiana, Ali MesbahUniversity of British ColumbiaPre-print
Software Engineering in Practice
Qun XiaTencent Inc., Zhongzhu Zhou, Zhihao LiTencent Inc., Bin XuTencent Inc., Wei ZouTencent Inc., Zishun ChenTencent Inc., Huafeng MaTencent Inc., Gangqiang LiangTencent Inc., Haochuan LuFudan University, Shiyu GuoTencent Inc., Ting XiongTencent Inc., Yuetang DengTencent, Inc., Tao XiePeking University
|Unblind Your Apps: Predicting Natural-Language Labels for Mobile GUI Components by Deep LearningTechnical|
Jieshan ChenAustralian National University, Chunyang ChenMonash University, Zhenchang XingAustralia National University, Xiwei XuData 61, Liming ZhuCSIRO's Data61 and UNSW, Guoqiang LiShanghai Jiao Tong University, Jinshui WangSchool 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|