源代码比较设备、源代码比较方法和源代码比较程序技术

技术编号:8532497 阅读:130 留言:0更新日期:2013-04-04 15:17
一种源代码比较设备包括差异提取部,提取修正前源代码与修正后源代码之间的差异;语法分析部,将提取的差异分割为与能够在源代码中使用的构成要素相对应的分割差异,并产生语法分析结果,所述语法分析结果将所述分割差异与对应于所述分割差异的构成要素相关联;特征分析部,针对语法分析结果中包括的每个分割差异来设置特征区分和输出部;以及输出部,输出将所述分割差异与针对所述分割差异设置的特征区分相关联的比较结果。如果语法分析结果中包括的构成要素被包括在将构成要素与特征区分相关联的修正历史中,则特征分析部针对与语法分析结果中的构成要素相关联的分割差异,设置与修正历史中的构成要素相关联的特征区分。

【技术实现步骤摘要】

本专利技术涉及一种源代码比较装置、源代码比较方法及源代码比较程序。
技术介绍
常规上,对于确认修正源代码内容的技术而言,例如使用如下方法使用UNIX 的 diff命令,以行为单位比较修正前后的文本源代码,并显示源代码之间的差异。然而,仅利 用这种文本差异,用户自己还必须确定每个修正对应于哪个函数或特征。因此,如果存在与 多个特征相关的混合修正,则变得难以将修正位置与特征相关联。存在用于将修正位置与 特征相关联的技术,例如在下述专利文献I和2中公开的技术。专利文献I中公开的技术将未修正源代码与修正后源代码相比较来提取修正位 置,并通过使用源代码的语法分析结果来将修正位置与变量名或函数名相关联。专利文献2 中公开的技术预先按照等级构造源代码,以将源代码分为程序、模块、文件和函数中的各个 等级,并通过以程序、模块、文件和函数的相应等级单位将未修正源代码与修改后源代码相 比较来将修正位置与等级特征相关联。[专利文献I] JPO8-1M6IlA[专利文献2] JP2OO6-277I27A在高于变量名和函数名的较高等级中,与专利文献I 一样,仅将语法分析结果用 于与模块、文件等相关联是不充分的。此外,在专利文献2中,因为必需预先定义和预先登 记程序、模块等的等级结构,如果例如设计信息不可用,则可以设想在添加信息期间会遗漏 登记,从而难以进行管理。
技术实现思路
本专利技术被配置为解决上述问题,以及本专利技术的示例性目标在于,提供一种源代码 比较设备、源代码比较方法和源代码比较程序,能够正确而简单地将修正位置与特征相关联。根据本专利技术的一个方面,提供了一种源代码比较设备,包括差异提取部,提取修 正前源代码与修正后源代码之间的差异;语法分析部,将提取的差异分割为与能够在源代 码中使用的构成要素相对应的分割差异,并产生将所述分割差异与对应于所述分割差异的 构成要素相关联的语法分析结果;特征分析部,针对语法分析结果中包括的每个分割差异 设置特征区分;以及输出部,输出将所述分割差异与针对所述分割差异设置的特征区分相 关联的比较结果,其中,所述特征分析部被配置为如果语法分析结果中包括的构成要素被 包括在将构成要素与特征区分相关联的修正历史中,则针对与语法分析结果中的构成要素相关联的所述分割差异,设置与修正历史中的构成要素相关联的特征区分。根据本专利技术的另一方面,提供了一种源代码比较方法,包括差异提取步骤,提取 修正前源代码与修正后源代码之间的差异;语法分析步骤,将提取的差异分割为与能够在 源代码中使用的构成要素相对应的分割差异,并产生将所述分割差异与对应于所述分割差 异的构成要素相关联的语法分析结果;特征分析步骤,针对语法分析结果中包括的每个分 割差异设置特征区分;以及输出步骤,输出将所述分割差异与针对所述分割差异设置的特 征区分相关联的比较结果,其中,所述特征分析步骤被配置为如果语法分析结果中包括的 构成要素被包括在将构成要素与特征区分相关联的修正历史中,则针对与语法分析结果中 的构成要素相关联的所述分割差异,设置与修正历史中的构成要素相关联的特征区分。根据本专利技术的再一方面,提供了一种存储源代码比较程序的计算机可读介质,所 述源代码比较程序包括用于使计算机执行处理的指令,所述处理包括以下步骤差异提取 步骤,提取修正前源代码与修正后源代码之间的差异;语法分析步骤,将提取的差异分割为 与能够在源代码中使用的构成要素相对应的分割差异,并产生将所述分割差异与对应于所 述分割差异的构成要素相关联的语法分析结果;特征分析步骤,针对语法分析结果中包括 的每个分割差异设置特征区分;以及输出步骤,输出将所述分割差异与针对所述分割差异 设置的特征区分相关联的比较结果,其中,所述特征分析步骤被配置为如果语法分析结果 中包括的构成要素被包括在将构成要素与特征区分相关联的修正历史中,则针对与语法分 析结果中的构成要素相关联的所述分割差异,设置与修正历史中的构成要素相关联的特征 区分。根据本专利技术,能够正确而简单地将修正位置与特征相关联。附图说明图1是对根据本专利技术示例性实施例的源代码比较设备的配置进行举例说明的图2是对语法分析结果进行举例说明的图3是对分割后语法分析结果进行举例说明的图4是对修正历史表的数据配置进行举例说明的图5是对临时特征分析结果进行举例说明的图6是对特征分析结果进行举例说明的图7是对修正历史表的另一数据配置进行举例说明的图8是对比较结果进行举例说明的图9是对另一比较结果进行举例说明的图10是用于说明比较未修正与修正后源代码期间的操作的流程图11是对比较未修正与修正后源代码期间的数据转变的状态进行举例说明的 图12是示出了当根据修改的适当性检查部检查修正适当性的示例的模式图13是对按照每个特征区分计算得到的每个构成要素的修正率进行举例说明的 图14是以特征区分的构成要素为单位对过去修正率与当前修正状况之间的相应 关系进行举例说明的图15是示出了将修正历史写入源代码以保存修正历史的示例的模式图。具体实施方式以下,将参考附图说明根据本专利技术的源代码比较设备、源代码比较方法和源代码比较程序。首先,参考图1,说明示例性实施例中的源代码比较设备的功能配置。例如,源代码比较设备I功能上具有差异提取部11、语法分析部12、特征分析部13、修正历史登记部14 和比较结果输出部15。这里,源代码比较设备I物理上被配置为包括例如CPU (中央处理单元)、存储器和输入和输出接口。存储器包括如下元件例如ROM(只读存储器)和用于存储要由CPU处理的程序和数据的HDD (硬盘驱动器)、主要用作控制进程的各个工作区的RAM(随机存取存储器)等。这些元件彼此经由总线相连。CPU可以通过如下步骤实现源代码比较设备I中的每个部件的功能执行ROM中存储的程序,并处理经由输入和输出接口接收的源代码和消息、加载到RAM中的数据等。差异提取部11将未修正源代码与修正后源代码相比较,以提取差异。对于比较源代码的方法,能够使用普通(ordinary)文本比较处理。差异提取部11通过依次比较源代码的相应文本,来枚举(enumerate)未修正源代码与修正后源代码之间的差异。S卩,差异提取部11可以被描述为提取未修正源代码与修正后源代码之间的差异。语法分析部12根据由差异提取部11提取的差异来枚举修正对象的构成要素,并产生语法分析结果。构成要素是能够在源代码中使用的这些构成元素,例如相应变量、函数、结构体等。图2示出了语法分析结果的示例。图2的语法分析结果示出了作为源代码之间的差异,提取了 “差异1”、“差异2”和“差异3”,其中“差异I”中包括作为构成要素的 “函数1”,“差异2”中包括作为构成要素的“变量I”和“结构体1 ”,以及“差异3”中包括作为构成要素的“函数2”。如果存在包括多个构成要素的差异,则语法分析部12根据每个构成要素分割差异,并更新语法分析结果。这是由于考虑了如下事实在对源代码中邻近描述的多个构成要素进行修正的情况下,包括多个构成要素的差异被提取作为差异块(clump)。在这种情况下,根据每个构成要素分割差异,图3示出了分割之后的语法分析结果的示例。图3的语法分析结果示出了,因为图2的“差异2”包括多个构成要素(“变量I”和“结构体2”),“差异2”被分割为与构成要素本文档来自技高网...

