资源简介
每个程序员都或多或少掌握一门甚至多门编程语言,总是在用别人写的,你有没有在平平无奇的某一天里,突发奇想自己来写一门呢?
你可能没想过。毕竟能写一门计算机语言的都是顶级大牛,他们的脑袋和技术是我等普通程序员也能复现的吗?这也太难了!而且,也没啥用,投入产出比太低了。
你可能也想过。但面对编译技术、运行时技术、还有各种计算机语言特性这几座大山,真是“拔剑四顾心茫然”,太难爬了!更别提那些永远也赶不上新兴语言迭代速度的陈旧资料了。
停一下!其实这些问题根本就不是难以跨越的。当你砍掉凌乱的枝干,抓住主线,从原理出发专注语言的实现过程,会发现实现一门语言远比你想象要简单、有用。
这次,我们请来了跟我们极客时间合作过两季的宫文学老师,他长期专注于编译技术领域,熟悉各种语言编译器的实现机制,他会给你指明一条普通程序员也能实现一门编程语言的可行路径。
更重要的是,在这个过程中,宫文学老师会手把手地带着你洞穿编译技术、运行时技术、汇编语言、硬件架构和各种算法,帮助你自顶向下理解计算机技术的底层原理,全面提升自己的技术硬实力。
资源目录
——/计算机教程/02极客时间/100085201-专栏课-宫文学-手把手带你写一门编程语言(完结)/ ├──01-开篇词(2讲) | ├──开篇词|让我们来写一门计算机语言吧.html 4.24M | ├──开篇词|让我们来写一门计算机语言吧.m4a 12.69M | ├──开篇词|让我们来写一门计算机语言吧.pdf 6.83M | ├──课前热身|开始学习之前我们要准备什么?.html 1.31M | ├──课前热身|开始学习之前我们要准备什么?.m4a 11.44M | └──课前热身|开始学习之前我们要准备什么?.pdf 1.32M ├──02-起步篇:让一门超简单的语言跑起来(2讲) | ├──01|实现一门超简单的语言最快需要多久?.html 2.18M | ├──01|实现一门超简单的语言最快需要多久?.m4a 12.32M | ├──01|实现一门超简单的语言最快需要多久?.pdf 2.62M | ├──02|词法分析:识别Token也可以很简单吗?.html 2.38M | ├──02|词法分析:识别Token也可以很简单吗?.m4a 14.70M | ├──02|词法分析:识别Token也可以很简单吗?.pdf 2.76M | ├──03|支持表达式:解析表达式和解析语句有什么不同?.html 2.00M | ├──03|支持表达式:解析表达式和解析语句有什么不同?.m4a 11.43M | ├──03|支持表达式:解析表达式和解析语句有什么不同?.pdf 2.89M | ├──04|如何让我们的语言支持变量和类型?.html 2.33M | ├──04|如何让我们的语言支持变量和类型?.m4a 13.75M | ├──04|如何让我们的语言支持变量和类型?.pdf 2.07M | ├──05|函数实现:是时候让我们的语言支持函数和返回值了.html 2.33M | ├──05|函数实现:是时候让我们的语言支持函数和返回值了.m4a 11.01M | ├──05|函数实现:是时候让我们的语言支持函数和返回值了.pdf 1.65M | ├──06|怎么支持条件语句和循环语句?.html 2.23M | ├──06|怎么支持条件语句和循环语句?.m4a 12.63M | ├──06|怎么支持条件语句和循环语句?.pdf 2.87M | ├──07|怎么设计属于我们自己的虚拟机和字节码?.html 1.92M | ├──07|怎么设计属于我们自己的虚拟机和字节码?.m4a 14.06M | ├──07|怎么设计属于我们自己的虚拟机和字节码?.pdf 2.76M | ├──08|基于TypeScript的虚拟机(一):实现一个简单的栈机.html 2.85M | ├──08|基于TypeScript的虚拟机(一):实现一个简单的栈机.m4a 13.52M | ├──08|基于TypeScript的虚拟机(一):实现一个简单的栈机.pdf 4.24M | ├──09|基于TypeScript的虚拟机(二):丰富特性,支持跳转语句.html 2.39M | ├──09|基于TypeScript的虚拟机(二):丰富特性,支持跳转语句.m4a 9.26M | ├──09|基于TypeScript的虚拟机(二):丰富特性,支持跳转语句.pdf 3.27M | ├──10丨基于C语言的虚拟机(一):实现一个简单的栈机.html 4.08M | ├──10丨基于C语言的虚拟机(一):实现一个简单的栈机.m4a 11.61M | ├──10丨基于C语言的虚拟机(一):实现一个简单的栈机.pdf 3.75M | ├──11丨基于C语言的虚拟机(二):性能增长10倍的秘密.html 2.01M | ├──11丨基于C语言的虚拟机(二):性能增长10倍的秘密.m4a 11.11M | ├──11丨基于C语言的虚拟机(二):性能增长10倍的秘密.pdf 3.05M | ├──12丨物理机上程序运行的硬件环境是怎么样的?.html 1.80M | ├──12丨物理机上程序运行的硬件环境是怎么样的?.m4a 14.74M | ├──12丨物理机上程序运行的硬件环境是怎么样的?.pdf 2.66M | ├──13丨物理机上程序运行的软件环境是怎么样的?.html 2.19M | ├──13丨物理机上程序运行的软件环境是怎么样的?.m4a 13.69M | ├──13丨物理机上程序运行的软件环境是怎么样的?.pdf 1.68M | ├──14丨汇编代码学习(一):熟悉CPU架构和指令集.html 2.56M | ├──14丨汇编代码学习(一):熟悉CPU架构和指令集.m4a 15.69M | ├──14丨汇编代码学习(一):熟悉CPU架构和指令集.pdf 3.93M | ├──15丨汇编语言学习(二):熟悉X86汇编代码.html 3.01M | ├──15丨汇编语言学习(二):熟悉X86汇编代码.m4a 14.46M | ├──15丨汇编语言学习(二):熟悉X86汇编代码.pdf 5.21M | ├──16丨生成本地代码第1关:先把基础搭好.html 1.66M | ├──16丨生成本地代码第1关:先把基础搭好.m4a 12.88M | ├──16丨生成本地代码第1关:先把基础搭好.pdf 1.75M | ├──17丨生成本地代码第2关:变量存储、函数调用和栈帧维护.html 2.84M | ├──17丨生成本地代码第2关:变量存储、函数调用和栈帧维护.m4a 14.50M | ├──17丨生成本地代码第2关:变量存储、函数调用和栈帧维护.pdf 3.97M | ├──18丨生成本地代码第3关:实现完整的功能.html 2.43M | ├──18丨生成本地代码第3关:实现完整的功能.m4a 9.17M | ├──18丨生成本地代码第3关:实现完整的功能.pdf 2.36M | ├──19丨怎么实现一个更好的寄存器算法:原理篇.html 3.04M | ├──19丨怎么实现一个更好的寄存器算法:原理篇.m4a 10.68M | ├──19丨怎么实现一个更好的寄存器算法:原理篇.pdf 4.77M | ├──20|怎么实现一个更好的寄存器分配算法:实现篇.html 2.82M | ├──20|怎么实现一个更好的寄存器分配算法:实现篇.m4a 14.68M | ├──20|怎么实现一个更好的寄存器分配算法:实现篇.pdf 2.63M | ├──21|加深对栈的理解:实现尾递归和尾调用优化.html 2.73M | ├──21|加深对栈的理解:实现尾递归和尾调用优化.m4a 11.67M | └──21|加深对栈的理解:实现尾递归和尾调用优化.pdf 1.94M ├──03-进阶篇:让我们的语言更实用 (2讲) | ├──22丨增强编译器前端功能第1步:再识数据流分析技术.html 2.28M | ├──22丨增强编译器前端功能第1步:再识数据流分析技术.m4a 13.24M | ├──22丨增强编译器前端功能第1步:再识数据流分析技术.pdf 2.55M | ├──23丨增强编译器前端功能第2步:增强类型体系.html 3.34M | ├──23丨增强编译器前端功能第2步:增强类型体系.m4a 13.38M | ├──23丨增强编译器前端功能第2步:增强类型体系.pdf 3.63M | ├──24丨增强编译器前端功能第3步:全面的集合运算.html 2.68M | ├──24丨增强编译器前端功能第3步:全面的集合运算.m4a 15.98M | ├──24丨增强编译器前端功能第3步:全面的集合运算.pdf 2.78M | ├──25丨增强编译器前端功能第4步:综合运用多种语义分析技术.html 2.55M | ├──25丨增强编译器前端功能第4步:综合运用多种语义分析技术.m4a 11.95M | ├──25丨增强编译器前端功能第4步:综合运用多种语义分析技术.pdf 2.55M | ├──26丨增强更丰富的类型第1步:如何支持浮点数?.html 4.66M | ├──26丨增强更丰富的类型第1步:如何支持浮点数?.m4a 17.37M | ├──26丨增强更丰富的类型第1步:如何支持浮点数?.pdf 4.03M | ├──27丨增加更丰富的类型第2步:如何支持字符串?.html 3.20M | ├──27丨增加更丰富的类型第2步:如何支持字符串?.m4a 15.64M | ├──27丨增加更丰富的类型第2步:如何支持字符串?.pdf 3.05M | ├──28丨增加更丰富的类型第3步:支持数组.html 4.50M | ├──28丨增加更丰富的类型第3步:支持数组.m4a 14.20M | ├──28丨增加更丰富的类型第3步:支持数组.pdf 4.05M | ├──29|面向对象编程第1步:先把基础搭好.html 2.82M | ├──29|面向对象编程第1步:先把基础搭好.m4a 10.28M | ├──29|面向对象编程第1步:先把基础搭好.pdf 2.97M | ├──30|面向对象编程第2步:剖析一些技术细节.html 2.56M | ├──30|面向对象编程第2步:剖析一些技术细节.m4a 11.46M | ├──30|面向对象编程第2步:剖析一些技术细节.pdf 2.82M | ├──31|面向对象编程第2步:支持继承和多态.html 4.13M | ├──31|面向对象编程第2步:支持继承和多态.m4a 16.68M | ├──31|面向对象编程第2步:支持继承和多态.pdf 3.69M | ├──32丨函数式编程第1关:实现高阶函数.html 2.83M | ├──32丨函数式编程第1关:实现高阶函数.m4a 8.94M | ├──32丨函数式编程第1关:实现高阶函数.pdf 2.98M | ├──33丨函数式编程第2关:实现闭包特性.html 2.17M | ├──33丨函数式编程第2关:实现闭包特性.m4a 11.85M | ├──33丨函数式编程第2关:实现闭包特性.pdf 1.56M | ├──34丨内存管理第1关:Arena技术和元数据.html 2.94M | ├──34丨内存管理第1关:Arena技术和元数据.m4a 11.10M | ├──34丨内存管理第1关:Arena技术和元数据.pdf 3.91M | ├──35丨内存管理第2关:实现垃圾回收.html 3.66M | ├──35丨内存管理第2关:实现垃圾回收.m4a 10.51M | └──35丨内存管理第2关:实现垃圾回收.pdf 2.52M ├──04-期中测试 (1讲) | ├──期中测试丨快来检验你在起步篇的学习成果吧.html 1.55M | ├──期中测试丨快来检验你在起步篇的学习成果吧.m4a 529.61kb | └──期中测试丨快来检验你在起步篇的学习成果吧.pdf 725.47kb ├──05-用户分享 (1讲) | ├──“它山之石”丨Sugar:这门课你可以试试这么学.html 1.64M | ├──“它山之石”丨Sugar:这门课你可以试试这么学.m4a 13.29M | └──“它山之石”丨Sugar:这门课你可以试试这么学.pdf 2.08M ├──06-不定时加餐 (1讲) | ├──“屠龙之秘”丨实现计算机语言这样的技术能用在哪里?(一).m4a 13.62M | └──“屠龙之秘”丨实现计算机语言这样的技术能用在哪里?(一).pdf 2.33M ├──07-优化篇:让程序的性能更高(1讲) | ├──36丨节点之海:怎么生成基于图的IR?.html 2.54M | ├──36丨节点之海:怎么生成基于图的IR?.m4a 15.06M | ├──36丨节点之海:怎么生成基于图的IR?.pdf 2.86M | ├──37丨从AST到IR:体会数据流和控制流思维.html 1.94M | ├──37丨从AST到IR:体会数据流和控制流思维.m4a 12.54M | ├──37丨从AST到IR:体会数据流和控制流思维.pdf 2.72M | ├──38丨中端优化第1关:实现多种本地优化.html 2.75M | ├──38丨中端优化第1关:实现多种本地优化.m4a 11.04M | ├──38丨中端优化第1关:实现多种本地优化.pdf 3.65M | ├──39丨中端优化第2关:全局优化要怎么搞?.html 2.54M | ├──39丨中端优化第2关:全局优化要怎么搞?.m4a 10.48M | ├──39丨中端优化第2关:全局优化要怎么搞?.pdf 2.89M | ├──40丨中端优化第3关:一起来挑战过程间优化.html 1.92M | ├──40丨中端优化第3关:一起来挑战过程间优化.m4a 11.17M | ├──40丨中端优化第3关:一起来挑战过程间优化.pdf 1.86M | ├──41丨后端优化:生成LIR和指令选择.html 3.50M | ├──41丨后端优化:生成LIR和指令选择.m4a 13.40M | └──41丨后端优化:生成LIR和指令选择.pdf 3.48M ├──08-展望篇:实现自主语言的征途(1讲) | ├──42丨到这里,我们的收获和未尽的工作有哪些?.html 1.50M | ├──42丨到这里,我们的收获和未尽的工作有哪些?.m4a 14.03M | └──42丨到这里,我们的收获和未尽的工作有哪些?.pdf 1.78M └──09-结束语 | ├──结束语丨等待你大展身手的那些领域.html 3.84M | ├──结束语丨等待你大展身手的那些领域.m4a 10.37M | └──结束语丨等待你大展身手的那些领域.pdf 4.42M
感谢分享
感谢分享
感谢分享,学习学习
感谢分享
感谢分享
感谢分享
学习一下
感谢分享
感谢分享
感谢分享
感谢分享
感谢分享
感谢分享
学习
感谢分享
学起来
感谢分享
感谢分享
好好学习
学习
感谢分享
感谢分享
谢谢分享
谢谢分享
懵逼
学习
学习一下语言的本质,最近学的语言有点多,正好需要这门课梳理一下
大佬啊
感谢分享
感谢分享
感谢分享
编译原理实战的姐妹篇?
感谢分享
看起来这个课程难度是不是比较高呀
谢谢分享
感谢分享,学习一下
感谢分享
学起来
感谢分享,学习一下
这个厉害了,设计语言的
感谢分享
谢谢分享
感谢分享
感谢分享
学到了
感谢分享
感谢分享
高端
感谢分享
库