极客时间出品的专栏课《编译原理实战课》作者宫文学,新客首单到手价59元,现免费分享。
课程介绍
《编译原理实战课》是一门深入剖析真实编译器源代码的课程,旨在帮助学生通过实战的方式掌握编译原理的核心知识。在这门课程中,宫老师精选了Java、Python等多种现代编程语言的编译器,通过引导学生阅读源代码、跟踪执行过程,深入理解编译器的运行机制。这种实战的学习方式不仅能让学生获得对编译器的第一手理解,还能与自己学习的编译原理知识相互印证,加深理解。
学习过程中,无论学生对某些语言是否熟悉,都不会影响他们在课程中的学习和收获。因为宫老师会梳理出这些编译器源代码的重点和核心逻辑,并结合易懂、易读、易操作的示例程序,帮助学生逐步理解编译器的运行原理。同时,通过分析真实编译器的代码,学生可以洞悉实现一个完整编译器的各种细节,为将来在项目中应用编译技术打下坚实的基础。此外,学习编译原理还能帮助学生更容易掌握一门语言的本质,通过深入研究某一种语言的编译器,学生能够更加深入地理解这门语言的特性和设计思路。
与之前的《编译原理之美》专栏课相比,这门实战课更注重从实战的角度切入,通过写代码、读代码的方式,引导学生分析真实编译器的实现过程。课程分为三个模块:预备知识篇重温编译原理的关键概念,为实战解析做好铺垫;真实编译器解析篇深入剖析7种现代编程语言的编译器源代码,帮助学生吃透现代语言的核心特性;现代语言设计篇总结并提升学生对编译技术的认知高度,为将来的语言设计和编译器开发提供指导。通过这门课程的学习,学生将能够掌握编译原理的核心知识,并将其应用于实际项目中,提高代码的质量和性能。
课程目录
├── 00丨开篇词丨在真实世界的编译器中游历.pdf
├── 00丨学习指南丨如何学习这门编译原理实战课?.html
├── 00丨学习指南丨如何学习这门编译原理实战课?.m4a
├── 00丨学习指南丨如何学习这门编译原理实战课?.pdf
├── 01丨编译的全过程都悄悄做了哪些事情?.html
├── 01丨编译的全过程都悄悄做了哪些事情?.m4a
├── 01丨编译的全过程都悄悄做了哪些事情?.pdf
├── 02丨词法分析:用两种方式构造有限自动机.html
├── 02丨词法分析:用两种方式构造有限自动机.m4a
├── 02丨词法分析:用两种方式构造有限自动机.pdf
├── 03丨语法分析:两个基本功和两种算法思路.html
├── 03丨语法分析:两个基本功和两种算法思路.m4a
├── 03丨语法分析:两个基本功和两种算法思路.pdf
├── 04丨语义分析:让程序符合语义规则.html
├── 04丨语义分析:让程序符合语义规则.m4a
├── 04丨语义分析:让程序符合语义规则.pdf
├── 05丨运行时机制:程序如何运行,你有发言权.html
├── 05丨运行时机制:程序如何运行,你有发言权.m4a
├── 05丨运行时机制:程序如何运行,你有发言权.pdf
├── 06丨中间代码:不是只有一副面孔.html
├── 06丨中间代码:不是只有一副面孔.m4a
├── 06丨中间代码:不是只有一副面孔.pdf
├── 07丨代码优化:跟编译器做朋友,让你的代码飞起来.html
├── 07丨代码优化:跟编译器做朋友,让你的代码飞起来.m4a
├── 07丨代码优化:跟编译器做朋友,让你的代码飞起来.pdf
├── 08丨代码生成:如何实现机器相关的优化?.html
├── 08丨代码生成:如何实现机器相关的优化?.m4a
├── 08丨代码生成:如何实现机器相关的优化?.pdf
├── 09丨Java编译器(一):手写的编译器有什么优势?.html
├── 09丨Java编译器(一):手写的编译器有什么优势?.m4a
├── 09丨Java编译器(一):手写的编译器有什么优势?.pdf
├── 10丨Java编译器(二):语法分析之后,还要做些什么?.html
├── 10丨Java编译器(二):语法分析之后,还要做些什么?.m4a
├── 10丨Java编译器(二):语法分析之后,还要做些什么?.pdf
├── 11丨Java编译器(三):属性分析和数据流分析.html
├── 11丨Java编译器(三):属性分析和数据流分析.m4a
├── 11丨Java编译器(三):属性分析和数据流分析.pdf
├── 12丨Java编译器(四):去除语法糖和生成字节码.html
├── 12丨Java编译器(四):去除语法糖和生成字节码.m4a
├── 12丨Java编译器(四):去除语法糖和生成字节码.pdf
├── 13丨JavaJIT编译器(一):动手修改Graal编译器.html
├── 13丨JavaJIT编译器(一):动手修改Graal编译器.m4a
├── 13丨JavaJIT编译器(一):动手修改Graal编译器.pdf
├── 14丨JavaJIT编译器(二):SeaofNodes为何如此强大?.html
├── 14丨JavaJIT编译器(二):SeaofNodes为何如此强大?.m4a
├── 14丨JavaJIT编译器(二):SeaofNodes为何如此强大?.pdf
├── 15丨JavaJIT编译器(三):探究内联和逃逸分析的算法原理.html
├── 15丨JavaJIT编译器(三):探究内联和逃逸分析的算法原理.m4a
├── 15丨JavaJIT编译器(三):探究内联和逃逸分析的算法原理.pdf
├── 16丨JavaJIT编译器(四):Graal的后端是如何工作的?.html
├── 16丨JavaJIT编译器(四):Graal的后端是如何工作的?.m4a
├── 16丨JavaJIT编译器(四):Graal的后端是如何工作的?.pdf
├── 17丨Python编译器(一):如何用工具生成编译器?.html
├── 17丨Python编译器(一):如何用工具生成编译器?.m4a
├── 17丨Python编译器(一):如何用工具生成编译器?.pdf
├── 18丨Python编译器(二):从AST到字节码.html
├── 18丨Python编译器(二):从AST到字节码.m4a
├── 18丨Python编译器(二):从AST到字节码.pdf
├── 19丨Python编译器(三):运行时机制.html
├── 19丨Python编译器(三):运行时机制.m4a
├── 19丨Python编译器(三):运行时机制.pdf
├── 20丨JavaScript编译器(一):V8的解析和编译过程.html
├── 20丨JavaScript编译器(一):V8的解析和编译过程.m4a
├── 20丨JavaScript编译器(一):V8的解析和编译过程.pdf
├── 21丨JavaScript编译器(二):V8的解释器和优化编译器.html
├── 21丨JavaScript编译器(二):V8的解释器和优化编译器.m4a
├── 21丨JavaScript编译器(二):V8的解释器和优化编译器.pdf
├── 22丨Julia编译器(一):如何让动态语言性能很高?.html
├── 22丨Julia编译器(一):如何让动态语言性能很高?.m4a
├── 22丨Julia编译器(一):如何让动态语言性能很高?.pdf
├── 23丨Julia编译器(二):如何利用LLVM的优化和后端功能?.html
├── 23丨Julia编译器(二):如何利用LLVM的优化和后端功能?.m4a
├── 23丨Julia编译器(二):如何利用LLVM的优化和后端功能?.pdf
├── 24丨Go语言编译器:把它当作教科书吧.html
├── 24丨Go语言编译器:把它当作教科书吧.m4a
├── 24丨Go语言编译器:把它当作教科书吧.pdf
├── 25丨MySQL编译器(一):解析一条SQL语句的执行过程.html
├── 25丨MySQL编译器(一):解析一条SQL语句的执行过程.m4a
├── 25丨MySQL编译器(一):解析一条SQL语句的执行过程.pdf
├── 26丨MySQL编译器(二):编译技术如何帮你提升数据库性能?.html
├── 26丨MySQL编译器(二):编译技术如何帮你提升数据库性能?.m4a
├── 26丨MySQL编译器(二):编译技术如何帮你提升数据库性能?.pdf
├── 27丨课前导读:学习现代语言设计的正确姿势.html
├── 27丨课前导读:学习现代语言设计的正确姿势.m4a
├── 27丨课前导读:学习现代语言设计的正确姿势.pdf
├── 28丨前端总结:语言设计也有人机工程学.html
├── 28丨前端总结:语言设计也有人机工程学.m4a
├── 28丨前端总结:语言设计也有人机工程学.pdf
├── 29丨中端总结:不遗余力地进行代码优化.html
├── 29丨中端总结:不遗余力地进行代码优化.m4a
├── 29丨中端总结:不遗余力地进行代码优化.pdf
├── 30丨后端总结:充分发挥硬件的能力.html
├── 30丨后端总结:充分发挥硬件的能力.m4a
├── 30丨后端总结:充分发挥硬件的能力.pdf
├── 31丨运行时(一):从0到语言级的虚拟化.html
├── 31丨运行时(一):从0到语言级的虚拟化.m4a
├── 31丨运行时(一):从0到语言级的虚拟化.pdf
├── 32丨运技行时(二):垃圾收集与语言的特性有关吗?.html
├── 32丨运技行时(二):垃圾收集与语言的特性有关吗?.m4a
├── 32丨运技行时(二):垃圾收集与语言的特性有关吗?.pdf
├── 33丨并发中的编译技术(一):如何从语言层面支持线程?.html
├── 33丨并发中的编译技术(一):如何从语言层面支持线程?.m4a
├── 33丨并发中的编译技术(一):如何从语言层面支持线程?.pdf
├── 34丨并发中的编译技术(二):如何从语言层面支持协程?.html
├── 34丨并发中的编译技术(二):如何从语言层面支持协程?.m4a
├── 34丨并发中的编译技术(二):如何从语言层面支持协程?.pdf
├── 35丨并发中的编译技术(三):Erlang语言厉害在哪里?.html
├── 35丨并发中的编译技术(三):Erlang语言厉害在哪里?.m4a
├── 35丨并发中的编译技术(三):Erlang语言厉害在哪里?.pdf
├── 36丨高级特性(一):揭秘元编程的实现机制.html
├── 36丨高级特性(一):揭秘元编程的实现机制.m4a
├── 36丨高级特性(一):揭秘元编程的实现机制.pdf
├── 37丨高级特性(二):揭秘泛型编程的实现机制.html
├── 37丨高级特性(二):揭秘泛型编程的实现机制.m4a
├── 37丨高级特性(二):揭秘泛型编程的实现机制.pdf
├── 38丨综合实现(一):如何实现面向对象编程?.html
├── 38丨综合实现(一):如何实现面向对象编程?.m4a
├── 38丨综合实现(一):如何实现面向对象编程?.pdf
├── 39丨实战(三):如何实现地理信息的可视化?.m4a
├── 39丨综合实现(二):如何实现函数式编程?.html
├── 39丨综合实现(二):如何实现函数式编程?.pdf
├── 40丨成果检验:方舟编译器的优势在哪里?.html
├── 40丨成果检验:方舟编译器的优势在哪里?.m4a
├── 40丨成果检验:方舟编译器的优势在哪里?.pdf
├── 不定期加餐1丨远程办公,需要你我具备什么样的素质?.html
├── 不定期加餐1丨远程办公,需要你我具备什么样的素质?.m4a
├── 不定期加餐1丨远程办公,需要你我具备什么样的素质?.pdf
├── 不定期加餐2丨学习技术的过程,其实是训练心理素质的过程.html
├── 不定期加餐2丨学习技术的过程,其实是训练心理素质的过程.m4a
├── 不定期加餐2丨学习技术的过程,其实是训练心理素质的过程.pdf
├── 不定期加餐3丨这几年,打动我的两本好书.html
├── 不定期加餐3丨这几年,打动我的两本好书.m4a
├── 不定期加餐3丨这几年,打动我的两本好书.pdf
├── 不定期加餐4丨从身边的牛人身上,我学到的一些优秀品质.html
├── 不定期加餐4丨从身边的牛人身上,我学到的一些优秀品质.m4a
├── 不定期加餐4丨从身边的牛人身上,我学到的一些优秀品质.pdf
├── 划重点丨7种编译器的核心概念与算法.html
├── 划重点丨7种编译器的核心概念与算法.pdf
├── 结束语丨实战是唯一标准!.html
├── 结束语丨实战是唯一标准!.m4a
├── 结束语丨实战是唯一标准!.pdf
├── 期末答疑与总结丨再次审视学习编译原理的作用.html
├── 期末答疑与总结丨再次审视学习编译原理的作用.m4a
├── 期末答疑与总结丨再次审视学习编译原理的作用.pdf
├── 期末考试丨“编译原理实战课”100分试卷等你来挑战!.html
├── 期末考试丨“编译原理实战课”100分试卷等你来挑战!.pdf
├── 期中考试丨这些编译原理知识,你都掌握了吗?.html
├── 期中考试丨这些编译原理知识,你都掌握了吗?.pdf
├── 热点问题答疑丨如何吃透7种真实的编译器?.html
├── 热点问题答疑丨如何吃透7种真实的编译器?.m4a
├── 热点问题答疑丨如何吃透7种真实的编译器?.pdf
├── 用户故事丨易昊:程序员不止有Bug和加班,还有诗和远方.html
├── 用户故事丨易昊:程序员不止有Bug和加班,还有诗和远方.pdf
├── 知识地图丨一起来复习编译技术核心概念与算法.html
├── 知识地图丨一起来复习编译技术核心概念与算法.m4a
└── 知识地图丨一起来复习编译技术核心概念与算法.pdf
1 directory, 158 files
以上就是极客时间宫文学老师的专栏课《编译原理实战课》的详细介绍了。
本文由提供IT教程网提供,仅供学习交流使用,未经许可,禁止转载!
原课程地址:https://time.geekbang.org/column/intro/100052801,有能力的朋友请支持正版,谢谢!
评论(0)