TGViewer
codedump的电报频道 codedump的电报频道 @codedump_notes · 5.5K subscribers
Post #555 3.77K
#书

每年的4.23是世界读书日,推荐一本过去一年在精读的技术书《Types and Programming Languages》(简称TAPL)。

我与这本书的缘分是这样的:

最开始,想要看懂databend里面的表达式系统代码,看迟先生的类型体操系列文章《用 Rust 做类型体操》,发现看不懂。

于是请教了负责表达式系统的同事,给我推荐了TAPL这本书。

开始阅读TAPL,但是发现里面很多符号看不懂,需要补一些数理逻辑和Lambda演算的基础。

补习了上述基础之后,继续看TAPL,能看懂部分了。第一刷TAPL花了半年多的时间(包括补习基础的时间)。

现在又重新整理了一下之前做的笔记,也看了部分EOPL(全称“Essentials of Programming Languages”)的内容,开始第二刷。在完善了前面的基础之后,第二刷就流畅很多了。

这个过程中有如下的收获:
1、体验到了数理逻辑形式化的美感。做工程的时候,经常会做工程上的trade-off,但是在类型系统这里,一个类型能否转换为另一个类型,需要严谨的推导,可以就是可以,不行就是不行,不存在trade-off。我特别喜欢这种符号形式化、确定性的美感。
2、重拾了对PL的兴趣。我接下来会把EOPL和TAPL刷完,打算接着学习一下OCaml,再看看能不能给Rust贡献一些代码。
3、后面会学习抽象代数和范畴论,学习范畴论是为了更好理解PL里面的一些理论。
4、Rust最开始吸引我的是它的内存安全特性,现在除此以外,还有它强大的类型系统,强类型系统的语言写起来放心、方便很多。我后续可能不太能接受用非强类型的语言来做为主力编程语言了。

为了纪念这个学习的过程,我前两个月趁着JD搞活动,花重金(大几百人民币)买了一本TAPL原版书,五一之后就能送到了。
  • 🫡 29
  • 👍 5
  • ❤ 2
More from @codedump_notes
  1. Sep 27, 2026#系统编程 讲解Go语言并发主题的小书:《Go concurrency distilled》
  2. Sep 22, 2026#开源软件 开源本来承载的主要任务之一就是赢得信任,智谱这一把开源不但没有赢取信任,反而让更多人感到了疑问,比如我。
  3. Sep 22, 2026#开源项目 #Rust #数据库 hawdb:Rust编写的嵌入式图数据库,用于Nowledge产品中管理本地图数据。
  4. Sep 21, 2026#Rust #人工智能 最近看了好几个Rust相关的新闻,比如: * Rust在微软内部升级为一级语言:《Guest Post: Rust Is Tier-1 Language a…
  5. Sep 19, 2026#人工智能 这个翻译可以说是 信达雅 了。
  6. Sep 15, 2026#人工智能 《我不得不把才华埋葬在昨天》,Deepseek 核心开发的文章,也许再过一段时间,他就不用亲手写算子了。
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →