2014年-艾瑞咨询_360研究报告:2014年春运网上抢票研究报告_492页_13mb
报告摘要
《计算机程序的构造和解释》详细总结
核心内容
《计算机程序的构造和解释》是麻省理工学院(MIT)的一本经典教材,由Harold Abelson、Gerald Jay Sussman和Julie Sussman合著,裘宗燕翻译。本书自1984年出版以来,对计算机科学教育产生了深远影响,是计算机科学领域的重要参考读物。
本书的核心内容包括:
- 过程抽象:介绍如何通过抽象来组织计算过程,包括复合过程和高阶函数的使用。
- 数据抽象:探讨如何构造和操作数据,包括数据表示、抽象屏障、通用操作等。
- 模块化、对象和状态:介绍赋值、局部状态、并发和非确定性程序设计。
- 元语言抽象:讲解如何构建解释器和编译器,包括求值器、惰性求值和非确定性计算。
- 寄存器机器:介绍如何用寄存器机器模型来模拟计算过程,包括编译和执行。
主要观点
- 程序设计是一种创造性活动:本书强调程序设计不仅是技术,更是一种艺术,需要深入理解问题的结构和组织方式。
- 抽象是程序设计的关键:无论是过程抽象还是数据抽象,都是理解和控制复杂性的重要手段。
- Lisp语言的优势:Lisp是一种支持过程和数据统一表示的语言,特别适合用于程序设计的研究和教学。本书使用Lisp的方言Scheme作为主要语言。
- 计算过程的模型化:程序可以看作是对现实世界过程的一种建模,理解这些模型有助于更好地设计和实现程序。
- 程序的正确性与效率:程序设计不仅要考虑正确性,还要关注其执行效率和如何优化程序结构。
关键信息
- 本书的适用性:本书被全球100多所大学采用,包括斯坦福大学、普林斯顿大学、牛津大学、东京大学等。
- Lisp语言的特性:Lisp语言支持递归、函数式编程、符号处理等特性,非常适合用于程序设计的研究。
- Scheme语言:本书采用的Lisp方言是Scheme,它结合了Lisp和Algol的特性,强调词法作用域和模块化设计。
- 教育意义:本书强调通过实践和练习来学习程序设计,鼓励学生在交互式环境中逐步构建和测试程序。
- 版本信息:第2版于1996年出版,包含了对程序设计系统的重新设计和测试,以及对教学内容的更新。
结构与内容概述
第1章 构造过程抽象
- 基本元素:介绍了表达式、命名、环境、组合式求值等基本概念。
- 复合过程:通过
define定义过程,展示如何将操作命名并作为单元使用。 - 代换模型:解释了过程应用的代换模型,以及应用序和正则序的差异。
- 条件表达式:介绍了
cond和if等特殊形式,用于实现条件判断和逻辑操作。
第2章 构造数据抽象
- 数据抽象:通过有理数、符号数据、集合、Huffman编码等实例,展示了如何构造和操作数据。
- 数据表示与操作:讨论了如何通过抽象屏障和通用操作来处理不同类型的数据。
第3章 模块化、对象和状态
- 赋值与局部状态:介绍了如何通过赋值来模拟局部状态,以及如何用数据结构进行模拟。
- 并发与非确定性:探讨了并发程序设计和非确定性计算的基本概念与实现方法。
第4章 元语言抽象
- 解释器设计:介绍了如何构建一个解释器,包括求值器的结构和实现。
- 惰性求值与非确定性:讨论了惰性求值的实现和非确定性程序设计的模型。
第5章 寄存器机器里的计算
- 寄存器机器模型:介绍了如何用寄存器机器模拟计算过程,包括机器设计、汇编程序、执行过程等。
- 编译技术:讲解了编译器的结构和如何将Lisp程序编译为机器代码。
作者与译者
- Harold Abelson:MIT的MacVicar Faculty Fellow,获得IEEE计算机学会的Booth奖。
- Gerald Jay Sussman:MIT电子工程和计算机科学教授,获得ACM的Karlstrom奖。
- Julie Sussman:作家和编辑,参与本书的写作与编辑工作。
- 裘宗燕:本书的中文译者,精通计算机科学和程序设计。
出版信息
- 出版社:机械工业出版社和中信出版社。
- 出版时间:2004年2月。
- ISBN:7-111-13510-5。
- 定价:45.00元。
- 相关网站:www-mitpress.mit.edu/sicp,提供本书源代码和教辅资料。
教学与学习
- 课程设计:本书是MIT计算机科学入门课程的教材,强调通过实践和练习掌握程序设计思想。
- 教学资源:提供了大量的练习和实例,帮助学生理解和掌握程序设计的核心概念。
- 互动环境:书中强调了交互式环境的重要性,通过逐步构建和测试程序来学习。
总结
《计算机程序的构造和解释》是一本深入浅出、富有启发性的程序设计教材,不仅适合计算机专业的学生,也适合所有希望深入理解程序设计和计算机科学的人士。通过本书的学习,读者可以掌握程序设计的基本思想、抽象方法、数据处理和系统构造等关键内容。书中使用Lisp语言(特别是Scheme方言)作为教学工具,强调过程和数据的统一表示,以及程序设计的创造性与艺术性。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载