极客时间 宫文学 手把手带你写一门编程语言(完结)

资源简介

每个程序员都或多或少掌握一门甚至多门编程语言,总是在用别人写的,你有没有在平平无奇的某一天里,突发奇想自己来写一门呢?

你可能没想过。毕竟能写一门计算机语言的都是顶级大牛,他们的脑袋和技术是我等普通程序员也能复现的吗?这也太难了!而且,也没啥用,投入产出比太低了。

你可能也想过。但面对编译技术、运行时技术、还有各种计算机语言特性这几座大山,真是“拔剑四顾心茫然”,太难爬了!更别提那些永远也赶不上新兴语言迭代速度的陈旧资料了。

停一下!其实这些问题根本就不是难以跨越的。当你砍掉凌乱的枝干,抓住主线,从原理出发专注语言的实现过程,会发现实现一门语言远比你想象要简单、有用。

这次,我们请来了跟我们极客时间合作过两季的宫文学老师,他长期专注于编译技术领域,熟悉各种语言编译器的实现机制,他会给你指明一条普通程序员也能实现一门编程语言的可行路径。

更重要的是,在这个过程中,宫文学老师会手把手地带着你洞穿编译技术、运行时技术、汇编语言、硬件架构和各种算法,帮助你自顶向下理解计算机技术的底层原理,全面提升自己的技术硬实力。

《极客时间 宫文学 手把手带你写一门编程语言(完结)》

资源目录

——/计算机教程/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

资源下载

抱歉,只有登录并在本文发表评论才能阅读隐藏内容,切记不要恶意刷评论白嫖资源,评论前切记阅读用户规则,一旦进入黑名单,不可能再放出来。同时注意,暂停在线支付,请联系客服QQ267286513。
  1. 树袋熊的卤蛋说道:

    感谢分享

  2. tinycoder说道:

    学学怎么写编程语言 :eek:

  3. zhaorui说道:

    学习一下,谢谢分享

  4. 1161048063说道:

    写自己的编程语言

  5. Kotori说道:

    感谢分享

  6. 天天向上说道:

    感谢分享

发表评论