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
每月下载量 133 次
695KB
14K SLoC
Fungi:带名称的增量计算类型化
Fungi 是一个基于 Rust 的 DSL,提供了一种 类型化函数式语言 用于 带名称的增量计算。
Fungi 中的示例程序
Fungi 开发者资源
- Fungi 的 Rust 实现
- Fungi 程序的可视化工具
背景
(另见: Fungi 技术报告)
Fungi 是一种类型化函数式语言,用于带名称的增量计算。
增量计算尝试利用输入 随时间的变化相似性,重用不受输入变化影响的工作。为了在通用编程环境中最大限度地重用这些工作,程序员需要一个机制来识别随时间对应的动态分配(数据和子计算)。Fungi 提供了一种名为 名称 的概念,它是正式的、通用的且是静态可验证的。
Fungi 的类型和效果系统允许程序员编码(特定于程序的)关于名称的局部不变性,并使用这些不变性来为它们的组合程序建立 全局唯一性,即正确使用名称的性质。我们在论文中证明,良好类型的 Fungi 程序尊重全局唯一性。我们将 Fungi 实现为 Rust,作为一种“深度嵌入”的语言,包括 Fungi 的双向类型系统和增量评估语义。
相关项目
依赖项
约6MB
约127K SLoC