检索规则说明:AND代表“并且”;OR代表“或者”;NOT代表“不包含”;(注意必须大写,运算符两边需空一格)
检 索 范 例 :范例一: (K=图书馆学 OR K=情报学) AND A=范并思 范例二:J=计算机应用与软件 AND (U=C++ OR U=Basic) NOT M=Visual
作 者:许福[1] 杨湛宇 陈志泊[1] 孙钰[1] 张海燕[1] XU Fu;YANG Zhanyu;CHEN Zhibo;SUN Yu;ZHANG Haiyan(School of Information Science and Technology,Beijing Forestry University,Beijing 100083,China)
机构地区:[1]北京林业大学信息学院
出 处:《清华大学学报(自然科学版)》2018年第7期630-638,共9页Journal of Tsinghua University(Science and Technology)
基 金:国家自然科学基金资助项目(61772078);北京市科委重大科技专项(D171100001817003)
摘 要:代码溯源是开源软件复用中的常见实践,溯源过程依赖于高效的程序分析方法支撑。现有的程序分析方法主要识别完整的语法结构,分析时间依赖于整体代码规模,缺乏增量分析能力,难以满足大规模开源代码仓库的高效分析需求。针对开源代码仓库中相邻快照间高度相似的特点,该文提出了一种有效的增量分析方法,仅对快照中变更的代码进行分析,从而有效减少分析规模。首先解析文件快照获得历次代码的修改内容,其次设计映射算法将上述修改内容映射成完整的、可分析的函数,最后将上述函数转化为指纹进行函数比对。与传统分析方法相比,该文方法有效减少了开源代码仓库的分析规模,加快了函数比对速度,能更好地支撑代码溯源等开源软件复用需求。Code traceability is a common practice for reusing open source software which relies heavily on efficient code analysis methods.Existing methods mainly identify complete grammatical structures with the analysis time depending on the total code size,so they lack the ability to do incremental analyses and cannot be used to analyze large open source code repositories.An incremental analysis method was developed here to analyze only the changed parts in code repositories based on the similarity between adjacent snapshots to effectively reduce the analysis scale. The method first parses snapshots to retrieve the modified content between snapshots and then maps these modifications into complete,analyzable functions.These functions are then converted to fingerprints for comparisons.This method significantly reduces the scale of the open source code repositories compared with traditional analysis methods to speed up function comparisons for better traces of the origin of open source codes.
分 类 号:TP301[自动化与计算机技术—计算机系统结构]
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在链接到云南高校图书馆文献保障联盟下载...
云南高校图书馆联盟文献共享服务平台 版权所有©
您的IP:216.73.216.117