目录
前言
通过开发一门类 Lisp 的编程语言来理解编程语言的设计思想,本实践来自著名的《Build Your Own Lisp》。
- 代码实现:https://github.com/JmilkFan/Lispy
交互式解析器
解析型编程语言是一种需要在运行之前先经过 Parser(解析器)解析成计算机能够理解和执行的代码的编程语言。实现一门解析型编程语言大体上需要以下几个部分:
- 设计语法和语义:这部分是本实践重点关注的部分,Lispy 参考了 Lisp 的语法结果。
- 实现解析器:这部分我们借助开源解析器库来完成,实现一个交互式的解析器。
- 实现执行器:负责程序的实际执行,将源代码转换成目标代码。这部分我们依靠 C 语言本身来作为代码执行器。
- 实现工具库:最后我们会尝试编写一些同样的工具库。
交互式解析器,也被称为 REPL(Read-Evaluate-Print-Loop,读