【技术保护点】
一种源代码比较设备,包括:差异提取部,提取修正前源代码与修正后源代码之间的差异;语法分析部,将提取的差异分割为与能够在源代码中使用的构成要素相对应的分割差异,并产生语法分析结果,其中,所述语法分析结果将所述分割差异与对应于所述分割差异的构成要素相关联;特征分析部,针对语法分析结果中包括的每个分割差异设置特征区分;以及输出部,输出将所述分割差异与针对所述分割差异设置的特征区分相关联的比较结果,其中,所述特征分析部被配置为如果语法分析结果中包括的构成要素包括在将构成要素与特征区分相关联的修正历史中,则针对与语法分析结果中的构成要素相关联的所述分割差异,设置与修正历史中的构成要素相关联的特征区分。

【技术特征摘要】
2011.09.20 JP 2011-2049241.一种源代码比较设备,包括差异提取部,提取修正前源代码与修正后源代码之间的差异;语法分析部,将提取的差异分割为与能够在源代码中使用的构成要素相对应的分割差异,并产生语法分析结果,其中,所述语法分析结果将所述分割差异与对应于所述分割差异的构成要素相关联;特征分析部,针对语法分析结果中包括的每个分割差异设置特征区分;以及输出部,输出将所述分割差异与针对所述分割差异设置的特征区分相关联的比较结果,其中,所述特征分析部被配置为如果语法分析结果中包括的构成要素包括在将构成要素与特征区分相关联的修正历史中,则针对与语法分析结果中的构成要素相关联的所述分割差异,设置与修正历史中的构成要素相关联的特征区分。2.根据权利要求1所述的源代码比较设备,其中,所述特征分析部被配置为如果所述语法分析结果中包括的构成要素没有包括在所述修正历史中,则对于与所述语法分析结果中的构成要素相关联的分割差异,暂时将对所述修正历史中不包括构成要素加以指示的信息设置为特征区分,并促使用户输入用于暂时设置的特征区分的信息。3.根据权利要求2所述的源代码比较设备,其中,所述特征分析部被配置为当接受用户输入的用于暂时设置的特征区分的信息时,通过将所述暂时设置的特征区分改变为接受的信息,来设置针对所述分割差异的信息作为特征区分。4.根据权利要求1所述的源代码比较设备,还包括适当性检查部,其中,所述修正历史是将用于标识对源代码的修正的信息与构成要素和特征区分相关联的信息;以及所述适当性检查部基于修正历史,计算对源代码执行第一修正的次数相对于对源代码执行第二修正的次数之比,所述第一修正包括与关联于特征区分的特定构成要素相对应的部分的改变,所述第二修正包括与关联于所述特征区分的任意构成要素相对应的部分的改变;以及当针对语法分析结果中包括的至少一个分割差异设置了所述特征区分且所述比率等于或大于预定阈值时,如果提取的差异不包括与所述特定构成要素相对应的部分,则所述适当...

【专利技术属性】
技术研发人员:野村芳明
申请(专利权)人:日本电气株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1