这是一个实验性质的工程,它将尝试实现一个Lisp的解释器。实现的方法主要参照了SICP,但目前只实现了其中的很小一部分内容。目前已实现的内容包括:
- lambda表达式
- 函数调用
- 变量的定义(含函数定义)
- 条件语句(if语句而非cond)
- 重构代码,使词法分析、语法分析、语义分析等环节相互独立。(已完成)
- 加强语义分析、代码优化的能力。
- 完善语法,增加模块等语法特性。
- 为解释器增加命令行参数。
- 完善类型系统,添加元组、字符串、符号等类型。
- 完善标准库,最终支持常用数学函数、函数式编程的基本工具、基本IO。
工程使用VS community 2019创建,代码使用C++编写。语言标准使用C++17并禁用编译器拓展,因此估测可以将其直接移植至Linux并用clang++/g++编译运行。