Need help with write-a-programming-language-in-450-lines?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

karminski
222 Stars 10 Forks 14 Commits 0 Opened issues

Description

本教程教大家用 450 行 Go 代码实现一个简单的编程语言

Services available

!
?

Need anything else?

Contributors list

No Data

牙医教你 450 行代码自制编程语言

Description

没有系统学习过编译原理的同学可能会很好奇编程语言的编译器, Lexer & Parser, 虚拟机是怎么实现的. 而又苦于系统性的教材过于枯燥.

本教程教大家用 450 行 Go 代码实现一个简单的编程语言, 它的语法是这样的:

$a = "pen pineapple apple pen."
print($a)

看上去很简单是不是? 但是它包含了个手写的递归下降解析器和一个简单的解释器.

虽然该语言甚至不是图灵完备的. 但写这个语言和教程的主要目的是让编译原理初学者有一个预热, 简单了解一个编程语言是怎么构建的.

准备好了吗? 让我们开始!

Markdown

建议直接看用 Markdown 编写的原始版本, PDF 生成的不是很好:

PDF

示例代码

Author

karminski-牙医

License

CC BY-NC-ND 4.0

您可以自由地:

共享 - 在任何媒介以任何形式复制, 发行本作品

只要你遵守许可协议条款, 许可人就无法收回你的这些权利.

惟须遵守下列条件:

署名 - 您必须给出适当的署名, 提供指向本许可协议的链接, 同时标明是否 (对原始作品) 作了修改. 您可以用任何合理的方式来署名, 但是不得以任何方式暗示许可人为您或您的使用背书.

非商业性使用 - 您不得将本作品用于商业目的.

禁止演绎 - 如果您 再混合, 转换, 或者基于该作品创作, 您不可以分发修改作品.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.