目录
SICP的前三章是考察任何一个开发体系(例如程序设计语言、开发组件、设计模式、开发框架)所必须了解的最最基本的三个方面。接触任何一个新的开发体系时,应该按部就班地搞清楚其
“构造过程抽象”的方式、
“构造数据抽象”的方式、以及
“模块化、对象和状态”的情况。同样,设计任何一种开发体系时,都应该从这三个方面入手去展开思考。只要理清这三个方面,事实上已经“完备地”掌握了基本的开发体系。
当这一开发体系不满足于仅仅作用于其预设的基本元素,而希望由用户对其自身进行扩展时,则应考察其
“元语言抽象”能力(第四章)。
第一章 构造过程抽象
心智的活动,也就是它将如何作用于各种简单认识之上,主要包括以下三个方面:1)将若干简单认识组合在一起,由此产生出各种复杂的认识。2)将两个认识放在一起对照,它们可能是简单认识也可以是复杂认识,并且在对照过程中不试图将它们合而为一。由此得到关于它们之间的关系的认识。3)将这些认识从那些在实际中和它们同在的所有其他认识中分离出来,这就是抽象,所有具有普遍性的认识都是这样得到的。 —— “有关人类理解的随笔” by John Locke (生于1632年,卒于1704年10月28日),英国哲学家约翰·洛克是全面系统地阐述宪政民主基本思想的第一位作家。他的思想深刻地影响了美国的开国元勋及法国启蒙运动中的许多主要哲学家。
原文在 http://oregonstate.edu/instruct/phl302/texts/locke/locke1/Essay_contents.html
SICP是一本关于抽象的书,所谓抽象能力则是把一个概念从那些在具体场景中与它一起出现的其他概念中抽离出来,从而获得普遍性认识的能力。举例来说,当你考察“山的高度”和“山的硬度”时,你能否意识到你在考察“形状的高度”和“固体的硬度”。这是不是就是所谓的“看山不是山”呢?
正文开篇第一句,作者就用实例让我们看到了什么是抽象:
“我们准备学习的是有关"计算过程"的知识。计算过程是存在于计算机里的一类抽象事物,在其演化进程中,这些过程会去操作一些被称为"数据"的抽象事物。人们创建出一些称为"程序"的规则模式,以指导这类过程的进行。”
对于有基础的程序员,这两句话的字面意思是显而易见的;对于没编程基础的学生,看了也暂时不知道作者想说什么。这两句话的价值在于,它向读者展示了什么叫做抽象以及作者的抽象能力。两句话,引出三个抽象概念,为全书定下了基调:本书要探讨的是“计算过程”。不妨代入角色想一想,如果我要写书,第一句话会写什么?
“这些特征之中最重要的就是:计算过程的Lisp描述(称为"过程")本身又可以作为Lisp的数据来表示和操作。这一事实的重要性在于,现存的许多威力强大的程序设计技术,都依赖于填平在“被动的”数据和“主动地”过程之间的传统划分。正如我们将要看到的,Lisp可以将过程作为数据进行处理的灵活性,使它成为探索这些技术的最方便的现存语言之一。能将过程表示为数据的能力,也使Lisp成为编写那些必须将其他程序当作数据去操作的程序的最佳语言。”
“计算过程”中存在着“过程”与“数据”两个抽象概念。Lisp的威力源泉,在于它成功地提升了“数据”的抽象层次,令“过程”归入了“数据”之中,从而获得了巨大的灵活性与统一性。在这里读者第一次在概念上感受到了“抽象”的威力。但还没有看到具体的示例。
分享到:
相关推荐
《SICP习题解答,主要第一章的内容习题答案》 SICP,全称《Structure and Interpretation of Computer Programs》(计算机程序的构造和解释),是计算机科学领域的一本经典教材,由MIT(麻省理工学院)的 Harold ...
SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版SICP中文第二版
SICP.part4.rar SICP.part4.rar SICP.part4.rar
《SICP(Structure and Interpretation of Computer Programs)》是一本经典的计算机科学教材,由Harold Abelson和Gerald Jay Sussman所著,它强调了程序设计的基础和原理,特别是函数式编程思想。第二章主要探讨了...
在压缩包子文件的文件名称列表中,我们看到唯一的一个条目"sicp-0.0.1b102.dev4",这通常意味着压缩文件解压后会有一个同名的目录,里面包含了这个Python库的所有源代码、元数据、文档以及可能的测试文件等。...
### SICP——《计算机程序的结构与解释》 #### 一、概述 《计算机程序的结构与解释》(Structure and Interpretation of Computer Programs, 简称SICP)是一本由MIT电气工程与计算机科学系教授Harold Abelson和...
sicp in python 中文版 sicp in python 中文版 sicp in python 中文版 !!!download>>>https://github.com/wizardforcel/sicp-py-zh
《SICP 2.2.4 节:图形语言》是计算机科学经典教材《结构与解释程序》(Structure and Interpretation of Computer Programs)中的一个重要章节,它深入介绍了如何利用编程来创建图形,以及如何设计和理解复杂的计算...
《SICP笔记和练习》是一份详尽的资源,主要涵盖了由MIT教授们编写的经典计算机科学教材《Structure and Interpretation of Computer Programs》(简称SICP)的学习笔记和练习解答。这份资料以HTML格式呈现,便于在线...
4. 使用函数构建抽象:本书第一章介绍了如何通过定义新函数来构建抽象。函数作为程序的核心构建块,允许程序员通过参数和返回值来控制数据的流程和处理过程。函数的艺术在于能够将复杂的任务分解为更小、更易于管理...
《SICP解题集》是一份专注于探讨和解答《结构与解释程序》(Structure and Interpretation of Computer Programs,简称SICP)一书中习题的资源。SICP是计算机科学领域的一本经典教材,由Harold Abelson、Gerald Jay ...
《计算机程序的构造与解释》(Structure and Interpretation of Computer Programs,简称SICP)是一本备受推崇的经典计算机科学教材,由Harold Abelson和Gerald Jay Sussman撰写,并由MIT出版社出版。这本书以其深入...
SICP-Python版本
《计算机程序的构造和解释》(SICP)是一本极具影响力的计算机科学教材,由Harold Abelson和Gerald Jay Sussman所著,MIT出版社出版。这本书以其深入探讨编程概念、程序设计方法以及计算机系统的工作原理而闻名。1-3...
SICP 使用的scheme解释器 以前叫DrScheme
《计算机程序构造和解释》(SICP,Structure and Interpretation of Computer Programs)是一本具有深远影响力的计算机科学教材,由Harold Abelson和Gerald Jay Sussman编写,MIT Press出版。这门课程由北京大学数学...
SICP)** 是由哈佛大学的 Harold Abelson 和麻省理工学院的 Gerald Jay Sussman 教授共同编著的一本经典教材,该书首次出版于1985年,并在1996年推出了第二版。书中系统地介绍了计算机程序设计的基本原理和方法,并...
4. **数据结构和抽象**:SICP介绍了各种数据结构,如列表、树和队列,以及如何使用递归和高阶函数来操作它们。此外,还讨论了如何通过抽象隐藏实现细节,提高代码的复用性和可维护性。 5. **控制结构和计算的表示**...
Python SICP epub版本,很适合学习抽象的思想,用Python版本比lisp更实用