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).