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