文章目录
一、Introduction
引言,介绍教程背景,将要完成的任务和计划完成时间等信息。
二、Implementing a Language
介绍Kaleidoscope语言的语法和特性,并分析如何将其实现为一个LLVM IR。
三、Implementing a Lexer
实现Lexer来解析Kaleidoscope语言的标记。
四、Implementing a Parser and AST
实现Parser解析Kaleidoscope的表达式,并生成一个AST(Abstract Syntax Tree)。
五、Code Generation to LLVM IR
实现LLVM IR代码生成器,将AST转换为LLVM IR。
六、Adding JIT and Optimizer Support
了解LLVM JIT(Just-in-Time)编译器,将生成的LLVM IR编译为本地机器代码并运行.
七、Extending the Language: Control Flow
扩展Kaleidoscope语言,实现控制流结构(if/then/else)。
八、Extending the Language: User-defined Operators
扩展Kaleidoscope语言,实现用户定义的二元和一元操作符。
九、Interlude: Building a “Real” Compiler
介绍如何创建一个正式的编译器,而不是只是一个语言解释器,并简要介绍编译器的基本架构。
十、 Building a JIT
深入研究JIT编译器的实现细节,并实现具有多级缓存的JIT编译器。