Posted Updated 编译原理 / 开篇3 minutes read (About 425 words) 00-学习理由
- 很多国外厂商的软件,普遍都具备二次编程能力,拥有自己的语言和生态。
联系
- 作为程序员,在实际工作中经常会碰到需要编译技术的场景
- Hibernate & HQL的解析
- Spring & 注解的支持和字节码动态生成
- 模板引擎 & 条件分支、循环
- 解析用户输入
- 防止代码注入
- 提供像React那样的DSL
- 提供像TypeScript那样的把一门语言翻成另一门
- 像CMake和Maven那样通过配置文件来灵活工作
- 运维工程师分析日志文件
- 提升程序员的竞争力
- 理解底层机制,深入思考问题
- 培养深层次解决问题的能力,而不仅从表面解决问题
- 维度
克服畏难心理
- 通过具体案例理解抽象原理
- 切实体会某个技术在哪个环节中发挥什么作用
- 在工作中真正运用到编译技术
- Antlr工具的使用:做编译器前端
- LLVM工具的使用:做编译器后端
课程规划
- 编译器前端,即词法、语法、语义三大分析
- 了解原理
- 实现一门脚本语言
- 使用工具提升编译工作的效率
- 在应用场景中检验学习成果
- 编译器后端,如何生成目标代码和对代码进行优化
- 纯手工生成汇编代码
- 引入中间代码
- 使用后端工具LLVM
- 生成可执行文件能支持及时编译
- 多层优化
- 发展趋势