PreCreating Lisp 1:定位

2020-09-09  本文已影响0人  牛头酋长

作者:何岩,谢绝转载。

0.前言

本系列为Recreating Lisp的素材准备工程。因为,硬核知识要基于SICP,所以,我需要一边读SICP一边构建“纯”定位体系。

What? 本系列写的是什么?

定位,即,定位出高级编程语言(本系列以Lisp编程语言为代表)的概念体系。

Why? 为什么要写定位?

因为,SICP的定位感不好,多是结论,少有原因。所以读起来容易迷茫。我想解决这个问题。

How? 我如何写?

我要用直觉和想象力,填补SICP缺失的“为什么”。
我要将SICP中的珍珠(结论)用线(问题)串起来。
外面再裹一层糖衣(故事)。
最终呈现一个概念体系,体系的核心是编程语言。

1.Why? 为什么要创造高级编程语言?

为了构建抽象。

Why? 为什么构建抽象?
为了模拟真实世界。

Why? 为什么要模拟真实世界?
加速/预测世界的运行。
没想到的是,人们逐渐喜欢生活在虚拟世界中了。

2.Why? MIT的两位教授为什么要写SICP?

为了让读者得到高级编程语言的本质:构建和解释。

Part1讲述了编程语言的核心业务,即,构建抽象(Build Abstraction)。
构建抽象的核心问题是:如何控制复杂度(Control Complexity)

Part2讲述了对于编程语言的支撑,即,解释器(Interpreter)。
软解释器就是Meta-Circular Evaluator,硬解释器就是Lisp Machine(用硬件来实现Meta-Circular Evaluator)。解释器的核心问题就是:理解漩涡的核心(Eval/Apply).

上一篇下一篇

猜你喜欢

热点阅读