论文部分内容阅读
基于语义的程序版本合并在异步协同编程中有着重要的应用前景,可以自动地合并多人异地协同编程工作,为最终的修改提供基础,有力地支持了异步协同活动,提高人们的工作效率。在异步协同编程环境下,协作者经常创建多个版本,每个版本都是对原来版本的修订或补充,如何合并多个版本为一个共同的版本是一个重要的研究课题。 本文首先介绍了CSCW异步协同编程技术、程序的初始化及标签生成技术,这是程序差别分析技术的基础。 然后讨论了现有的差别分析和版本合并技术,在合并多个版本为一个版本的过程中,首要技术是对版本进行差别分析。因此我们着重分析了基于语义的差别分析机制:程序依赖图的创建、序列一致性的划分、查找影响顶点技术等。我们通过采用语句变形策略、快速寻找程序影响点等算法可提高序列划分一致的结果,并提出了一个新的融合差别合并算法ADI(Accommodated Difference Integration),它是通过对程序同时使用前向分片和后向分片进行差别分析,以避免假冲突的发生,有效地解决了合并算法中程序实际不冲突但会报告冲突的问题。 最后,在基于协同编程的版本合并研究的基础上,开发设计了一个基于语义的版本合并系统,从系统实现的角度验证了这些策略和算法的正确性。