Symbolic execution (SE) tools often rely on intermediate languages (ILs) to support multiple programming languages, promising reusability and efficiency. In practice, this approach introduces trade-offs between performance, accuracy, and language feature support. We argue that building SE engines \emph{directly} for each source language is both simpler and more effective. We present Soteria, a lightweight OCaml library for writing SE engines in a functional style, without compromising on performance, accuracy or feature support. Soteria enables developers to construct SE engines that operate directly over source-language semantics, offering \emph{configurability}, compositional reasoning, and ease of implementation. Using Soteria, we develop Soteria$^{\text{Rust}}$, the \emph{first} Rust SE engine supporting Tree Borrows (the intricate aliasing model of Rust), and Soteria$^{\text{C}}$, a compositional SE engine for C. Both tools are competitive with or outperform state-of-the-art tools such as Kani, Pulse, CBMC and Gillian-C in performance and the number of bugs detected. We formalise the theoretical foundations of Soteria and prove its soundness, demonstrating that sound, efficient, accurate, and expressive SE can be achieved without the compromises of ILs.


翻译:符号执行工具通常依赖中间语言支持多源语言,以提升可重用性和效率。然而在实践中,这种方法需在性能、准确性和语言特性支持间权衡取舍。我们论证,直接为每种源语言构建符号执行引擎既更简单也更高效。本文提出Soteria——一款轻量级OCaml函数式库,用于构建符号执行引擎,无需在性能、准确性或特性支持上妥协。Soteria使开发者能够直接基于源语言语义构建符号执行引擎,提供可配置性、组合式推理和易于实现的特性。基于Soteria,我们开发了Soteria$^{\text{Rust}}$——首个支持Tree Borrows(Rust精妙别名模型)的Rust符号执行引擎,以及Soteria$^{\text{C}}$——面向C语言的组合式符号执行引擎。这两个工具在性能及检测的缺陷数量上,与Kani、Pulse、CBMC和Gillian-C等先进工具相比具有竞争力或更优表现。我们形式化了Soteria的理论基础并证明了其正确性,表明无需中间语言的折中即可实现正确、高效、精确且富有表达力的符号执行。

0
下载
关闭预览

相关内容

Effective.Modern.C++ 中英文版,334页pdf
专知
26+阅读 · 2020年11月4日
Jiagu:中文深度学习自然语言处理工具
AINLP
90+阅读 · 2019年2月20日
在Python中使用SpaCy进行文本分类
专知
24+阅读 · 2018年5月8日
深度文本匹配开源工具(MatchZoo)
机器学习研究会
10+阅读 · 2017年12月5日
TextInfoExp:自然语言处理相关实验(基于sougou数据集)
全球人工智能
12+阅读 · 2017年11月12日
国家自然科学基金
2+阅读 · 2017年12月31日
国家自然科学基金
43+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
14+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
5+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Arxiv
0+阅读 · 5月1日
Arxiv
0+阅读 · 4月28日
VIP会员
最新内容
战略前沿人工智能的再思考(中文)
专知会员服务
4+阅读 · 5月29日
《量化地基防空系统间接效应的博弈论方法》
专知会员服务
4+阅读 · 5月29日
“史诗怒火行动”中美军损失的作战飞机
专知会员服务
4+阅读 · 5月29日
ICML 2026 | 理解上下文持续学习中的泛化与遗忘
专知会员服务
5+阅读 · 5月28日
Agent Harness综述:大模型智能体执行器工程全景
专知会员服务
14+阅读 · 5月28日
《基于理论的威慑效能评估》
专知会员服务
8+阅读 · 5月28日
相关VIP内容
相关基金
国家自然科学基金
2+阅读 · 2017年12月31日
国家自然科学基金
43+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
14+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
5+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员