Abstract
基于LLVM实现简单的编程语言kaleidoscope,来源于LLVM9.0.0 tutorial。
LLVM的官方文档还是很不错的,阅读完其中的tutorials就能大致上手LLVM了。实现的代码对C++11要求比较高,我放在了Github上。
实现共分为10部分:
- 实现词法分析器Lexer
- 使用递归下降和运算符优先级解析实现语法分析器Parser
- 将
AST转化成LLVM-IR - 添加
JIT即时编译和优化器的支持 - 扩展——控制流,这一章会引入
SSA概念 - 扩展——用户定义运算符
- 扩展——自动变量,深入
SSA - 目标代码生成
- 扩展——添加调试器
- 深入——GC,异常等