新闻

122 条记录

我成功晋升为北京大学长聘教授。感谢一路走来帮助过我的同学、老师、同行!
Mining Tactics for Automated Theorem Proving被ASE 2026接收。这是我们新项目的第一篇论文,该项目用大模型的智能来提升符号证明工具的能力。我们相信,与大模型相比,符号方法更适合处理符号问题,但迄今为止投入的人类智能还不足以发现最合适的符号方法,因此我们利用大模型来继续开发。通过数据驱动的大模型策略生成,我们的方法仅用一个小型训练集就将CoqHammer提升了20%以上。
SemOpt: LLM-Driven Code Optimization via Rule-Based Analysis被TOSEM 2026接收。本文中,我们使用大语言模型从历史提交中挖掘优化策略,并将其形式化为semgrep规则,进而利用这些规则在大型软件项目中挖掘优化机会来引导大语言模型进行优化。我们成功优化了多个经过人类专家多年优化的热门软件项目,其中部分生成的补丁已被开发者采纳。
两篇论文被ICSE 2026接收。PredicateFix: Repairing Static Analysis Alerts with Bridging Predicates提出了一个修复静态分析警报的方法,该方法基于静态分析规则获取样例来辅助LLM进行修复。该方法已在中兴部署,并获得开发人员的积极反馈。HoarePrompt: Structural Reasoning About Program Correctness in Natural Language提出了一种可以面向自然语言规约分析程序的方法,该方法采用一个大模型作为引擎不断计算自然语言描述的最强后条件,成功结合大模型的自然语言推理能力和传统程序分析方法。
我们升级了我们的概率缺陷定位方法Fault Localization via Efficient Probabilistic Modeling of Program Semantics,升级版本包括一个新的通用概率推断算法和一系列增强可伸缩性的技术。SmartFL不需要训练,不管效果还是效率均超过了现有的不需要训练的技术(如SBFL和MBFL),在Defects4J的行级定位上达到了最好的效果。我们新录用的SmartFL: Semantics Based Probabilistic Fault Localization描述了SmartFL整体方法,而Belief Propagation with Local Structure and Its Applications in Program Analysis描述了我们新的概率推断算法。
Grammar-Based Code Representation: Is It a Worthy Pursuit for LLMs?被ACL录用为Finding论文。我们系统性的验证了我们基于文法的代码表示在大模型上是否仍然有效,结果表示虽然大模型很少犯语法错误,但文法表示仍然可以显著提升效果,因为文法表示和代码语义有更好的对应。
因在程序修复和合成领域的贡献,我被选为ACM杰出会员。
我被选为IFIP WG2.4, 软件实施技术工作组的成员。
我们发布了一个算法合成数据集ASAC。该数据集主要包括全国信息学奥赛的题目。同现有数据集相比,该数据集不仅难度更大,更重要的是对于每个问题我们都提供了形式化规约,使得我们可以采用逻辑方法来合成和验证解决方案。对应ASAC: A Benchmark for Algorithm Synthesis将会发表在下月的FSE'24工具演示分会。
Proving Functional Program Equivalence via Directed Lemma Synthesis被FM'24接收。该研究源于我们算法合成工具合成的程序太复杂,现有的求解器无法直接验证正确性。进一步研究发现,验证的关键是找到合适的引理来引导归纳证明,而查找引理的过程又是一个程序合成问题。于是我们的算法合成工具可以用来验证自己合成程序的正确性。实验表明验证速度比目前最好的验证工具CVC4-Ind快21倍。
Superfusion: Eliminating Intermediate Data Structures via Inductive Synthesis被PLDI'24接收。该论文将我们之前的Decomposition-Based Synthesis for Applying D&C-Like Algorithmic Paradigms方法泛化为超融合(Superfusion)方法。超融合通过自动消除中间数据结构来优化程序,是对函数式程序设计中常用的融合(fusion)技术的自动化。基于超融合方法实现的青方系统,不仅在分治类算法的合成上达到了AutoLifter的效果,并且在融合问题和结构递归程序合成问题上大幅超越了已有工作。
我们的The ET Program Repair Tool for Java在首届国际程序修复大赛参加人数最多的Java功能性缺陷赛道中获得第一名。ET由我们之前提出的两项方法构成:补丁验证方法Accelerating Patch Validation for Program Repair with Interception-Based Execution Scheduling和补丁生成方法Tare: Type-Aware Neural Program Repair。ET在没有生成任何错误补丁的情况下成功修复6个缺陷,超过了主办发直接调用ChatGPT的基线方法,也超过了其他所有参赛工具。
通过和深度求索公司(幻方AI的子公司)合作,我的博士生朱琪豪领导了目前最好的面向代码开源基座大模型——DeepSeek-Coder的开发。我们已有研究中的一些思路帮助了模型效果提升,比如组织相关信息来帮助模型学习程序设计语言中的规则。我们刚刚发布了一个DeepSeek-Coder: When the Large Language Model Meets Programming - The Rise of Code Intelligence来介绍训练的技术细节。朱琪豪将于今年6月毕业,期待各家单位赐工作机会。
Decomposition-Based Synthesis for Applying D&C-Like Algorithmic Paradigms被TOPLAS接收。这是我们算法合成项目正式发表的第二篇论文(第一篇是Synthesizing Efficient Memoization Algorithms),尽管实际完成得更早一些。这篇论文识别出分治、增量算法、线段树等多个算法类别都有相似的结构,并提出了一个统一的合成方法来自动合成这些算法。实验中求解出的问题是已有的通用算法的两倍,甚至比之前半自动分治合成方法更优。
两篇论文被ASE'23的研究和工具展示分会接收. ExpressAPR: Efficient Patch Validation for Java Automated Program Repair Systems是一篇工具展示论文,介绍了我们的补丁验证新工具。该工具集成了五种技术来减少编译和测试执行的开销,比直接编译测试验证快100倍,比目前最快的验证平台UniAPR快10倍。希望该工具能帮助未来的缺陷修复的研究和开发。 OrdinalFix: Fixing Compilation Errors via Shortest-Path CFL Reachability with Attribute Checking提出了一种新的CFL可达性算法来计算编译错误的最小修复。
Synthesizing Efficient Memoization Algorithms被OOPSLA'23接收。这是我们三年前启动的算法合成项目发表的第一篇论文,这也是我们现在的主力项目。给定一个形式化规约,算法合成试图应用算法领域提出的算法设计模式(如分治、动态规划等)来合成高效程序满足规约。这篇论文关注动态规划算法的合成。另外一篇分治和类似算法的合成工作已经完成, 可以在arxiv访问。
“数据驱动的软件测试与修复”获得电子学会自然科学一等奖。我是该项目的第一完成人。这是近三年软件领域唯一获得电子学会自然科学一等奖的项目。
两篇论文被ICSE23接收。 Tare: Type-Aware Neural Program Repair描述了一种引导神经网络学习类型规则的方法,基于该方法,我们构建了新的程序修复方法,显著超越了现有方法。Reliability Assurance for Deep Neural Network Architectures Against Numerical Defects是我们Detecting Numerical Bugs in Neural Network Architectures的后续工作,不仅改进了之前工作中对神经网络体系结构的缺陷查找效果,并且能生成测试验证缺陷并建议修复。
两篇论文被IJCAI 2022接收. Grape: Grammar Preserving Rule Embedding是一个关于语法规则的嵌入技术。类似Word2Vec用神经网络嵌入单词,我们的技术用神经网络嵌入语法规则的编号,可以用于其他依赖语法的下游深度学习应用中,比如程序生成。不同于Word2Vec,我们的技术将语法规则的定义考虑在内,嵌入规则的结构和内容信息。 Lyra: A Benchmark for Turducken-Style Code Generation提出了一个新的程序生成任务和数据集:同时生成包含两种不同程序设计语言代码的程序。
之前我在中国软件大会上做了算法合成报告以及在CCF ADL上做了程序合成讲座,这两个视频现在可以在CCF数字图书馆观看,链接详见特邀报告页面。
三篇论文被ICSE 2022和AAAI 2022接收。 Fault Localization via Efficient Probabilistic Modeling of Program Semantics是我们采用概率图模型来捕获程序语义来重新构建错误定位方法的首次尝试。Preferential Labeling for Unattributed Node Classification in GNNs关心当分类任务应该不依赖于变量的具体命名时(如SAT),如何在图神经网络中表示程序。Improving Machine Translation Systems via Isotopic Replacement是一个机器翻译的测试和修复方法。
L2S: a Framework for Synthesizing the Most Probable Program under a Specification被TOSEM接收。本文提出了玲珑框架。该框架采用概率指导程序合成,其思想是我们很多其他工作的基础。这项研究最早于2016年底以泛化和扩展Precise Condition Synthesis for Program Repair工作为目标启动。2018年我们把初步想法和实验结果发表为一篇Learning to Synthesize。最终,在经过了接近5年的工作之后,在我多个特邀报告和主题演讲介绍玲珑框架之后,在多篇基于玲珑框架思想的其他论文发表之后,我们终于发表了完整版玲珑框架论文。完整论文不算附录长达44页。
我获得了CCF-IEEE CS青年科学家奖。该奖每年颁发给不超过5名40岁以下的中国计算机科学家。感谢提名者和评奖委员会的认可!
Generalizable Synthesis Through Unification被OOPSLA'21接收. 在本文中,我们将机器学习领域的奥卡姆学习理论和程序合成结合起来,在合并学习框架的基础上构建了第一个奥卡姆程序合成求解器,从理论上保证了程序合成的可泛化性。
我获得了第二个ESEC/FSE杰出审稿人奖。感谢评选委员会的认可。
Interactive Patch Filtering as Debugging Aid被ICSME'21接收. 之前工作一直认为修复工具如果不能达到很高的正确率是没用的,这篇工作通过200轮人工调试的实验证明了,如果在程序员复查补丁的时候给予适当的交互式工具辅助,正确率低的修复工具也能帮助程序员,从而为未来修复研究的发展带来了全新空间,比如在无需担心正确率的情况下进一步提升召回率。该论文是我们Question Selection for Interactive Program Synthesis论文的后续工作。
我获得了NASAC青年软件创新奖和ESEC/FSE 2020的杰出审稿人称号。感谢同行的提名和评审委员会的认可。
I have received the early career award from NSFC. This is a Chinese version of the NSF career award in US, but is only given to researchers under the age of 38 and is very competitive. Among all researchers who mainly work in software engineering in China, only Dan Hao and He Jiang have received this award before.
Three papers were accepted at ASE'19. Inferring Program Transformations From Singular Examples via Big Code solves the small-sample learning problem for program transformation inference: with the help of big code, we infer a program transformation from only one example. This technique is useful in many domains such as program repair. History-Guided Configuration Diversification for Compiler Test-Program Generation is a follow-up work of our Learning to Prioritize Test Programs for Compiler Testing paper, using historical information to directly guide the generation of test programs. Combining Spectrum-Based Fault Localization and Statistical Debugging: An Empirical Study is the first empirical study that bridges two main families of fault localization: spectrum-based fault localization and statistical debugging.
Three forward-looking papers on program repair were accepted. Automated Program Repair: A Step towards Software Automation is an invited paper for discussing the future of program repair. A Manual Inspection Of Defects4j Bugs And Its Implications For Automatic Program Repair is an empirical study on possible strategies that could potentially be adopted by program repair techniques. How to Explain a Patch: An Empirical Study of Patch Explanations in Open Source Projects explores how a patch should be communicated to developers by studying how human performs the task.
I have been promoted to Associated Professor (with tenure). Thanks for all people who helped in this process.
Learning to Synthesize was accepted at GI'18. This paper proposes a framework for synthesizing a program that has a high probability in a given context.
Faster Mutation Analysis via Equivalence Modulo States was accepted at ISSTA'17. Many program analysis tasks require to execute many similar versions of a program, including but not limited to mutation testing, generate-and-validate program repair, mutation-based fault localization, and product line testing. Our approach accelerates these analyses by sharing the redundant executions.
We have discovered a mistake in the data presentation of our ICST paper "Empirical Evaluation of Test Coverage for Functional Programs". Unfortuately, it is already too late to update the camera-ready version, so please download the corrected version here. Compared with the published version, Figure 3 and Table II are updated, while all discussions and conclusions are the same.
Recently we started a new project on compiler testing. The An Empirical Comparison of Compiler Testing Techniques presents an empirical comparison of the mainstream compiler testing techniques, where we used a new method to measure test effectiveness to make the comparison possible. The Test Case Prioritization for Compilers: a Text-Vector Based Approach presents a low-cost test prioritization approach that has the potential of accelerating compiler testing, even for the non-regressional cases.
As a member of a big team on software-defined cloud management, I received the the First-Class Award on Scientific and Technological Progress, Ministry of Education, one of the most pretigeous award from Ministry fo Education, China.
Fixing Recurring Crash Bugs via Analyzing Q&A Sites was accepted at ASE'15. Within our knowledge, this is the first paper that leverages Internet resources to fix bugs. Our approach achieved high accuracy in producing correct patches, successfully avoiding the over-fitting problem in automatic bug repair.
Recently I started to work on problems in testing and debugging of general programs, and here are two new papers. The Boosting Bug-Report-Oriented Fault Localization with Segmentation and Stack-Trace Analysis is about the automatic association of bug reports to source files, reporting two new heuristics to improve the accuracy of existing techniques. The Search-Based Inference of Polynomial Metamorphic Relations reports the first approach to automatically inferring metamorphic relations from programs.
Our project proposal on improving the quality of safety-critical software system has been approved. This five year project is supported by the young scientist fund under the national basic research program, and I am the principal investigator. The young scientist fund under the national basic research program is one of the most competitive fund for young scientists in China. Every year only 1~3 projects are granted in the area of computer science. Our project is the first one in the area of software development.
I have joined Peking University faculty as an assistant professor under the "Young talents plan". This is a newly-designed position to match the tenure-track system used in North America.
Generating Range Fixes for Software Configuration was accepted at ICSE'12. This paper proposes a new type of fix, range fix, to handle the inconsistency fixing problem arised from A User Survey of Configuration Challenges in Linux and eCos. An automated algorithm for generating range fix is also given. In the sense of general inconsistency handling, range fixes introduce an interative fixing process to resolving inconsistencies, which is a complement of our existing work on Supporting Automatic Model Inconsistency Fixing.
I have finished my postdoc and left University of Waterloo. Now I temporarily work as an indepent researcher while waiting for a new job offer.
We have conducted an online survey about what challenges are faced by the users of modern configuration tools. The result was published here as a technical report.
I will serve as a PC member of BX 2012. Please consider submitting a papper.
I have moved from the University of Tokyo to University of Waterloo as a postdoc.
We have released a library for helping integrate the Haskell-based synchronizer into Java projects. Please refer to here for more information.
Beanbag 1.0 was released.
Atenea group has released reSynch, a UML synchronization tool developed using Beanbag. Visit here for more information.
Beanbag 0.2.1 has released. Added an output to the sync command and the resync command to show only effective update on the data. Also fixed a bug with incremental synchronization.
Our ATL-based synchronization tool has been named as SyncATL.
We have released a new version of Beanbag. The new version includes a new and easy-to-write Beanbag language, an interactive console and two example programs.
Our on-site synchronization project has been named as Beanbag. This name comes from a Japanese traditional game of the same name where the players tries to keep several beanbag consistent within a short time constraint.
Our paper is accepted by ASE 2007!