paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Symbolic execution with existential second-order constraints

带存在性二阶约束的符号执行
FSE Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2018匹配度 3/10 · 论文属于符号执行与程序合成结合的传统PL/形式化方法,涉及静态分析与验证技术,但未涉及用户核心关注的LLM/Agent、浮点程序分析或贝叶斯程序分析等交叉方向,因此匹配度较低。引用 33 inbox
Sergey Mechtaev, Alberto Griggio, Alessandro Cimatti, Abhik Roychoudhury
crossref: 2026-09-12

AI 速览

一句话:将符号变量扩展到函数并集成程序合成来求解二阶约束,缓解符号执行的路径爆炸。

传统符号执行通过求解路径条件来系统探索程序路径,其中符号变量通常取值于数字、数组和字符串。本文提出带存在性二阶约束的符号执行,允许符号变量取值为解释受用户自定义语言限制的函数,从而将符号执行与程序合成相结合。该技术有两个目标:一是提供可应用于程序修复和库建模等多个领域的通用分析框架;二是缓解传统一阶符号执行在某些应用中的路径爆炸问题。为实现该技术,作者提出一种二阶约束求解方法,能够高效证明不可满足性,这对符号执行的性能至关重要。评估表明,该技术能够通过缓解路径爆炸来修复含循环的程序,并能从使用上下文中对不可用的库进行建模,从而支持针对这些库所写应用的分析。

问题
传统符号执行中符号变量仅取值于数字、数组和字符串等一阶域,在含循环程序或依赖缺失库的应用中会遇到严重的路径爆炸或无法分析的问题。
方法
将符号变量扩展为受用户自定义语言约束的函数解释,形成存在性二阶约束,并把符号执行与程序合成集成,提出可高效证明不可满足性的二阶约束求解方法。
评估
通过实验评估该技术,展示其能修复含循环程序并缓解路径爆炸,同时能从使用上下文为不可用库建模以支持相关应用的分析。
原文摘要(Abstract)

Symbolic execution systematically explores program paths by solving path conditions --- formulas over symbolic variables. Typically, the symbolic variables range over numbers, arrays and strings. We introduce symbolic execution with existential second-order constraints --- an extension of traditional symbolic execution that allows symbolic variables to range over functions whose interpretations are restricted by a user-defined language. The aims of this new technique are twofold. First, it offers a general analysis framework that can be applied in multiple domains such as program repair and library modelling. Secondly, it addresses the path explosion problem of traditional first-order symbolic execution in certain applications. To realize this technique, we integrate symbolic execution with program synthesis. Specifically, we propose a method of second-order constraint solving that provides efficient proofs of unsatisfiability, which is critical for the performance of symbolic execution. Our evaluation shows that the proposed technique (1) helps to repair programs with loops by mitigating the path explosion, (2) can enable analysis of applications written against unavailable libraries by modelling these libraries from the usage context.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4672,
  title = {Symbolic execution with existential second-order constraints},
  author = {Sergey Mechtaev and Alberto Griggio and Alessandro Cimatti and Abhik Roychoudhury},
  booktitle = {FSE},
  year = {2018},
  doi = {10.1145/3236024.3236049}
}