paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Imperative functional programs that explain their work

可解释自身执行的命令式函数式程序
ICFP 1(ICFP)2017匹配度 3/10 · 论文属于程序分析与抽象解释的形式化工作,涉及动态切片与 Galois 连接,理论上与 PL/静态分析相邻;但未涉及 LLM/Agent、ML 系统、浮点程序分析或贝叶斯程序分析,与用户当前核心的 PL×AI 交叉方向关联较弱。引用 25 inbox
Wilmer Ricciotti, Jan Stolarek, Roly Perera, James Cheney
dblp: 2026-09-10crossref: 2026-09-10arxiv: 2026-09-10

AI 速览

一句话:将动态切片与 Galois 连接扩展到含引用和异常的命令式函数式程序,并证明其正确性与最优性。

程序切片可解释输出如何由输入产生。已有工作针对纯高阶函数式程序,将动态切片定义为部分输入格与部分输出格之间的 Galois 连接。本文把该框架扩展到命令式函数式程序,统一处理高阶函数、引用与异常。作者给出语义定义,并证明切片相对于求值轨迹的正确性与最优性;还实现原型工具并进行实验评估,表明该扩展可实际生成解释程序行为的切片。

问题
如何为含高阶函数、引用和异常的命令式函数式程序生成动态切片,从而解释输出由哪些输入产生。
方法
将纯高阶函数式程序的动态切片框架(部分输入/输出格上的 Galois 连接)扩展至命令式函数式语言,并给出正确性与最优性证明及原型实现。
评估
通过证明论证方法的正确性与最优性,并用概念验证实现开展实验评估。
原文摘要(Abstract)

Program slicing provides explanations that illustrate how program outputs were produced from inputs. We build on an approach introduced in prior work, where dynamic slicing was defined for pure higher-order functional programs as a Galois connection between lattices of partial inputs and partial outputs. We extend this approach to imperative functional programs that combine higher-order programming with references and exceptions. We present proofs of correctness and optimality of our approach and a proof-of-concept implementation and experimental evaluation.

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@article{RicciottiSPC17,
  title = {Imperative functional programs that explain their work},
  author = {Wilmer Ricciotti and Jan Stolarek and Roly Perera and James Cheney},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {1},
  number = {ICFP},
  year = {2017},
  doi = {10.1145/3110258}
}