我對 Peter Landin 所知其實不多,在讀到衛報為他寫的訃聞前,大部分僅是從今年 ICFP Olivier Danvy 給的 Peter Landin 紀念演講聽來的:
In Memoriam Peter Landin from Malcolm Wallace on Vimeo.
為了大眾讀者,衛報硬是把 Landin 與網路和 Java 扯上關係。以「圈內」的說法,當衛報說到 Java, 指的其實是語意與虛擬機器。Olivier Danvy 說,「電腦科學裡凡是和 λ 有關的」,就有 Landin 的貢獻。當然,語意這個領域太重要,有太多人的影響。Danvy 提及了幾個細項:
- 函數語言:ISWIM 雖然並沒有實作,卻影響了後來包括 SASL, Miranda, ML, Haskell 等語言的設計。小至 off-side rule 和
where
等等語法, 大至語意定義。 - 特定領域語言;
- syntactic sugar: 這詞是他發明的呀!確實很有他的風格。
- SECD machine: 第一個虛擬機器。
- function closures.
- program closures, 也就是續繼 (first class continuations).
- 串流(streams)。
- 串流與 co-routine 之間的關係。
- 緩式求值(delayed evaluation)。
- 部份求值(partial evaluation),等等。
Danvy 也提到一些趣事,包括 Landin 的告別式來了兩大群互不認識的朋友:電腦科學家們,與同志公社的朋友們。後者很驚訝這個連筆記電腦都沒有的人竟是電腦科學家。最後,Danvy 說,我們又失去了一位大師。但電腦科學與其他領域不同的一點是,還有很多大師還活著。趁他們還健在時多與他們討教吧。