编译原理实战课
宫文学
北京原点代码 CEO
26066 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
真实编译器解析篇 (19讲)
编译原理实战课
15
15
1.0x
00:00/00:00
登录|注册

热点问题答疑 | 如何吃透7种真实的编译器?

将代码与编译原理和算法结合起来,实现认识的升华
看源代码,并跟踪源代码的运行过程
动手做实验
听一听文稿,看一看文稿中给出的示例程序和源代码的链接
对变量做了一个定义,体现了变量之间的数据依赖
在安全点进行垃圾收集操作
插入safepoint的过程
使用泛型机制让相同的实现逻辑只书写一次
增加新的数据类型只需增加新的函数
多重分派根据多个参数的组合确定函数的实现
理解编译原理算法
深入探索1门语言
实验2~3门感兴趣的语言
理解主线
目标分解成四个级别的任务
赋值
JVM握手
泛型实现
第四级目标
第三级目标
第二级目标
第一级目标
缓坡学习
SSA
安全点
多重分派
学习方法
热点问题答疑 | 如何吃透7种真实的编译器?

该思维导图由 AI 生成,仅供参考

你好,我是宫文学。
到这里,咱们就已经解析完 7 个编译器了。在这个过程中,你可能也积累了不少问题。所以今天这一讲,我就把其中有代表性的问题,给你具体分析一下。这样,能帮助你更好地掌握本课程的学习思路。

问题 1:如何真正吃透课程中讲到的 7 种编译器?

在课程中,我们是从解析实际编译器入手的。而每一个真实的编译器里面都包含了大量的实战技术和知识点,所以你在学习的时候,很容易在某个点被卡住。那第一个问题,我想先给你解答一下,“真实编译器解析篇”这个模块的学习方法。
我们知道,学习知识最好能找到一个比较缓的坡,让自己可以慢慢爬上去,而不是一下子面对一面高墙。那么对于研究真实编译器,这个缓坡是什么呢?
我的建议是,你可以把掌握一个具体的编译器的目标,分解成四个级别的任务,逐步提高难度,直到最后吃透。
第一个级别,就是听一听文稿,看一看文稿中给出的示例程序和源代码的链接就可以了。
这个级别最重要的目标是什么?是掌握我给你梳理出来的这个编译器的技术主线,掌握一张地图,这样你就能有一个宏观且直观的把握,并且能增强你对编译原理的核心基础知识点的认知,就可以了。
小提示:关于编译器的技术主线和知识地图,你可以期待一下在期中复习周中,即将发布的“划重点:7 种编译器的核心概念和算法”内容。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何深入学习和理解7种真实的编译器,并提出了四个级别的任务,帮助读者逐步掌握编译器的技术和知识。作者建议读者根据个人兴趣和发展规划,逐级完成学习目标,从理解主线到深入探索和修改编译器源代码,最终达到能在编译器领域成为技术专家的境界。文章还回答了读者提出的关于多重分派、安全点和SSA的问题,并对涉及的知识点做了延伸和扩展。整体而言,本文为读者提供了开放式的学习可能性,引导他们逐步深入学习和理解编译器的技术和知识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《编译原理实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 漏网之渔
    老师能否加餐讲解一下Rust语言的编译器������

    作者回复: 我确实有这个想法。 Rust是不能被忽视的一门语言了。除了其内存管理的解决方案成为写系统级软件的工程师们的福音,它的其他一些设计考虑也值得欣赏。 快的话,下星期我就写出稿子来。

    2020-09-03
    8
  • math715
    宫老师,想学习clang编译c++过程,主要是前端,模板和仿函数,lambda表达式处理方式。是否可以提供部分说明呢?

    作者回复: 关于模板,我在元编程部分讲了它的原理,但没有深入太多的细节。 clang前端代码很友好,因为其代码基本上都是手写的,不像gcc是用工具生成的,所以也被很多人借鉴。 前端功能C++是比Java要复杂一些,但也复杂不到哪去。如果腾出空来,我会梳理一些内容给大家。

    2020-08-04
    2
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部