手把手带你写一门编程语言- 极客时间课程推荐/优惠

手把手带你写一门编程语言--极客时间课程推荐/优惠

从0到1,实现自己的编程语言
宫文学北京原点代码CEO
专栏 | 49讲 | 7880人已学习
优惠价¥59原价:129
官网优惠购买

版权声明

本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。

课程详情

你将获得

  • 一套实用的现代计算机语言架构;
  • 自顶向下搞懂计算机底层技术;
  • 系统级软件开发的高维思考;
  • 理解计算机语言的核心逻辑。

课程介绍

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

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

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

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

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

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

我们这门课注重实践,宫文学老师会针对我们要开发的计算机语言,采取最合适的实现技术,并告诉你选择这个技术路线的原因和相关背景知识,兼顾原理与实战。

此外,我们这门课高度仿真一个真实的计算机语言开发项目,一门语言其实可以有多个具体实现,以适用不同的场景,宫老师要带你做的是TypeScript的一个全新的实现。它具有编译成原生应用的潜力,好上手,也顺应了HarmonyOS的趋势,将来你也可以拿着它做更多的尝试。

课程模块设计

课程主体划分为以下4大模块。

  • 起步篇:让一门超简洁的语言跑起来。在这一模块,我们让你对编译器前端到后端、从编译到运行有一个全局式的理解,把这门语言最基本的框架搭起来。
  • 进阶篇:让我们的语言更实用。这一模块,我们会逐步支持更多的数据类型,你还会学到面向对象编程特性和函数式编程特性,丰富知识面以解决更多基础技术问题。
  • 优化篇:让程序的性能更高。这一模块,我们主要介绍一下优化技术,包括Java、JavaScript等语言所采用的前沿优化技术,让你洞悉它们最深处的奥秘,有能力去承担开发平台项目等攻坚性的任务。
  • 展望篇:实现自主语言的征途。这一模块,我们会展望一些更高级的语言特性,比如并发、自举等,让你理解更高阶的思路和实现方法。

课程目录

开篇词

  • 开篇词|让我们来写一门计算机语言吧
  • 课前热身|开始学习之前我们要准备什么?

起步篇:让一门超简单的语言跑起来

  • 01|实现一门超简单的语言最快需要多久?
  • 02|词法分析:识别Token也可以很简单吗?
  • 03|支持表达式:解析表达式和解析语句有什么不同?
  • 04|如何让我们的语言支持变量和类型?
  • 05|函数实现:是时候让我们的语言支持函数和返回值了
  • 06|怎么支持条件语句和循环语句?
  • 07|怎么设计属于我们自己的虚拟机和字节码?
  • 08|基于TypeScript的虚拟机(一):实现一个简单的栈机
  • 09|基于TypeScript的虚拟机(二):丰富特性,支持跳转语句
  • 10|基于C语言的虚拟机(一):实现一个简单的栈机
  • 11|基于C语言的虚拟机(二):性能增长10倍的秘密
  • 12|物理机上程序运行的硬件环境是怎么样的?
  • 13|物理机上程序运行的软件环境是怎么样的?
  • 14|汇编代码学习(一):熟悉CPU架构和指令集
  • 15|汇编语言学习(二):熟悉X86汇编代码
  • 16|生成本地代码第1关:先把基础搭好
  • 17|生成本地代码第2关:变量存储、函数调用和栈帧维护
  • 18|生成本地代码第3关:实现完整的功能
  • 19|怎么实现一个更好的寄存器分配算法:原理篇
  • 20|怎么实现一个更好的寄存器分配算法:实现篇
  • 21|加深对栈的理解:实现尾递归和尾调用优化

