支持持久数据结构的函数式图重写工具:GrapeVine
1. 引言
图和图变换(GT)系统已被应用于各种具有工业相关性的问题。GT 工具在实现这一目标中发挥着重要作用。过去几十年里,已经开发了大量此类工具。然而,当前所有 GT 工具在一个方面未能反映数学理论,即它们将图维护在临时数据结构中。当应用 GT 规则时,图所在的有状态对象会被更新,图的先前版本会丢失。使用临时数据结构维护图存在诸多限制,比如应用程序需要回顾图的推导历史或对图过程进行某种推理时就会受限。
在函数式编程中,所有数据都是不可变的,这通过持久数据结构来实现。与临时数据结构不同,持久数据结构在更新时会保留所有先前版本。部分持久数据结构所有版本都可访问,但只有最新版本可修改,而所有版本都可修改的数据结构则称为完全持久数据结构。
这里将介绍 GrapeVine,这是一个 GT 工具,它将图维护在完全持久数据结构中,并将图视为不可变数据对象。它基于早期的 Grape(图重写和持久化引擎)以及 GrapePress(与 Grape 集成的计算笔记本平台),但对其核心引擎和数据结构进行了完全重新实现,以支持真正的函数式图重写。
2. 相关工作
GrapeVine 可视为对早期 Grape 和 GrapePress 工作的重大修订,其根本区别在于 GrapeVine 使用“函数式编程”范式,将图视为不可变对象。历史上,Grape 指 GT 引擎和用于定义及控制 GT 的领域特定语言,GrapePress 则指与 Grape 集成的计算笔记本平台。GrapeVine 继承了相同的架构,后续统一使用 GrapeVine 这一名称,GrapePress 则涵盖 Grape 引擎。
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



