#增量计算 #名称 #语言 #增量 #记忆化 #依赖图

nightly fungi-lang

Fungi:一种为命名其缓存依赖图的程序而设计的类型化、函数式语言

63 个版本

使用旧的 Rust 2015

0.1.63 2018 年 10 月 21 日
0.1.62 2018 年 10 月 19 日
0.1.58 2018 年 9 月 3 日
0.1.57 2018 年 8 月 21 日
0.1.25 2018 年 2 月 25 日

Rust 模式 中排名 #994

Download history 1/week @ 2024-03-10 325/week @ 2024-03-31 1/week @ 2024-04-07

每月下载量 133

MPL-2.0 许可证

695KB
14K SLoC

Logo Fungi:带名称的增量计算类型化 Travis

Fungi 是一个基于 Rust 的 DSL,提供了一种 类型化函数式语言 用于 带名称的增量计算

Fungi 中的示例程序

Fungi 开发者资源

背景

(另见: Fungi 技术报告)

Fungi 是一种类型化函数式语言,用于带名称的增量计算。

增量计算尝试利用输入 随时间的变化相似性,重用不受输入变化影响的工作。为了在通用编程环境中最大限度地重用这些工作,程序员需要一个机制来识别随时间对应的动态分配(数据和子计算)。Fungi 提供了一种名为 名称 的概念,它是正式的、通用的且是静态可验证的。

Fungi 的类型和效果系统允许程序员编码(特定于程序的)关于名称的局部不变性,并使用这些不变性来为它们的组合程序建立 全局唯一性,即正确使用名称的性质。我们在论文中证明,良好类型的 Fungi 程序尊重全局唯一性。我们将 Fungi 实现为 Rust,作为一种“深度嵌入”的语言,包括 Fungi 的双向类型系统和增量评估语义。

  • Adapton 为 Fungi 的增量计算方法提供了语义基础。
  • IODyn 是一种隐式增量语言,通过类型引导的转换针对 Fungi

依赖项

约6MB
约127K SLoC