如果读者对博主的儿子经历感兴趣的话可以前往这个个人网站查看,使用 Matt Might 作为搜索关键字应该也能找到一些报导,由于这不是本文的重点,我就不详细介绍了。这是 Matt Might 的博客页面:
在这个页面中列出了不少的文章,不过因为使用了多重 tag 有很多重复,这些文章其实并不多(现在 2023-03-27 只有 142 篇),它们按时间排序列出在页面的末尾,我主要选择编程相关的 tag 看一看。
我相信你一定看过这篇文章中的图片:



- Fixed-point combinators in JavaScript: Memoizing recursive functions,简单介绍了如何在 JS 中使用 Y combinator。
- Non-termination without loops, iteration or recursion: Omega in Javascript,在 JS 中使用自应用函数(ω)来实现死循环,而不需要迭代或递归
- JavaScript in small bites, Part 1, Part2, Part3, Part4,似乎是一系列简单的 JS 教程
- By example: Continuation-passing style in JavaScript ,一些在 JS 中使用 CPS 的例子
- Avoiding and exploiting JavaScript's warts,一些 JS 代码建议
- Church encodings, the U combinator and the Y combinator in JavaScript,在 JS 中使用 lambda 演算构建一些编程语言 primitive,貌似是每个 Lisper 都干过的事(笑)
这些文章是从 Parsing, Continuations 和 Compilation 三个 tag 中摘出来的,我本人没有学过多少相关知识,只是知道几个名词而已,这里就随便列一点:
- The lanugage of languages,BNF 教程
- Parsing regular expressions with recursive descent,递归下降法解析正则表达式
- How to compile with continuations ,从标题来看似乎是如何编译代码使之带有 continuation,目前我还没有看完,总之与 CPS 有关
- Continuations by example: Exceptions, time-traveling search, generators, threads, and coroutines,使用 continuation 编程的一些例子
- Tree transformations: Desugaring Scheme,对 Scheme 表达式去糖
- Closure conversions: How to compile lambda,如何实现闭包
- A-Normalization: Why and How,ANF(A-normal form)变换的实现
- Compiling to lambda-calculus: Turtles all the way down,将代码编译为 lambda 演算表示,同样估计每个 Lisper 都(想)干过
- 7 lines of code, 3 minutes: Implement a programming language from scratch,教你实现一个简单的玩具语言
本文在内容上没什么好说的,只是不想看 CPS 顺便给自己留个文章索引而已。希望列出的一些文章能对你有所帮助。
上面列出的十几篇只是 Matt Might 一百多篇文章的一小部分而已,读者若对编程语言相关的知识感兴趣的话,可以去作者的博客看看。