软件工程领域顶级会议ICSE’22近日公布论文录用名单,程序设计语言研究室三篇论文被该会议录用

软件工程领域顶级会议ICSE’22近日公布论文录用名单,程序设计语言研究室三篇论文《Fault Localization via Efficient Probabilistic Modeling of Program Semantics》,《Improving Machine Translation Systems via Isotopic Replacement》,《Towards Bidirectional Live Programming for Incomplete Programs》被该会议录用。


错误定位是软件工程领域内的重要问题,其关键之处在于如何对程序语义进行建模。现有方法要么考虑完整的程序语义,从而导致效率问题;要么忽略程序语义,导致定位结果不精确。本研究室论文《Fault Localization via Efficient Probabilistic Modeling of Program Semantics》提出了基于对程序语义进行高效概率建模的错误定位技术SmartFL。SmartFL将程序状态抽象成表示语句和变量正确性的随机变量,并将通过结合静态分析和动态分析得到的程序语义信息转化为概率约束,在效果和效率之间达到了很好的平衡。实验表明,SmartFL在真实数据集Defects4J上达到了21%的top-1语句级准确率,大幅超越了其他最前沿的方法。在耗时上,SmartFL平均对每个错误需要210秒,而使用完整的程序语义的传统方法通常需要消耗十倍以上的时间。

熊英飞副教授是该论文的通讯作者,研究室硕士毕业生曾沐焓(现在华为公司)和博士生吴宜谦是共同第一作者,其他作者还包括研究室博士生叶振涛,张昕助理教授和北京大学张路教授。


机器翻译在人们日常的国际交流中起着至关重要的作用。然而,机器翻译系统远非完美。为了解决这个问题,研究人员提出了多种测试机器翻译的方法。现有的方法的趋势是使用单词替换的方法对一个句子中的一个单词进行替换进而形成新的句子作为测试输入。然而,如何精确控制单词替换对句子含义所造成的影响仍然是这些方法中的一个突出问题。本研究室论文《Improving Machine Translation Systems via Isotopic Replacement》提出了一种新颖的基于单词替换的机器翻译测试方法 CAT,其基本思想是识别并使用不造成句子含义影响的单词替换(称为同位替换)。为了达到这个目的,我们使用基于神经网络的语言模型对句子上下文进行编码,并设计了一种基于神经网络的算法来评估两个单词之间的一种感知上下文的语义相似度。此外,与最先进的基于单词替换的方法 TransRepair 类似,CAT 在检测机器翻译系统问题的同时可以对已发现问题进行自动修复,而无需重新训练模型。我们对 Google Translate 和 Transformer 的实验结果表明 CAT 相比于 TransRepair 取得了显着的改进。特别的是,1) CAT 可以检测到的问题类型比 TransRepair 多七种;2) CAT 检测到的翻译问题比 TransRepair 多 129%;3) CAT 修复的翻译问题是 TransRepair 的两倍,其中很多问题如果不修复可能带来严重后果;4) CAT 在输入生成方面比 TransRepair 有更好的生成效率(0.01s vs. 0.41s),在问题修复方面有着与 TransRepair 相当的修复效率(1.92s vs. 1.34s)。

博士生孙泽宇是论文的第一作者,其他作者还包括北京大学的张路教授,熊英飞副教授,团队博士毕业生、UCL学者张洁,Facebook的Mark Harman院士,卢森堡大学的高级研究员Mike Papadakis


双向实时编程不仅可以让软件开发者在编写程序时看到输出的持续反馈,还可以让他们通过直接操纵输出来修改程序,使修改后的程序得到直接操纵的输出。尽管现有的双向实时编程系统具有吸引力,但存在一个很大的局限性:它们无法处理源程序中存在代码空白的不完整程序。本实验室论文《Towards Bidirectional Live Programming for Incomplete Programs》提出了一个框架来支持不完整程序的双向实时编程,通过扩展输出值结构、引入代码空白的绑定和正式定义行为良好的双向计算。为了说明该框架的有用性,一个名为Bidirectional Preview的工具中实现了对不完整程序的核心双向计算。实验结果表明,对不完整程序扩展后计算与对完整程序的计算一样有效。此外,我们使用快速排序和统计学生成绩这两个不完整程序的示例来证明其在算法教学和程序调试中的有用性。 

该论文的作者为:程序分析语言研究室博士生张星、胡振江教授。


上一条:程序设计语言研究室一篇论文被ASE'22录用
下一条:熊英飞副教授获得CCF-IEEE CS青年科学家奖