27 | 课前导读:学习现代语言设计的正确姿势
宫文学
该思维导图由 AI 生成,仅供参考
你好,我是宫文学。
到目前为止,你就已经学完了这门课程中前两个模块的所有内容了。在第一个模块“预备知识篇”,我带你梳理了编译原理的关键概念、算法等核心知识点,帮你建立了一个直观的编译原理基础知识体系;在第二个模块“真实编译器解析篇”,我带你探究了 7 个真实世界的编译器,让你对编译器所实际采用的各种编译技术都有所涉猎。那么在接下来的第三个模块,我会继续带你朝着提高编译原理实战能力的目标前进。这一次,我们从计算机语言设计的高度,来印证一下编译原理的核心知识点。
对于一门完整的语言来说,编译器只是其中的一部分。它通常还有两个重要的组成部分:一个是运行时,包括内存管理、并发机制、解释器等模块;还有一个是标准库,包含了一些标准的功能,如算术计算、字符串处理、文件读写,等等。
再进一步来看,我们在实现一门语言的时候,首先要做的,就是确定这门语言所要解决的问题是什么,也就是需求问题;其次,针对需要解决的问题,我们要选择合适的技术方案,而这些技术方案正是分别由编译器、运行时和标准库去实现的。
所以,从计算机语言设计的高度来印证编译原理知识,我们也能更容易理解编译器的任务,更容易理解它是如何跟运行时环境去做配合的,这也会让你进一步掌握编译技术。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
学习现代语言设计的正确姿势 宫文学在本文中介绍了学习现代语言设计的正确姿势。他首先强调了编译原理的核心知识,以及编译器、运行时和标准库在实现一门语言时的重要性。他指出,实现一门计算机语言需要明确需求和设计,举例说明了JavaScript和Go语言的设计与需求匹配。文章强调了理解计算机语言设计思路的重要性,并承诺在第三个模块中深入探讨编译技术和相关技术的配合。通过本文,读者能够了解到实现一门计算机语言的关键因素,以及如何正确理解和应用现代语言设计的方法。 该模块的内容分为三个部分:编译器的前端、中端和后端技术对比与总结;语言的运行时和标准库的实现技术解析;计算机语言设计上的高级话题,包括元编程技术、泛型编程技术、面向对象语言的实现机制和函数式编程语言的实现机制。最后一讲将对方舟编译器进行综合检验,以检验所学知识。 通过学习本文,读者将对编译原理形成更全面的认知,从而提高将编译原理用于实战的能力。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《编译原理实战课》,新⼈⾸单¥59
《编译原理实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- Tino's Park请问老师如何看新语言中流行的柯里化,尾闭包特性?
作者回复: 柯里化是函数式编程的基础概念。如果一门语言支持函数式编程,那么它在内部一般会有柯里化的机制。至于在语法层面上使用柯里化,可以在把函数作为参数时省略一些参数,这会让某些代码变得更简洁(比如在给map函数传参时),但在另一些场景,会让使用变得别扭,因为它只能按照顺序省略参数。 你提到的尾闭包,指的是swift的trailing closure吧?这会让代码可读性变强,也是一种语法糖。你可以不用提供参数名称,也不用在一对圆括号()里嵌入花括号{}以及一堆代码。
2020-09-16
收起评论