编译原理之美
宫文学
北京原点代码 CEO
45685 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
开篇词 (1讲)
编译原理 · 期中考试周 (1讲)
编译原理之美
15
15
1.0x
00:00/00:00
登录|注册

结束语 | 用程序语言,推动这个世界的演化

据说,第二次世界大战期间,图灵和同事破译的情报,在盟军诺曼底登陆等重大军事行动中发挥了重要作用。历史学家认为,他让二战提早了 2 年结束,至少拯救了 2000 万人的生命。也据说,苹果公司的 Logo 就是用来纪念图灵的。
图灵的故事我不再赘述,你上网随便搜个关键词都能找到。不过,通过这个故事,我们能得到两点启示:
对信息的处理能力至关重要,从此信息技术成为了科技进步的主角,一直到现在。
科技永远关乎人性,科技是客观的,而推动科技发展的人,是有温度、有故事的。
所以,在《编译原理之美》这个课程结束的今天,除了想跟你好好地说声再见之外,我更多地是想分享作为一个程序员,我们的挣扎、骄傲,以及跟这个社会的关系,跟时代洪流的关系。我有一些感受分享一下。
学习技术的过程,是跟大师对话的过程,是融入科技发展这条历史河流的过程,是一个有温度的心路历程。
有同学在留言区说,这门课,串联了计算机领域的很多基础课程。的确如他所说,当然,我也认为编译原理这门课,串联着整个计算机发展的历史,以及做出重要贡献的一代代大师。
什么是大师?这么说吧。比如你针对某方面的问题琢磨了很多年,有所心得。刚想进一步梳理头绪,就发现有人在多年前,已经针对这方面的问题发表了一个理论,并且论述得很完整,很严密。这个人,就可以叫做大师。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《编译原理之美》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(57)

  • 最新
  • 精选
  • 刘強
    唯有感谢。

    作者回复: 我还想再力求完美。仅仅40讲的专栏,还没达到我的目标。 后续的计划在酝酿中。 我最近先把一些可以优化的地方优化一下,包括Lab。

    10
  • 沉淀的梦想
    期待老师和极客时间的进一步计划

    作者回复: 上周我跟极客时间的朋友们讨论时,提到了几个一直能把课程跟得很紧,应该就包括你:)

    9
  • P小二
    感谢老师

    作者回复: 希望这门课能帮你“寻找自我”!

    6
  • sugar
    苹果公司的logo与图灵无关(这个梗来自于图灵因同性恋被迫害后自杀是通过食用浸有氰化物的苹果,所以有人猜乔帮主是为了向他致敬),但是读过乔布斯传的朋友都知道,史蒂夫在自传中亲口否认了大家的猜想。真实的原因是帮主早年坚持素食主义时曾长期以苹果为主食,麦金塔电脑的macintosh一词就是苹果的一个品种。

    作者回复: 收到。谢谢分享!

    3
  • 漂流
    感谢老师,虽然我今天才补完整个课程,并且其中几个章节可能需要 n 次回顾,但是这门课程已经超出我的预期了。 我习惯看完整的东西,这门可也是上周才开始看的,所以并没有一直追更新,这会失去每章互动的乐趣,但得到了连贯的整体思路,这就是选择的一得一失吧。在看之前其实我一直担心课程与龙虎书一样让人无法看下去(我看了大概三章,在语义分析附近就放弃了),但这门课已经带我走完了整个编译过程,并且对每个子过程都有或简单或详细的描述和案例,这已经超出了我的预期。 我曾经自学本科的计算机大部分课程以达到学会编程的目的,目前也在以编程为工作并以此为乐,玩编程的人好奇心都非常重,每每碰到不懂的地方都想把它挖掘清楚,比如看源码实现从框架一直追到 std 的各平台差异,从用别人的框架到自己实现并应用与公司的生产项目,而编译原理一直是心中的痛点之一,一直想搞明白这里面到底是怎么运作的。实际上,不懂编译原理的我在很多地方已经使用了编译前端的技术,比如状态机、字符串解析等等。 写到最后,我也不知道我想表达什么,但感谢必须再次提及,万分感谢。

    作者回复: 谢谢你用心写这么多留言表达自己的感受! 我跟你也有相同的感受。我们学计算机,本能的就想把相关的技术点搞透,否则就觉得是在糊弄自己。能把过去拦住自己的知识点啃下来,会很有成就感。 我和极客时间会继续在编译原理这个领域耕耘,产出更多的好内容,让更多同学收益!

    3
  • 崔伟协
    看完这篇文章,一二季看完了,已成为golang compiler的contributor,有接近10个pr被merge了,当然我以前就有基础的,科班出身,老师的课对我帮助很大

    作者回复: Great,优秀! 多积累一些经验,后面可以参与国内的编译器和语言项目!

    2
  • Geek_9c3134
    老师能讲讲 Chez Scheme编译器吗 为什么设计的好

    作者回复: 在Lisp的世界里,对Chez Scheme还是很推崇的。由于Lisp/Scheme很强的元编程能力,它可以用很简短的方式别的语言用很长的代码才能实现的功能,这是用它写编译器的优势之一。在《编译原理实战课》中,你可以看到Julia的前端功能也是用Lisp来实现的。 另外,美国印第安纳大学的R. Kent Dybvig教授等人发明了一个叫做Nano Pass的技术,把编译过程分解成很多个小的Pass,每个小Pass只完成一项简单的事情,从而让编译器的模块化程度更高。这也是Chez Scheme中采用的技术。在https://github.com/nanopass/nanopass-framework-scheme页面,你能找到几篇论文。这几篇论文值得一读。 好消息是,Chez Scheme已经开源了,所以我们可以研究它的代码。 不过坏消息是,你要习惯看Lisp格式的代码才行。并且,虽然很多语言都受到了Lisp语言的启发,但Lisp本身的社区还是比较小,所以讨论Chez Scheme编译器的资料也就比较少。这使得我到现在还没有足够的动力去研究它。 不过,由于Chez Cheme完全实现了一个自己的后端,没有借助LLVM,所以在增加后端技术的见识方面,会有好处。当然,同样的还有方舟编译器的代码值得借鉴。

    2
  • brian
    懵懵懂懂看完全部了,感谢老师,让我入门了计算机核心地位的编译原理技术,期待老师出新作!

    作者回复: 假以时日,从懵懵懂懂逐步会变得门儿清,技术能力也就会脱胎换骨。 下一季马上会推出,会去实际考察好多个编译器的具体实现,让理论和实践互相印证。

    2
  • milley
    感谢老师,第一遍了解一些概念,值得再刷二遍三遍

    作者回复: 你能完整的刷完一遍,就很值得给你点赞! 如果多琢磨几遍,再动动手,你就要成为insider啦!

    2
  • 邙山
    科技是冰冷的,人是有温度的。 看了这文章能感受拳拳之心的跳动,共勉

    作者回复: 共勉!

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