paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Functional Stream Semantics for a Synchronous Block-Diagram Compiler

同步块图编译器的函数式流语义
LICS 2025 40th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)2025匹配度 2/10 · 该论文为同步块图语言(控制/数据流 DSL)建立函数式流语义并重述编译器端到端正确性定理,属于经典形式语义与编译器验证,未涉及机器学习/Agentic 程序、LLM 辅助分析、浮点程序分析或贝叶斯程序分析等用户核心方向;其中“静态类型与依赖分析排除运行时错误”与静态分析略有交集,但场景与目标均不对口。引用 0 inbox
Timothy Bourke, Paul Jeanmaire, Marc Pouzet
crossref: 2026-09-12

AI 速览

一句话:为同步块图编译器给出函数式流语义,并重述其端到端正确性定理。

同步块图语言通常被形式化为定义流函数的方程不动点。本文将这一方法应用于一个已在交互式定理证明器中验证的编译器,从而能够重新陈述其端到端正确性定理:若程序被接受且无运行时错误,则生成代码保持其输入/输出行为。在函数式语义中,必须刻画包括错误在内的所有可能行为。作者证明,静态类型与依赖分析可以正确排除除逻辑和算术运算符错误之外的所有错误。其定义补充了已有形式化,尤其针对 reset 算符给出了语义,该算符本身有用,也是高级控制结构的基础。

问题
如何为同步块图语言建立函数式流语义,并在其中统一刻画正常与错误行为,以支持已验证编译器的端到端正确性表述。
方法
将同步语言视为流函数方程的不动点,在交互式定理证明器中定义函数式流语义,并利用静态类型与依赖分析刻画错误的排除范围。
评估
通过重述编译器端到端正确性定理,并证明静态类型与依赖分析除逻辑和算术运算符外可排除全部错误来评估该语义。
原文摘要(Abstract)

Synchronous block-diagram languages have long been formalized as fixpoints of equations defining stream functions. We apply this approach to a compiler verified in an interactive theorem prover, allowing us to restate its end-to-end correctness theorem: if a program is accepted and has no runtime errors, its input/output behavior is preserved in the generated code. In a functional semantics, it is necessary to model all possible behaviors, including erroneous ones. We show that static typing and dependency analyses correctly rule out all errors except those arising from logical and arithmetic operators. Our definitions supplement existing formal ones, especially for the reset operator, which is both useful in itself and a basis of advanced control structures.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot8665,
  title = {Functional Stream Semantics for a Synchronous Block-Diagram Compiler},
  author = {Timothy Bourke and Paul Jeanmaire and Marc Pouzet},
  booktitle = {LICS},
  year = {2025},
  doi = {10.1109/lics65433.2025.00052}
}