You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
5.6 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 手把手带你写一门编程语言
## 你将获得
* 一套实用的现代计算机语言架构
* 自顶向下搞懂计算机底层技术
* 系统级软件开发的高维思考
* 理解计算机语言的核心逻辑
## 讲师介绍
宫文学,[《编译原理之美》](https://time.geekbang.org/column/intro/100034101)和[《编译原理实战》](https://time.geekbang.org/column/intro/100052801)课程作者北京原点代码CEO。
宫文学是国内最早做BPM流程管理平台和BI平台大数据平台的创业者之一还研发过电子表单和低代码开发平台。
他专注于编译技术领域熟悉各种语言编译器的实现机制在编译技术之路上具有丰富的实践经验。近期也在参与OpenHarmony的推广普及以及担任工业操作系统项目的专家。
## 课程介绍
每个程序员都或多或少掌握一门甚至多门编程语言,总是在用别人写的,你有没有在平平无奇的某一天里,突发奇想自己来写一门呢?
你可能没想过。毕竟能写一门计算机语言的都是顶级大牛,他们的脑袋和技术是我等普通程序员也能复现的吗?这也太难了!而且,也没啥用,投入产出比太低了。
你可能也想过。但面对编译技术、运行时技术、还有各种计算机语言特性这几座大山,真是“拔剑四顾心茫然”,太难爬了!更别提那些永远也赶不上新兴语言迭代速度的陈旧资料了。
停一下!其实这些问题根本就不是难以跨越的。当你砍掉凌乱的枝干,抓住主线,从原理出发专注语言的实现过程,会发现实现一门语言远比你想象要简单、有用。
这次,我们请来了跟我们极客时间合作过两季的宫文学老师,他长期专注于编译技术领域,熟悉各种语言编译器的实现机制,他会给你指明一条普通程序员也能实现一门编程语言的可行路径。
**更重要的是,在这个过程中,宫文学老师会手把手地带着你洞穿编译技术、运行时技术、汇编语言、硬件架构和各种算法,帮助你自顶向下理解计算机技术的底层原理,全面提升自己的技术硬实力。**
![](https://static001.geekbang.org/resource/image/09/88/09444903e7e24329da8727851be75388.jpg)
我们这门课注重实践,宫文学老师会针对我们要开发的计算机语言,采取最合适的实现技术,并告诉你选择这个技术路线的原因和相关背景知识,兼顾原理与实战。
此外,我们这门课高度仿真一个真实的计算机语言开发项目,一门语言其实可以有多个具体实现,以适用不同的场景,宫老师要带你做的是**TypeScript的一个全新的实现**。它具有编译成原生应用的潜力好上手也顺应了HarmonyOS的趋势将来你也可以拿着它做更多的尝试。
### 课程模块设计
课程主体划分为以下4大模块。
* **起步篇:让一门超简洁的语言跑起来。**在这一模块,我们让你对编译器前端到后端、从编译到运行有一个全局式的理解,把这门语言最基本的框架搭起来。
* **进阶篇:让我们的语言更实用。**这一模块,我们会逐步支持更多的数据类型,你还会学到面向对象编程特性和函数式编程特性,丰富知识面以解决更多基础技术问题。
* **优化篇:让程序的性能更高。**这一模块我们主要介绍一下优化技术包括Java、JavaScript等语言所采用的前沿优化技术让你洞悉它们最深处的奥秘有能力去承担开发平台项目等攻坚性的任务。
* **展望篇:实现自主语言的征途。**这一模块,我们会展望一些更高级的语言特性,比如并发、自举等,让你理解更高阶的思路和实现方法。
## 课程目录
![](https://static001.geekbang.org/resource/image/c8/23/c8652c14c656799b63123b9829789823.jpg)
## 适合人群
熟练掌握一门计算机语言即可
## 特别放送
#### 免费领取福利
[![](https://static001.geekbang.org/resource/image/a1/4a/a1254c5523a33bf77ec32edfbc8e5f4a.jpg)](https://time.geekbang.org/article/354230)
#### 限时活动推荐
[![](https://static001.geekbang.org/resource/image/e7/88/e787834ec0927ca4bf8d6eb703c5e188.jpg)](https://time.geekbang.org/activity/promo?page_name=page_37&utm_source=tebiefangsong)
## 订阅须知
1. 订阅成功后推荐通过“极客时间”App端、Web端学习。
2. 本专栏为虚拟商品,交付形式为图文+音频,一经订阅,概不退款。
3. 订阅后分享海报,每邀一位好友订阅有现金返现。
4. 戳此[先充值再购课更划算](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?scan=1&activity=none&from=kdt&qr=directgoods_1541158976&shopAutoEnter=1),还有最新课表、超值赠品福利。
5. 企业采购推荐使用“[极客时间企业版](https://b.geekbang.org/?utm_source=geektime&utm_medium=columnintro&utm_campaign=newregister&gk_source=2021020901_gkcolumnintro_newregister)”便捷安排员工学习计划,掌握团队学习仪表盘。
6. 戳此[申请学生认证](https://promo.geekbang.org/activity/student-certificate?utm_source=geektime&utm_medium=caidanlan1)订阅课程享受原价5折优惠。
7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。