小言_互联网的博客

【“计算机科学与技术”专业小白成长系列】SICP 读书笔记: The Elements of Programming

287人阅读  评论(0)

SICP 读书笔记: The Elements of Programming


编程元素

强大的编程语言不仅仅是一种指示计算机执行任务的方法。语言也可以作为一个框架,我们可以在其中组织关于过程的想法。当我们描述一种语言的时候,我们应该特别注意语言是如何把简单的思想结合起来形成更复杂的思想的。每一个强大的语言有三个机制完成:

  • 原始表达式。这就像是乐高积木中的方块一样,是基石。

  • 组合的方法,通过这种方法,复合元素由较简单的元素构建而成。这是拼乐高的图纸。

  • 抽象的方法,通过这种方法,可以将复合元素命名为单元并将其作为单元进行操作。各种方块的组合拼装,千变万化,奥妙无穷。

在编程中,我们处理两种元素:过程和数据。(稍后我们会发现它们其实并没有那么明显。)通常,数据是我们想要操纵的“东西”,过程是操纵数据的规则的描述。任何强大的编程语言都应该能够描述原始数据和原始过程,并且应该具有组合和抽象过程和数据的方法。

The Elements of Programming

A powerful programming language is more than just a means for instructing a computer to perform tasks. The language also serves as a framework within which we organize our ideas about processes. Thus, when we describe a language, we should pay particular attention to the means that the language provides for combining simple ideas to form more complex ideas. Every powerful language has three mechanisms for accomplishing this:

  • primitive expressions, which represent the simplest entities the language is concerned with,
  • means of combination, by which compound elements are built from simpler ones, and
  • means of abstraction, by which compound elements can be named and manipulated as units.

In programming, we deal with two kinds of elements: procedures and data. (Later we will discover that they are really not so distinct.) Informally, data is “stuff” that we want to manipulate, and procedures are descriptions of the rules for manipulating the data. Thus, any powerful programming language should be able to describe primitive data and primitive procedures and should have methods for combining and abstracting procedures and data.

《Structure and Interpretation of Computer Programs》:https://sarabander.github.io/sicp/html/index.xhtml#SEC_Contents

第1章 构造过程抽象
1.1 程序设计的基本元素
1.2 过程与它们所产生的计算
1.3 用高阶函数做抽象
第2章 构造数据现象
2.1 数据抽象导引
2.2 层次性数据和闭包性质
2.3 符号数据
2.4 抽象数据的多重表示
2.5 带有通用型操作的系统
第3章 模块化、对象和状态
3.1 赋值和局部状态
3.2 求值的环境模型
3.3 用变动数据做模拟
3.4 并发:时间是一个本质问题
3.5 流
第4章 元语言抽象
4.1 元循环求值器
4.2 Scheme的变形——惰性求值
4.3 Scheme的变形——非确定性计算
4.4 逻辑程序设计
第5章 寄存器机器里的计算
5.1 寄存器机器的设计
5.2 一个寄存器机器模拟器
5.3 存储分配和废料收集
5.4 显式控制的求值器
5.5 编译
参考文献
练习表
索引


转载:https://blog.csdn.net/universsky2015/article/details/101237229
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场