89 lines
7.1 KiB
Markdown
89 lines
7.1 KiB
Markdown
# 编译原理实战课
|
||
|
||
## 你将获得
|
||
|
||
* 编译原理的核心基础知识
|
||
* 7 大主流语言的编译器源码解读
|
||
* 真实编译器的实现机制与关键算法
|
||
* 从编程语言设计层面理解编译原理
|
||
|
||
|
||
|
||
## 讲师介绍
|
||
|
||
宫文学,[《编译原理之美》](https://time.geekbang.org/column/intro/219?utm_term=zeusJSBTL&utm_source=app&utm_medium=geektime&utm_campaign=219-end&utm_content=zhuanlanxiangqingye0601)课程作者,北京原点代码CEO。他是国内最早做BPM(流程管理平台)和BI平台(大数据平台)的创业者之一,之后也做过电子表单和快速开发平台,这些经历都与编译技术密不可分。他非常熟悉各种语言编译器的实现机制,专注于编译技术领域,并且正在设计一门新语言,在编译技术之路上具有丰富的实践经验。
|
||
|
||
|
||
|
||
## 课程介绍
|
||
|
||
**编译原理实战课,我们到底要学些什么?**
|
||
|
||
在这门课程里,宫老师精选出了Java、Java JIT、Python、JavaScript、Julia、Go、MySQL这7种真实编程语言的编译器,带你阅读它们的源代码,跟踪它们的执行过程,弄懂它们的运行机制。在这个过程中,你会获得对编译器的第一手理解,并能够与自己理解的编译原理知识相互印证。
|
||
|
||
另外,宫老师还会带你分析和总结这些现代语言的编译器的结构、所采用的算法和设计思路,帮你更好地理解和把握一门现代语言的特性,让你对新一代语言的设计思考有拨云见日的通透感。
|
||
|
||
**有些语言我都没接触过,解析这些编译器,我能学得会吗?我学了又有什么用呢?**
|
||
|
||
1. **能学得会吗?**
|
||
|
||
当然可以了。在课程中,宫老师会梳理出这些不同语言编译器的源代码的重点和核心逻辑,并且会结合易懂、易读、易动手操作的示例程序,来带你一步步理解它们是如何运行的。
|
||
|
||
另外,其实你并不需要担心语言不熟悉的问题,因为现代的高级语言,相似度是很高的,即使是你不熟悉的语言,你也照样可以写一些基本的、试验性的程序,研究它的实现机制。
|
||
|
||
而且,学习编译原理的人会练就一项基本功,那就是更容易掌握一门语言的本质。我们这门课就是要帮你成为钻到铁扇公主肚子里的孙悟空,研究某一种语言的编译器,当然有助于你通过“捷径”去深入地理解这门语言。
|
||
|
||
2. **学了有什么用?**
|
||
|
||
学好编译器前端技术,你能为软件增加各种自定义功能、能够实现自己的DSL,甚至实现完整的前端解析器(比如SQL解析器); 学好编译器后端技术,你能写出更容易优化的代码,洞悉让代码性能更高的秘密,以及采用后端工具快速实现一门完整的语言。
|
||
|
||
不仅如此,通过分析真实编译器的代码,你能洞悉实现一个完整编译器的各种细节。当你把编译技术用于一个项目时,你就会了然于胸,应该在什么地方使用什么样的技术。因为你已经见识过了各种编译器的实现方式,因此能够权衡和取舍。对你而言,编译原理,不再仅仅是原理,而是随时可以出击的利剑!
|
||
|
||
**这个课程和之前宫老师的《编译原理之美》专栏课有什么区别?**
|
||
|
||
《编译原理之美》专栏课是从前端与后端两个层面来讲解编译原理的核心技术点,用具体的案例带你理解抽象的原理。宫老师说,这门课是带你在编译原理的世界里“**读万卷书**”,目的就是帮你一次性掌握编译原理最核心的概念、理论和算法。通过这门课,你能真正克服学习编译原理的畏难情绪,可以真正运用编译技术解决报表设计等实际问题。
|
||
|
||
《编译原理实战课》是从实战的角度切入,是学习编译原理的“**行万里路**”,老师会用你最擅长的写代码、读代码的方式,来带你分析真实的编译器到底是怎么写出来的。通过研究多种编译器,你可以多次迭代对编译器的认知过程。并通过分析对比,你能发现这些编译器之间的异同点,激发出更多的思考,从而能得到更全面的、更深入的认知。在解析编译器的过程中,你也能更深入地把编译原理知识与实践相结合。
|
||
|
||
### 课程模块设计
|
||
|
||
课程主体分为三个模块。
|
||
|
||
**预备知识篇:**简明扼要地梳理编译过程中各个阶段的主要工作,带你重温编译原理的知识体系,让你对这些关键概念的理解变得更加清晰。在这个过程中,你也能更好地建立具体实现跟原理之间的关联,互相印证。
|
||
|
||
**真实编译器解析篇:**带你研究Java、Java JIT、Python等7种语言编译器的源代码,跟踪它们的运行过程,分析编译过程的每一步是如何实现的,并会对有特点的编译技术点加以分析和点评,以此帮你吃透现代语言的核心特性,直接提高你的技术水平,让你更高效地学习编译原理知识。
|
||
|
||
**现代语言设计篇:**带你分析和总结前面研究过的7种真实语言的编译器,进一步提升你对相关编译技术的认知高度,让你对如何设计编译器的前端、中端、后端、运行时,都有比较全面的了解,知道如何在不同的技术路线之间做取舍。
|
||
|
||
|
||
|
||
## 课程目录
|
||
|
||
[![](https://static001.geekbang.org/resource/image/7f/8f/7fce81d4f7f969yy7593972b6e6a048f.jpg)](https://shop18793264.m.youzan.com/wscgoods/detail/2ou1v6u4vq4k8rv?dc_ps=2899964955380117504.200001)
|
||
|
||
|
||
|
||
## 特别放送
|
||
|
||
#### 免费领取福利
|
||
|
||
[![](https://static001.geekbang.org/resource/image/69/dc/69c52d08278a2164dc5b061ba342a5dc.jpg?wh=960x301)](https://time.geekbang.org/article/427012)
|
||
|
||
|
||
|
||
#### 限时活动推荐
|
||
|
||
[![](https://static001.geekbang.org/resource/image/67/a0/6720f5d50b4b38abbf867facdef728a0.png?wh=1035x360)](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?dc_ps=2913145716543073286.200001)
|
||
|
||
|
||
|
||
## 订阅须知
|
||
|
||
1. 订阅成功后,推荐通过“极客时间”App端、Web端学习。
|
||
2. 本专栏为虚拟商品,交付形式为图文+音频,一经订阅,概不退款。
|
||
3. 订阅后分享海报,每邀一位好友订阅有现金返现。
|
||
4. 戳此[先充值再购课更划算](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?scan=1&activity=none&from=kdt&qr=directgoods_1541158976&shopAutoEnter=1),还有最新课表、超值赠品福利。
|
||
5. 企业采购推荐使用“[极客时间企业版](https://b.geekbang.org/?utm_source=geektime&utm_medium=columnintro&utm_campaign=newregister&gk_source=2021020901_gkcolumnintro_newregister)”便捷安排员工学习计划,掌握团队学习仪表盘。
|
||
6. 戳此[申请学生认证](https://promo.geekbang.org/activity/student-certificate?utm_source=geektime&utm_medium=caidanlan1),订阅课程享受原价5折优惠。
|
||
7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。
|