Writing Your First Compiler
4 months ago
- #LLVM
- #compiler
- #Go
- 作者使用现代技术栈构建了一个极简编译器,以简化编译器开发流程。
- 该编译器支持类似 (a + b) * c + d 的表达式,并能生成x86_64目标文件。
- 选择LLVM因其模块化设计和快速构建编译器的能力。
- 项目使用Go进行解析和代码生成,通过cgo调用LLVM的C API。
- 采用Bazel作为构建系统,确保可复现性和依赖项的动态获取。
- 编译器生成名为'compiled_expression'的函数,可由主程序调用。
- GitHub仓库提供项目源代码和复现指南。
- 作者声明部分代码由AI生成,并欢迎反馈以改进项目。