【Software Clone】2014-IEEE-Towards a Big Data Curated Benchmark of Inter-Project Code Clones
Abstract
大数据的克隆检测和搜索算法已经作为嵌入在应用中的一部分.
本文推出一个代码检测基准.包含一些已知的真假克隆代码.其中包括600万条真克隆(包含type-1,type-2,type-3,type-4).
S1 Introduction
IJaDataset 2.0包含25,000个系统,365MLOC(Million Lines of Code).通过人工标记找出实现相似功能的代码,10个功能,包含6百万真克隆对,26万假克隆对.其他的基准都不存在对语义克隆的检测.
S2 background
代码段:包含一个三元组(l,s,e):l表示源文件,s表示开始的行号,e表示结束的行号.
克隆对:(f1, f2, φ),f1和f2表示相似片段,φ表示相似度;
克隆类:(f1, f2, ..., fn, φ),相似代码片段的集合.
参考之前4中类型的代码克隆:
Type-1: Syntactically identical code snippets, except fordifferences in white space, layout and comments.
Type-2: Syntactically identical code snippets, except for differences in identifier names, literal values, white space,layout and comments.
Type-3: Syntactically similar code snippets that differ at the statement level. Snippets have statements added, modified and/or removed with respect to each other.
Type-4: Syntactically dissimilar code snippets that implement the same functionality.
S3 建立基准的方法
确定一个常用的代码功能,然后寻找可能是克隆的代码(候选代码).通过人工标记这些代码的真假.
A.片段标记
B.真克隆对
C.假克隆对
S4 总结
S5 评估克隆检测工具
:基准中的所有的真克隆对集合
:检测工具检测到的克隆对
召回率
精确度
S6 数据集的应用
S6 效度威胁
S7 总结
数据集既考虑的语义,也考虑了语法相似.
总:本文主要是讲IJaDataset 2.0这个数据集的介绍.下载地址.下载下来之后,解压可以看到
sample:
这个sql文件有3.72G
创建postgresql数据库,然后直接执行sql语句就可以了.
【Software Clone】2014-IEEE-Towards a Big Data Curated Benchmark of Inter-Project Code Clones的更多相关文章
- 【Software Test】Introduction to Software Testing
Introduction to Software Testing 文章目录 Going to Learn --. Evolution of The Software Industry Errors, ...
- 【Software Test】Basic Of ST
文章目录 Learning Objective Introduction Software Applications Before Software Testing What is testing? ...
- 【编程练习】最近准备开始找工作,这篇文章作为一个code练手题目的总结吧
找工作时候一般需要准备的算法题目类型,其实参考leetcode和poj或者剑指offer基本能够摆平大部分的题目了 1.图的遍历,BFS.DFS: 2.递归的回溯剪枝: 3.树的建立和遍历: 4.状态 ...
- 【Deep Learning】Hinton. Reducing the Dimensionality of Data with Neural Networks Reading Note
2006年,机器学习泰斗.多伦多大学计算机系教授Geoffery Hinton在Science发表文章,提出基于深度信念网络(Deep Belief Networks, DBN)可使用非监督的逐层贪心 ...
- 60款开源云应用【Part 2】(60 Open Source Apps You Can Use in the Cloud)
60款开源云应用[Part 2](60 Open Source Apps You Can Use in the Cloud) 本篇翻译自http://www.datamation.com/open-s ...
- 【Oracle经典】132个oracle热门精品资料——下载目录
电子书为网友wglzaj精心整理,这批资料下载量好评率都非常高,广受oracle学习者欢迎.文档共整理了12个精品专题和120个热门资料的下载地址,推荐给大家希望大家喜欢. 目录0豆下载地址:http ...
- 【读书笔记】《Computer Organization and Design: The Hardware/Software Interface》(1)
笔记前言: <Computer Organization and Design: The Hardware/Software Interface>,中文译名,<计算机组成与设计:硬件 ...
- 【更新链接】U盘启动制作工具(UDTOOL) v3.0.2014.0427
[校验值] 文件: UDTOOLV3_Setup.exe大小: 525 MB版本: 3.0.2014.0427时间: 2014年4月27日MD5: 2E5187B7D9081E8A69B4DC45C8 ...
- 大学生程序猿IT情书“2014爱的告白挑战赛”获奖名单及优秀情书展示系列之 - 【IT术语】情书+【搞笑另类】情书
经过专家评委们的层层精心评选和认真讨论,恭喜下面同学终于入选CSDN高校俱乐部"大学生程序猿IT情书2014爱的告白挑战赛活动"优胜者名单.获奖者将在本周内收到邮件通知.请依照邮件 ...
随机推荐
- windows下安装mingw
windows环境下使用gcc MinGw是Minimal GNU on Windows的缩写,允许在GNU/linux和windows平台生成本地的windows程序而不需要第三方运行时库.本文主要 ...
- paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型
paip.java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http ...
- MYSQL操作数据表中的记录
36:操作数据表中的记录插入记录 INSERT INTO 表名 VALUES(); 或者INSERT 表名 VALUES(); UPDATE更新记录(单表更新) DELETE删除记录( ...
- Leetcode 189 Rotate Array stl
题意:将数组旋转k次,如将数组[1,2,3,4,5]旋转1次得到[2,3,4,5,1],将数组[1,2,3,4,5]旋转2次得到[3,4,5,1,2]..... 本质是将数组分成两部分a1,a2,.. ...
- Android Error Message
JAVA_HOME error. Add environment variable ANDROID_STUDIO, which is the same as %JAVA_HOME%, but one ...
- Hibernate入门6.Hibernate检索方式
Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ...
- LPC4370 ACDHS speed and DMA
LPC4370 ACDHS speed AHB clock BASE_M4_CLK CLK_M4_ADCHS up to 204 MHz. For register interface. ADCHS ...
- Delphi 2 Unleashed (一) 介绍
原书作者是作者是 Charles Calvert,国内翻译为<Delphi 2 程序设计大全>,由横空翻译组翻译,机械工业出版社1997年12月出版,看网上评论和介绍,该书是系统学习 De ...
- vi命令示例大全
1. 进入vi l vi filename: 打开或新建文件,并将光标置于第一行首 l vi +n filename:打开文件,并将光标置于第n行首 l vi + filename:打开文件 ...
- Python从内存中使用编译后的模块
在Windows编程的时候,有些时候,我们经常会要使用一些非常规的方法,比如说从内存中加载DLL,然后使用DLL中的函数.于是就思索在用Python的时候是否能够将几个编译好的Pyc合并成一个,然后使 ...