资源简介
每个程序员都或多或少掌握一门甚至多门编程语言,总是在用别人写的,你有没有在平平无奇的某一天里,突发奇想自己来写一门呢?
你可能没想过。毕竟能写一门计算机语言的都是顶级大牛,他们的脑袋和技术是我等普通程序员也能复现的吗?这也太难了!而且,也没啥用,投入产出比太低了。
你可能也想过。但面对编译技术、运行时技术、还有各种计算机语言特性这几座大山,真是“拔剑四顾心茫然”,太难爬了!更别提那些永远也赶不上新兴语言迭代速度的陈旧资料了。
停一下!其实这些问题根本就不是难以跨越的。当你砍掉凌乱的枝干,抓住主线,从原理出发专注语言的实现过程,会发现实现一门语言远比你想象要简单、有用。
这次,我们请来了跟我们极客时间合作过两季的宫文学老师,他长期专注于编译技术领域,熟悉各种语言编译器的实现机制,他会给你指明一条普通程序员也能实现一门编程语言的可行路径。
更重要的是,在这个过程中,宫文学老师会手把手地带着你洞穿编译技术、运行时技术、汇编语言、硬件架构和各种算法,帮助你自顶向下理解计算机技术的底层原理,全面提升自己的技术硬实力。
资源目录
——/计算机教程/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
谢谢
感谢分享
感谢分享
谢谢
JKSJ 宫文学 手把手带你写一门编程语言,感谢分享
感谢分享!
感谢分享
感谢分享
谢谢
感谢分享
来了
学习一下
很有意思
感谢分享
谢谢分享
好样的
编程语言
感谢分享
感谢分享
学习!!
学学怎么写编程语言
学习一下,谢谢分享
写自己的编程语言
感谢分享