2 个版本

0.1.1 2024 年 5 月 4 日
0.1.0 2024 年 5 月 3 日

85编程语言

MIT 许可证

300KB
6.5K SLoC

通用编程语言

这是 Generic 的主要源代码仓库。它包含解释器,并将包含标准库和文档。

影响

Generic 基于由 Bob Nystrom 创建的 Lox 编程语言,该语言是为他卓越的书籍 Crafting Interpreters 而设计的。

这个实现是用 Rust 编写的,并且与 clox-rs 非常紧密地相关。可以在之前的 repo 中找到与 clox-rs 一起阅读书籍的指南。

语法高亮

存在一个简单的 vscode 扩展,形式为 generic-lang-vscode

构建

解释器可以像这样构建

cargo build --release

测试

实现可以找到在 testtool 分别。驱动程序是用 Dart 编写的,并直接从 Crafting Interpreters 的 book repo 中提取。套件是该存储库中可以找到的套件的扩展。

要运行它

make test

基准测试

将通用语言与官方的 cJava Lox 实现,以及在一定程度上与 PythonRuby 进行基准测试也是可能的。这些基准测试的参考程序可以在 基准测试 中找到。

基准测试设置由 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