Pyreview:一个基于抽象语法树差异提取的Python源代码分析工具

来源 :南京大学 | 被引量 : 0次 | 上传用户:a137167443
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在软件开发维护过程中,代码差异分析是一个非常重要的内容。通过代码差异分析,开发者可以更好地理解版本间代码的变更,追踪软件的演化,也可以检测克隆代码块,进而做好软件的维护和后续的开发工作。Python语言作为使用最为广泛的动态语言之一,针对它的这方面的工作却极为匮乏。为此,本文设计实现了Pyreview,一个基于抽象语法树差异提取的Python源代码分析工具。本文的主要工作包括:·提出了改进的字符串距离计算和语法树结点列表匹配方法,提高了已有的基于抽象语法树差异提取的代码变更分析方法的性能。对GIT仓库中的9个Python项目的实验分析表明,Pyreview的差异代码分析结果的准确率和召回率都在98%以上。相比已有的算法,Pyreview平均可以缩短20%的运行时间。·通过对Python语言中语法规则的分析,分类总结了Python的代码变更类型,并提出了相应的自动分类方法。Pyreview中的代码变更类型分析模块可以有效应对Python语言中特殊的语法糖和动态特性的使用。·提出了一种针对gapped clone code的检测方法,该方法在一定程度上对克隆代码块中语句的插入和删除操作免疫。Pyreview作为一个Python源代码分析工具,可以应用在代码比较、代码变更模式提取、软件演化分析、克隆代码块检测等领域,为相关的研究工作提供一种技术实现和数据获取方式。
其他文献
中央电视台举办的春节联欢晚会是中国电视文艺的一枝奇葩,其持续数十年的举办,辐射出巨大的影响力和广泛的经济、文化效应。但由于春晚定位的模糊性,近年来开始引发诸多争议
目的:研究附子炮制前后有效部位的强心作用。方法:采取离体蛙心灌流的方法检验附子炮制前后有效部位强心作用,并初步考察有效部位的量效关系;采用股静脉注射戊巴比妥钠对大鼠
中药不良反应是当今人们关注的热点问题之一,国外应对方法是颁布与之相关的中药的禁令,国内对如何正确应对中药不良反应没有制定一种切实可行的措施。因此,本研究在回顾性研
目的促进国内植物药与西药药动学相互作用研究,为中药现代化和临床合理用药服务。方法通过检索近3年文献,总结研究方法、相互作用机制和特点。结果研究方法主要包括整体动物
目的 :测定天麻健脑酒中天麻素的含量。方法 :采用高效液相色谱法 (HPLC)以ODSC18为色谱柱 (2 5 0mm× 4.6mm,5 μm)甲醇 磷酸盐缓冲液 (0 .1mol·L-1磷酸二氢钾溶液和 0 .1m
一、商品房买卖合同更名的本质商品房买卖合同更名,即将原商品房买卖合同中买受人更换成另外的人,不改变房地产座落、质量、价款等原合同的具体条款,它实质上是合同权利义务的转
高校思想政治理论课作为思想政治教育的主阵地,把社会主义核心价值观教育融入课程是思政课教师必须完成的任务。面对新媒体平台不良信息、社会舆论负能量传播、社会行为负面
道教是以"得道成仙"为基本信仰的中国传统宗教,其奉为最高宗旨的"道"至今都是越南文化中最具有象征性和影响力的符号之一。从时间上看,道教在创立之初就传入越南,从民间传播
老师一定要成为学生的"师傅"。除了精湛的学识,还需要严格的纪律约束,形成一套有效的教学技能。同时更要懂得了解学生心里所想,去关心他们、去爱他们。
目的:探讨元胡止痛胶囊的镇痛作用及机制。方法:采用大鼠三叉神经性头痛模型、硝酸甘油致大鼠实验性偏头痛模型、小鼠热板法试验、大鼠福尔马林法观察药物对疼痛反应的影响;