国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:王熙灶,沈天琪,宾向荣,卜磊
单位:王熙灶,计算机软件新技术全国重点实验室(南京大学), 江苏 南京 210023;南京大学 计算机学院, 江苏 南京 21002311,沈天琪,计算机软件新技术全国重点实验室(南京大学), 江苏 南京 210023;南京大学 计算机学院, 江苏 南京 21002302,宾向荣,计算机软件新技术全国重点实验室(南京大学), 江苏 南京 210023;南京大学 计算机学院, 江苏 南京 21002303,卜磊,计算机软件新技术全国重点实验室(南京大学), 江苏 南京 210023;南京大学 软件学院, 江苏 南京 21002304
关键词:Datalog;代码翻译;大语言模型;程序分析;增量分析框架
基金:国家自然科学基金(62232008, 62172200); 江苏省前沿引领技术基础研究专项(BK20202001)
Datalog是一种声明式逻辑编程语言, 在不同领域得到了广泛应用. 近年来, 学术界和工业界对Datalog的兴趣高涨, 设计并开发了多种Datalog引擎和相应方言. 然而, 多方言带来的一个问题是以一种Datalog方言实现的代码, 一般而言不能在另一种方言的引擎上执行. 因此, 当采用新Datalog引擎时, 需要将现有Datalog代码翻译到新方言上. 目前的Datalog代码翻译技术可分为人工重写代码和人工设计翻译规则两类, 存在耗时长、大量重复劳动、缺乏灵活性和可拓展性等问题. 提出了一种大语言模型(LLM)赋能的Datalog代码翻译技术, 利用LLM强大的代码理解和生成能力, 通过分治翻译策略、基于少样本提示和思维链提示的提示工程、基于检查-反馈-修复的迭代纠错机制, 可以在不同Datalog方言之间实现高精度代码翻译, 减轻开发人员重复开发翻译规则的工作量. 基于此代码翻译技术, 设计并实现了一种通用的基于Datalog的声明式增量程序分析框架. 在不同Datalog方言对上评估了所提出的LLM赋能的Datalog代码翻译技术的性能, 评估结果验证了所提代码翻译技术的有效性. 对通用声明式增量程序分析框架进行了实验评估, 验证了基于所提代码翻译技术的增量程序分析的加速效果.
来源:2025年第6期
《软件学报》期刊编辑部