进阶篇:让我们的语言更实用

  • 22|增强编译器前端功能第1步:再识数据流分析技术
  • 23|增强编译器前端功能第2步:增强类型体系
  • 24|增强编译器前端功能第3步:全面的集合运算
  • 25|增强编译器前端功能第4步:综合运用多种语义分析技术
  • 26|增强更丰富的类型第1步:如何支持浮点数?
  • 27|增加更丰富的类型第2步:如何支持字符串?
  • 28|增加更丰富的类型第3步:支持数组
  • 29|面向对象编程第1步:先把基础搭好
  • 30|面向对象编程第2步:剖析一些技术细节
  • 31|面向对象编程第3步:支持继承和多态
  • 32|函数式编程第1关:实现高阶函数
  • 33|函数式编程第2关:实现闭包特性
  • 34|内存管理第1关:Arena技术和元数据
  • 35|内存管理第2关:实现垃圾回收

期中测试

  • 期中测试|快来检验你在起步篇的学习成果吧

用户分享

  • “他山之石”|Sugar:这门课你可以试试这么学

不定时加餐

  • “屠龙之秘”|实现计算机语言这样的技术能用在哪里?(一)

优化篇:让程序的性能更高

  • 36|节点之海:怎么生成基于图的IR?
  • 37 | 从AST到IR:体会数据流和控制流思维
  • 38|中端优化第1关:实现多种本地优化
  • 39|中端优化第2关:全局优化要怎么搞?
  • 40|中端优化第3关:一起来挑战过程间优化
  • 41|后端优化:生成LIR和指令选择

展望篇:实现自主语言的征途

  • 42|到这里,我们的收获和未尽的工作有哪些?
  • 期末考试|实现编程语言这些核心知识点,你掌握得咋样了?

结束语

  • 结束语|等待你大展身手的那些领域

作者介绍

宫文学,北京原点代码CEO,连续创业者,2016年入选厦门市第九批“双百计划”领军型创业人才。他是国内最早做BPM(流程管理平台)和BI平台(大数据平台)的创业者之一,之后也做过电子表单和快速开发平台,这些经历都与编译技术密不可分。

作者其他课程

编译原理实战课 - 极客时间课程推荐/分享/优惠/折扣
编译原理实战课
带你吃透编译技术核心概念与算法
宫文学北京原点代码CEO
专栏 | 26593人已学习
优惠价¥59原价:129
官网优惠购买
编译原理之美 - 极客时间课程推荐/分享/优惠/折扣
编译原理之美
手把手教你实现一个编译器
宫文学北京原点代码CEO
专栏 | 46905人已学习
优惠价¥59原价:129
官网优惠购买

推荐

罗剑锋的C++实战笔记 - 极客时间课程推荐/分享/优惠/折扣
罗剑锋的C++实战笔记
20年老兵心法,让C++不再难学
罗剑锋前奇虎360技术专家,Nginx/OpenResty开源项目贡献者
专栏 | 36385人已学习
优惠价¥59原价:129
官网优惠购买
Flink核心技术与实战 - 极客时间课程推荐/分享/优惠/折扣
Flink核心技术与实战
系统掌握流数据处理必杀技
张利兵第四范式数据中台架构师,Apache Flink贡献者
视频课 | 16634人已学习
优惠价¥68原价:199
官网优惠购买
深入剖析Kubernetes - 极客时间课程推荐/分享/优惠/折扣
深入剖析Kubernetes
Kubernetes原来可以如此简单
张磊Kubernetes社区资深成员与项目维护者
专栏 | 119982人已学习
优惠价¥68原价:199
官网优惠购买
AI数据分析课 - 极客时间课程推荐/分享/优惠/折扣
AI数据分析课
AIGC时代数据分析可以很简单
尹会生珠海太乙人工智能技术合伙人
视频课 | 1273人已学习
优惠价¥59原价:129
官网优惠购买
程序员的测试课 - 极客时间课程推荐/分享/优惠/折扣
程序员的测试课
掌握测试,写好高质量代码
郑晔开源项目 Moco 作者
专栏 | 19399人已学习
优惠价¥59原价:99
官网优惠购买
AI技术内参 - 极客时间课程推荐/分享/优惠/折扣
AI技术内参
你的360度人工智能信息助理
洪亮劼Etsy数据科学主管,前雅虎研究院资深科学家
专栏 | 34234人已学习
优惠价¥98原价:299
官网优惠购买