#编译器 #语言 #esolang

应用 lolcode

一个简单的 Lolcode 到 C 编译器

4 个版本 (2 个破坏性更新)

0.3.1 2022年7月9日
0.3.0 2022年7月8日
0.2.0 2022年7月8日
0.1.0 2022年7月8日

926编程语言

MIT 许可证

40KB
1K SLoC

LolC

一个简单的 Lolcode 到 C 编译器。用 Rust 编写。

安装说明

lolc 需要安装最新版本的 Cargo。

cargo安装 lolcode

什么是 Lolcode?

Lolcode 是一种 esolang,或称图灵完备的编程语言。其语法故意幽默,难以用于实际生产。因此,Lolcode 在软件开发社区中仅用作玩笑。

为什么存在这个项目?

我开发这个 Lolcode 编译器是为了帮助巩固对 Pratt 解析的理解。Lolcode 的解析器基于 Pratt 解析的原则。

感谢 Bob Nystrom 在 Stuff With Stuff 的文章,这篇文章非常出色,有助于解释 Pratt 解析器。Nystrom 使用 Java 实现了他的版本(我这里使用 Rust),但他解释得非常清楚。

感谢 Austin Henley 提供的关于编写编译器的优秀指南。

感谢 Revanth Pothukuchi(GitHub 用户 Hacker007) 向我解释了他语言 Envious 的编译器中的解析器,envyc

为什么用 Rust 编写?

我决定用 Rust 编写这个项目,原因有以下几点

  • 有效的 & 安全的类型多态性
  • 有效的错误处理
  • 速度
  • 我比 C++ 更熟悉 Rust

依赖关系

~1–11MB
~73K SLoC