教程:calc 语言

⚠️ Salsa 仍在进展中 ⚠️

本页描述了未发布的 Salsa 2022 版本,该版本与旧版本大不相同。此处的代码有效,但仅在 github 和 salsa-2022 crate 中可用。

译者注:这一章的完整代码在 calc-example 下。

本教程将介绍一个使用 Salsa 的完整示例。本文并不假定你对 Salsa 有任何了解,但先阅读概述能让你熟悉基本的概念。

我们的目标是给名为 calc 的简单语言定义一个编译器/解释器。 calc 编译器获取如下所示的程序,然后解析并执行它们:

fn area_rectangle(w, h) = w * h
fn area_circle(r) = 3.14 * r * r
print area_rectangle(3, 4)
print area_circle(1)
print 11 * 2

执行时,该程序打印 123.1422

如果程序有错误(例如,使用未定义的函数),它也会打印出来。

当然,它将是反应式的,因此对输入的微小更改不需要重新编译(或重新执行)整个程序。