paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Fault tolerant functional reactive programming (functional pearl)

容错函数式反应式编程(函数式珍珠)
ICFP 2(ICFP)2018匹配度 2/10 · 论文属于函数式编程与类型系统方向,涉及静态分析和编译期保证,与 PL 有交集;但它关注 FRP 容错,未涉及 LLM/Agent、ML 系统、浮点程序分析或贝叶斯程序分析,与用户画像的核心交叉方向基本无关。引用 8 inbox
Ivan Perez
crossref: 2026-09-10

AI 速览

一句话:为 FRP 抽象引入风险标签与置信度,并用类型级编程提供静态容错保证。

医疗和航空航天等关键领域需要严格的同步数据流/FRP 抽象,但现有 FRP 虽支持失败或终止,却难以处理未知故障并把容错纳入其中。本文扩展已有函数式反应式抽象,为反应式变换标注风险标签或置信度,并用数值因子或概率分布量化构造的可靠性;通过约束允许的可靠性边界来辅助容错系统设计。借助类型级编程,作者改进静态分析,并在编译期保证容错的关键性质。该框架可用于分析、设计、测试、验证、运行时监控及执行期故障处理,并在 Haskell 与 Idris 中实现。

问题
关键反应式系统中,FRP 对未知故障的建模与容错集成不足,且缺乏可靠性量化与静态保证。
方法
扩展现有 FRP 抽象,加入风险标签/置信度和数值或概率可靠性,并用类型级编程在编译期约束容错性质;给出 Haskell 与 Idris 实现。
评估
通过原型框架展示可靠性量化、可靠性边界约束,以及用于分析、测试、验证、运行时监控和执行期容错的能力,并实现于 Haskell 与 Idris。
原文摘要(Abstract)

Highly critical application domains, like medicine and aerospace, require the use of strict design, implementation and validation techniques. Functional languages have been used in these domains to develop synchronous dataflow programming languages for reactive systems. Causal stream functions and Functional Reactive Programming capture the essence of those languages in a way that is both elegant and robust. To guarantee that critical systems can operate under high stress over long periods of time, these applications require clear specifications of possible faults and hazards, and how they are being handled. Modeling failure is straightforward in functional languages, and many Functional Reactive abstractions incorporate support for failure or termination. However, handling unknown types of faults , and incorporating fault tolerance into Functional Reactive Programming, requires a different construction and remains an open problem. This work presents extensions to an existing functional reactive abstraction to facilitate tagging reactive transformations with hazard tags or confidence levels. We present a prototype framework to quantify the reliability of a reactive construction, by means of numeric factors or probability distributions, and demonstrate how to aid the design of fault-tolerant systems, by constraining the allowed reliability to required boundaries. By applying type-level programming, we show that it is possible to improve static analysis and have compile-time guarantees of key aspects of fault tolerance. Our approach is powerful enough to be used in systems with realistic complexity, and flexible enough to be used to guide their analysis and design, to test system properties, to verify fault tolerance properties, to perform runtime monitoring, to implement fault tolerance during execution and to address faults during runtime. We present implementations in Haskell and in Idris.

链接与引用

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

BibTeX
@article{paperbot300,
  title = {Fault tolerant functional reactive programming (functional pearl)},
  author = {Ivan Perez},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {2},
  number = {ICFP},
  year = {2018},
  doi = {10.1145/3236791}
}