2 个版本
0.1.1 | 2024 年 5 月 4 日 |
---|---|
0.1.0 | 2024 年 5 月 3 日 |
85 在 编程语言 中
300KB
6.5K SLoC
通用编程语言
这是 Generic 的主要源代码仓库。它包含解释器,并将包含标准库和文档。
影响
Generic 基于由 Bob Nystrom 创建的 Lox 编程语言,该语言是为他卓越的书籍 Crafting Interpreters 而设计的。
这个实现是用 Rust 编写的,并且与 clox-rs 非常紧密地相关。可以在之前的 repo 中找到与 clox-rs 一起阅读书籍的指南。
语法高亮
存在一个简单的 vscode 扩展,形式为 generic-lang-vscode。
构建
解释器可以像这样构建
cargo build --release
测试
实现可以找到在 test 和 tool 分别。驱动程序是用 Dart 编写的,并直接从 Crafting Interpreters 的 book repo 中提取。套件是该存储库中可以找到的套件的扩展。
要运行它
make test
基准测试
将通用语言与官方的 c 和 Java Lox 实现,以及在一定程度上与 Python 和 Ruby 进行基准测试也是可能的。这些基准测试的参考程序可以在 基准测试 中找到。
基准测试设置由 hyperfine 驱动,需要单独安装并添加到路径中。这也适用于 Ruby 和 Python。
然而,主要的基准测试是针对 Lox 实现的。为了进行这些运行,必须从 书籍仓库 安装这两个版本,并将它们放置在 (相对) 路径
{generic-lang}/reference/craftinginterpreters
.
在 Linux 上运行基准测试的方法是
make benchmark-ci
要在 Windows 上运行基准测试,需要创建一个 jlox.bat
文件,内容如下
@echo off
set "script_dir=%~dp0"
java -cp "%script_dir%\build\java" com.craftinginterpreters.lox.Lox %*
首先,将此文件放置在 craftinginterpreters
目录中。
然后通过以下方式运行基准测试
make benchmark
安装
我建议通过以下方式从源代码构建 Generic
# Download the source code
git clone https://github.com/JanEricNitschke/generic-lang
cd generic-lang
# Install 'generic'
cargo install --path .
现在要使用 generic,在您的终端中运行
generic
依赖项
~4MB
~74K SLoC