编译原理之美
宫文学
北京物演科技CEO
立即订阅
8171 人已学习
课程目录
已完结 43 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么你要学习编译原理?
免费
实现一门脚本语言 · 原理篇 (13讲)
01 | 理解代码:编译器的前端技术
02 | 正则文法和有限自动机:纯手工打造词法分析器
03 | 语法分析(一):纯手工打造公式计算器
04 | 语法分析(二):解决二元表达式中的难点
05 | 语法分析(三):实现一门简单的脚本语言
06 | 编译器前端工具(一):用Antlr生成词法、语法分析器
07 | 编译器前端工具(二):用Antlr重构脚本语言
08 | 作用域和生存期:实现块作用域和函数
09 | 面向对象:实现数据和方法的封装
10 | 闭包: 理解了原理,它就不反直觉了
11 | 语义分析(上):如何建立一个完善的类型系统?
12 | 语义分析(下):如何做上下文相关情况的处理?
13 | 继承和多态:面向对象运行期的动态特性
实现一门脚本语言 · 应用篇 (2讲)
14 | 前端技术应用(一):如何透明地支持数据库分库分表?
15 | 前端技术应用(二):如何设计一个报表工具?
实现一门脚本语言 · 算法篇 (3讲)
16 | NFA和DFA:如何自己实现一个正则表达式工具?
17 | First和Follow集合:用LL算法推演一个实例
18 | 移进和规约:用LR算法推演一个实例
实现一门脚本语言 · 热点答疑与用户故事 (2讲)
19 | 案例总结与热点问题答疑:对于左递归的语法,为什么我的推导不是左递归的?
用户故事 | 因为热爱,所以坚持
编译原理 · 期中考试周 (1讲)
期中考试 | 来赴一场100分的约定吧!
免费
实现一门编译型语言 · 原理篇 (12讲)
20 | 高效运行:编译器的后端技术
21 | 运行时机制:突破现象看本质,透过语法看运行时
22 | 生成汇编代码(一):汇编语言其实不难学
加餐 | 汇编代码编程与栈帧管理
23 | 生成汇编代码(二):把脚本编译成可执行文件
24 | 中间代码:兼容不同的语言和硬件
25 | 后端技术的重用:LLVM不仅仅让你高效
26 | 生成IR:实现静态编译的语言
27 | 代码优化:为什么你的代码比他的更高效?
28 | 数据流分析:你写的程序,它更懂
29 | 目标代码的生成和优化(一):如何适应各种硬件架构?
30 | 目标代码的生成和优化(二):如何适应各种硬件架构?
实现一门编译型语言 · 应用篇 (2讲)
31 | 内存计算:对海量数据做计算,到底可以有多快?
32 | 字节码生成:为什么Spring技术很强大?
实现一门编译型语言 · 扩展篇 (3讲)
33 | 垃圾收集:能否不停下整个世界?
34 | 运行时优化:即时编译的原理和作用
35 | 案例总结与热点问题答疑:后端部分真的比前端部分难吗?
面向未来的编程语言 (3讲)
36 | 当前技术的发展趋势以及其对编译技术的影响
37 | 云编程:云计算会如何改变编程模式?
38 | 元编程:一边写程序,一边写语言
结束语 (1讲)
结束语 | 用程序语言,推动这个世界的演化
编译原理之美
登录|注册

期中考试 | 来赴一场100分的约定吧!

宫文学 2019-09-30
00:00
03:37
讲述:宫文学 大小:3.32M
你好,我是宫文学。
时间过得真快,从 8 月 14 日课程上线,到现在已经有一个半月的时间了。这一个半月里,有很多同学反馈说,自己学了这个课程特别有收获,而运行同学们写的编译器,我也觉得很有成就感,当然了,有的时候,我也会比较焦虑,因为一遍遍改文稿和写示例程序都需要投入大量的精力,不夸张地说,有几次晚上做梦的内容,都与咱们的课程有关……
但是,我觉得把编译原理中,看似高不可攀的一个个知识点,变成一篇篇得到你们肯定的文章是一件十分有趣的事情。动手写示例程序时,也往往让我废寝忘食,比如,报表系统的示例程序就是在飞机和火车上写出来的,一边写,一边灵感不断涌现,那时,我先写了一个版本,后来又改成了基于向量计算的版本,因为总是想给你们呈现最优质的内容,所以一直在不断地思考,优化。
在准备算法篇的示例程序时,我也有了很多新的灵感,比如对于元编程的理念,我又有了一些创新的想法。这些内容,我会在课程的第三部分与你分享。
在互联网时代,廉价的快乐随处可得,而努力拼搏才能获得的乐趣,从来都只属于少数人。这门课的目标是让尽可能多的人,有机会享受这种乐趣,当我看到你们进入编译技术的美丽花园中徜徉流连,我的内心是十分欣慰的。
我相信你们是真心喜欢计算机技术,所以想要努力搞懂这个学科的基础原理。而且,你们还能够静下心来,真正坐下来动手尝试。
有的同学会跟“这个推导过程我看过去怎么不会无限递归啊?”这样的问题较劲,而我是很感动的,因为他知道不把手弄脏(get hands dirty),是学不会手艺的。
在别人觉得没有问题的地方提问,本身就需要一定的勇气。其实,那个问题不像表面上那么简单。我在19 讲里花了很大的篇幅解答了这个问题。而从这个问题,可以引出很多问题,比如,有多个产生式的时候,到底该如何选择?深度优先和广度优先有什么区别?等等。
你可以把在学习过程中发现的这些问题看做是花园的入口,而不是障碍。对于在学习编译原理时遇到了困难的同学,我要说,你至少找到了一个入口。
从这个角度来说,通过这次期中考试的 20 道题目,你又获得了 20 个新的入口。我亲自出的这 20 道题目,可以让你对之前学过的内容查漏补缺。你有一周的时间去回顾内容,弥补不足。在你答题的过程中,分值其实是不重要的,能引起你的思考最为重要,这可能是你又一轮的认知迭代!
接下来,我们聊一个轻松的话题,国庆将至,如果你想趁机好好休息一下,不妨找一个小众的城市,远离人群。而且还可以尝试带着电脑,在古镇上,在流水边,在星空下,在一切美景的围绕下,安安静静地写个编译器。这种尝试,难道不是一件美事吗?
当然了,也欢迎你在留言区,将你去过的城市美景分享给大家,给我们的课程增添不一样的色彩。
最后,来挑战一下,开启你的期中考试之旅吧!
编辑角:答题不限次数,但分值以第一次为准,答题前三名,有惊喜哦。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《编译原理之美》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(3)

  • 曾经瘦过
    算法部分还没看就先迫不及待的做了 最后30分 感觉自己在公式推导方面有较大的不足 一些知识也掌握的不够扎实,这份试题的收货还是蛮大的 认识到了自己的不足 需要趁着国庆好好补一补

    作者回复: Great!

    2019-09-30
    2
  • 至今未来
    做完了…

    作者回复: Great!
    一到假期时间,赶紧给自己充电,这个同学很有前途:)

    2019-10-01
    3
    1
  • 夜行观星
    第一次做刚好及格60😭

    作者回复: great!

    2019-10-25
收起评论
3
6
返回
顶部