00-学习理由

  • 很多国外厂商的软件,普遍都具备二次编程能力,拥有自己的语言和生态。

联系

  • 作为程序员,在实际工作中经常会碰到需要编译技术的场景
    • Hibernate & HQL的解析
    • Spring & 注解的支持和字节码动态生成
    • 模板引擎 & 条件分支、循环
    • 解析用户输入
    • 防止代码注入
    • 提供像React那样的DSL
    • 提供像TypeScript那样的把一门语言翻成另一门
    • 像CMake和Maven那样通过配置文件来灵活工作
    • 运维工程师分析日志文件
  • 提升程序员的竞争力
    • 理解底层机制,深入思考问题
    • 培养深层次解决问题的能力,而不仅从表面解决问题
  • 维度
    • 前端语法
    • 代码优化
    • 硬件结合

克服畏难心理

  • 通过具体案例理解抽象原理
  • 切实体会某个技术在哪个环节中发挥什么作用
  • 在工作中真正运用到编译技术
    • Antlr工具的使用:做编译器前端
    • LLVM工具的使用:做编译器后端

课程规划

  1. 编译器前端,即词法、语法、语义三大分析
    • 了解原理
    • 实现一门脚本语言
    • 使用工具提升编译工作的效率
    • 在应用场景中检验学习成果
  2. 编译器后端,如何生成目标代码和对代码进行优化
    • 纯手工生成汇编代码
    • 引入中间代码
    • 使用后端工具LLVM
    • 生成可执行文件能支持及时编译
    • 多层优化
  3. 发展趋势
    • 人工智能
    • 云编程
Author

Ryon

Posted on

2023-06-08

Updated on

2023-06-08

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.