1 个不稳定版本
0.1.0 | 2020 年 4 月 30 日 |
---|
#386 在 编程语言
110KB
2.5K SLoC
Rust 中的 LDPL
LDPL 是一种功能强大的编译型编程语言,旨在从底层设计成非常易表达、易读、快速且易于学习。它模仿普通英语,类似于 COBOL 等较老编程语言的优点,希望任何人都能理解。LDPL 被设计在 Unix 系统上运行,包括 AMD-64 Linux、macOS、ARMv8 Linux、Android Termux 以及 Intel 和 PowerPC OS X(从 Tiger 10.4 开始测试)。它甚至默认支持 UTF-8。
这是一个实验性的 LDPL 4.4 编译器,使用 Rust 编写。与官方编译器一样,LDPL 代码被转换为 C++ 代码,然后编译成独立的可执行文件。生成的代码应与官方编译器 100% 兼容,这意味着 LDPL-RS 应该可以很好地与常规 LDPL 扩展一起工作。
构建它
LDPL-RS 需要 make、cargo 和 Rust 来构建,并需要一个 C++ 编译器 来使用。
一旦你有了所有这些,构建就非常简单
git clone git://github.com/xvxx/ldpl-rs
cd ldpl-rs
make
如果构建成功,你就成功构建了一个 ldpl-rs
可执行文件,你可以使用它来编译任何官方 LDPL 示例
git clone -b 4.4 git://github.com/lartu/ldpl
./ldpl-rs ldpl/examples/99bottles.ldpl
你还可以使用 "run" 命令一次构建并运行一个文件
./ldpl-rs run ldpl/examples/99bottles.ldpl
99 bottles of beer on the wall...
要携带它,只需将 ldpl-rs
复制到 /usr/local/bin
或你的 $PATH
中的其他位置。
状态
该项目尚处于起步阶段,但可以编译简单的 LDPL 程序。它支持所有 LDPL 4.4 语句,包括 C++ 扩展,并且可以编译和运行 LDPL 4.4 附带的所有示例。它还可以编译 Gild 和 ldpl-todo。
它通过了 官方 LDPL 测试 中的 11 个测试。
然而,以下功能目前不受支持(但即将推出)
- 嵌套集合(NUMBER LIST LIST LIST)
- OF 语法(LIST OF NUMBERS)
要运行测试,克隆该项目(如上所述)并运行
make test
LDPLTest 通过/失败状态
测试 | 状态 | 失败原因 |
---|---|---|
basicar | ✅ | |
basictx | ✅ | |
conflow | ✅ | |
exec | ✅ | |
explode | ✅ | |
fibo | ✅ | |
file | ✅ | |
list | ✅ | |
of | ❌ | OF 语法 |
quine | ✅ | |
sqrt | ✅ | |
vector | ✅ |
LDPL 示例 通过/失败状态
示例 | 状态 | 失败原因 |
---|---|---|
99bottles.ldpl | ✅ | |
absolutevalue.ldpl | ✅ | |
arguments.ldpl | ✅ | |
bellman-ford.ldpl | ✅ | |
brainfuck.ldpl | ✅ | |
disancount.ldpl | ✅ | |
euler.ldpl | ✅ | |
explode.ldpl | ✅ | |
factorial.ldpl | ✅ | |
fibonacci.ldpl | ✅ | |
floyd-warshall.ldpl | ✅ | |
helloworld.ldpl | ✅ | |
leapyear.ldpl | ✅ | |
loop_counter.ldpl | ✅ | |
oddornot.ldpl | ✅ | |
quine.ldpl | ✅ | |
sqrt.ldpl | ✅ | |
strcmp-demo.ldpl | ✅ |
许可
LDPL-RS 编译器遵循 Apache 2.0 许可协议,与官方 LDPL 编译器相同。所有 LDPL 恐龙标志均由 Lartu 创建,并发布在创意共享署名 4.0 国际 (CC BY 4.0) 许可下。
LDPL-RS 的一些部分直接复制自 LDPL。感谢 LDPL 社区所有贡献!
依赖
~3MB
~60K SLoC