软件系统在各行各业中发挥着不可忽视的作用,承载着大规模、高密度的数据,但软件系统中存在的种种缺陷一直以来困扰着系统的开发者,时刻威胁着系统数据要素的安全.自动代码修复(automated program repair,APR)技术旨在帮助开发者在软件...软件系统在各行各业中发挥着不可忽视的作用,承载着大规模、高密度的数据,但软件系统中存在的种种缺陷一直以来困扰着系统的开发者,时刻威胁着系统数据要素的安全.自动代码修复(automated program repair,APR)技术旨在帮助开发者在软件系统的开发过程中自动地修复代码中存在的缺陷,节约软件系统开发和维护成本,提高软件系统中数据要素的保密性、可用性和完整性.随着大语言模型(large language model,LLM)技术的发展,涌现出许多能力强大的代码大语言模型,并且代码LLM在APR领域的应用中表现出了强大的修复能力,弥补了传统方案对于代码理解能力、补丁生成能力方面的不足,进一步提高了代码修复工具的水平.全面调研分析了近年APR相关的高水平论文,总结了APR领域的最新发展,系统归纳了完形填空模式和神经机器翻译模式2类基于LLM的APR技术,并从模型类型、模型规模、修复的缺陷类型、修复的编程语言和修复方案优缺点等角度进行全方位的对比与研讨.同时,对APR数据集和评价APR修复能力的指标进行了梳理和分析,并且对现有的实证研究展开深入探讨.最后,分析了当前APR领域存在的挑战及未来的研究方向.展开更多
针对"风"(KAZE)/加速"风"(Accelerated KAZE)算法鲁棒性差、速度慢等问题,提出三元组描述符(Learned Arrangements of Three Patch Codes)与KAZE/AKAZE算法结合的方法,称作KAZE/AKAZE-LATCH算法。利用AOS算法或者FE...针对"风"(KAZE)/加速"风"(Accelerated KAZE)算法鲁棒性差、速度慢等问题,提出三元组描述符(Learned Arrangements of Three Patch Codes)与KAZE/AKAZE算法结合的方法,称作KAZE/AKAZE-LATCH算法。利用AOS算法或者FED算法解非线性方程搭建金字塔;利用海森矩阵在非线性金字塔上寻找特征点;以特征点为圆心按照尺度大小选择相应的采样窗口以建立描述符;利用三元组算法建立二进制描述符。将该算法与KAZE算法和AKAZE算法在公开数据集上对具有模糊变换、光照变换、视角变换和JPEG变换的图像进行匹配时间和匹配正确率的对比实验。经实验表明:该算法的匹配正确率得到巨大提升,匹配速度增加。与现有算法相比,该算法的鲁棒性和实时性更好,可用于对匹配速度和精度要求较高的场景。展开更多
文摘软件系统在各行各业中发挥着不可忽视的作用,承载着大规模、高密度的数据,但软件系统中存在的种种缺陷一直以来困扰着系统的开发者,时刻威胁着系统数据要素的安全.自动代码修复(automated program repair,APR)技术旨在帮助开发者在软件系统的开发过程中自动地修复代码中存在的缺陷,节约软件系统开发和维护成本,提高软件系统中数据要素的保密性、可用性和完整性.随着大语言模型(large language model,LLM)技术的发展,涌现出许多能力强大的代码大语言模型,并且代码LLM在APR领域的应用中表现出了强大的修复能力,弥补了传统方案对于代码理解能力、补丁生成能力方面的不足,进一步提高了代码修复工具的水平.全面调研分析了近年APR相关的高水平论文,总结了APR领域的最新发展,系统归纳了完形填空模式和神经机器翻译模式2类基于LLM的APR技术,并从模型类型、模型规模、修复的缺陷类型、修复的编程语言和修复方案优缺点等角度进行全方位的对比与研讨.同时,对APR数据集和评价APR修复能力的指标进行了梳理和分析,并且对现有的实证研究展开深入探讨.最后,分析了当前APR领域存在的挑战及未来的研究方向.
文摘针对"风"(KAZE)/加速"风"(Accelerated KAZE)算法鲁棒性差、速度慢等问题,提出三元组描述符(Learned Arrangements of Three Patch Codes)与KAZE/AKAZE算法结合的方法,称作KAZE/AKAZE-LATCH算法。利用AOS算法或者FED算法解非线性方程搭建金字塔;利用海森矩阵在非线性金字塔上寻找特征点;以特征点为圆心按照尺度大小选择相应的采样窗口以建立描述符;利用三元组算法建立二进制描述符。将该算法与KAZE算法和AKAZE算法在公开数据集上对具有模糊变换、光照变换、视角变换和JPEG变换的图像进行匹配时间和匹配正确率的对比实验。经实验表明:该算法的匹配正确率得到巨大提升,匹配速度增加。与现有算法相比,该算法的鲁棒性和实时性更好,可用于对匹配速度和精度要求较高的场景。