SICP-计算机程序的构造和解释

计算机程序的构造和解释(原书第2版)

【原书名】 Structure and Interpretation of Computer Programs,Second Edition 
【原出版社】 Massachusetts Institute of Technology  
【作者】 (美)Harold Abelson,Gerald Jay Sussman,Julie Sussman  
【译者】 裘宗燕  
【丛书名】 计算机科学丛书  
【出版社】 机械工业出版社  

http://www.china-pub.com/computers/common/info.asp?id=17992

【参考资料】
相关网站有本书源代码及其他教辅资料,网址为:www-mitpress.mit.edu/sicp/

mitpress公开的在线浏览版本
http://mitpress.mit.edu/sicp/full-text/book/book.html

the homework answer
http://inst.eecs.berkeley.edu/~cs61a/hw/index.html
http://www-inst.eecs.berkeley.edu/~cs61a/sp06/

作者授课录像下载
http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/

UC Berkeley的教学录像(Spring 2004):
http://webcast.berkeley.edu/courses/archive.html?prog=40&group=57

最省事的scheme环境,初学推荐
http://www.drscheme.org/

The Scheme Programming Language, 2nd Edition
?; 1996 Prentice Hall
http://www.scheme.com/tspl2d/

备查
http://www.schemers.org/Documents/Standards/R5RS/

更多关于scheme
http://www.schemers.org/
http://www.swiss.ai.mit.edu/projects/scheme/index.html
http://readscheme.org/
http://dmoz.org/Computers/Programming/Languages/Functional/
http://directory.google.com/Top/Computers/Programming/Languages/Functional/


http://lambda-the-ultimate.org/

http://www.ai.mit.edu/research/publications/publications.shtml

开放式课程计划OOPS
http://www.cocw.net/
  
【评论】 
紫皮书(Purple Book)!巫师书!!SICP!!!TheBook!!!!
四个名字都是这本书的昵称,“紫皮书”是因为书皮是紫的,“巫师书”是因为书皮上印着一男一女两个巫师模样的人,“SICP”就是书名几个单词的首字母,“

TheBook”是因为这本书是在scheme领域内公认的圣经,所以有此昵称

绝对是好书, 非常具有启发性.
把编译器、算法、硬件的的内容用Lisp语言联系起来。


次书是我学习CS的第一本教材(MIT的6.001),非常好。

Its the Best! Its the Worst! Why the split?, May 8, 2000
Reviewer: Peter Norvig (Palo Alto, CA USA) - See all my reviews
    
I think its fascinating that there is such a split between those who love and hate this book. Most reviews give a bell-shaped

curve of star ratings; this one has a peak at 1, a peak at 5, and very little in between. How could this be? I think it is

because SICP is a very personal message that works only if the reader is a computer scientist (or willing to become one). So

I agree that the book's odds of success are better if you read it after having some experience.
To use an analogy, if SICP were about automobiles, it would be for the person who wants to know how cars work, how they are

built, and how one might design fuel-efficient, safe, reliable vehicles for the 21st century. The people who hate SICP are

the ones who just want to know how to drive their car on the highway, just like everyone else.
if you want to be a real professional, you should read this

Donald Knuth says he wrote his books for "the one person in 50 who has this strange way of thinking that makes a programmer".

I think the most amazing thing about SICP is that there are so FEW people who hate it: if Knuth were right, then only 1 out

of 50 people would be giving this 5 stars, instead of about 25 out of 50. Now, a big part of the explanation is that the

audience is self-selected, and is not a representative sample. But I think part of it is because Sussman and Abelson have

succeeded grandly in communicating "this strange way of thinking" to (some but not all) people who otherwise would never get

there.

Those who hate SICP think it doesn't deliver enough tips and tricks for the amount of time it takes to read. But if you're

like me, you're not looking for one more trick, rather you're looking for a way of synthesizing what you already know, and

building a rich framework onto which you can add new learning over a career. That's what SICP has done for me. I read a draft

version of the book around 1982 and it changed the way I think about my profession. If you're a thoughtful computer scientist

(or want to be one), it will change your life too.

Some of the reviewers complain that SICP doesn't teach the basics of OO design, and so on. In a sense they are right. The

book doesn't directly tell you how to design and write an object-oriented program using the subset of object-oriented

principles that show up in the syntax of Java or C++. Rather, the book tells you what those principles are, how they came to

be selected as worthwhile, how they can be implemented from the ground up, and how a different combination of principles

might be more appropriate for a particular problem. This approach requires you to understand the range of possibilities, and

to think about trade-offs as you go through the design process. Programming is a craft that is subject to frequent failure:

many projects are started and abandoned because the designers do not have the flexibility, experience and understanding to

come up with a suitable design and implementation. SICP gives you an approach that will succeed, but it is an approach based

on principles and wisdom, not on a checklist. If you don't understand the principles, or if you are the kind of person who

wants to be given a cookbook of what to do rather than to think creatively, or if you only want to work on problems that are

pretty much like the problem you worked on last time, then this approach will not work for you. There are other approaches

that will be more reproducible for a limited range of simple problems, but there is no better way than SICP to learn how to

address the truly hard problems.

The Classic, May 20, 2000
Reviewer: paul graham (Cambridge, MA United States) - See all my reviews 
This is one of the great classics of computer science. I bought my first copy 15 years ago, and I still don't feel I have

learned everything the book has to teach.
I have learned enough to write a couple books on Lisp that (currently) have four to five stars. Yet SICP, which is pretty

much the bible of our world, has only three? How can this be?

Reading the reviews made it clear what happened. An optimistic professor somewhere has been feeding SICP to undergrads who

are not ready for it. But it is encouraging to see how many thoughtful people have come forward to defend the book.

Let's see if we can put this in terms that the undergrads will understand -- a problem set:

1. Kenneth Clark said that if a lot of smart people have liked something that you don't, you should try and figure out what

they saw in it. List 10 qualities that SICP's defenders have claimed for it.

2. How is the intention of SICP different from that of Knuth? Kernighan & Ritchie? An algorithms textbook?

3. Does any other book fulfill this purpose better?

4. What other programming books first published in the mid 1980s are still relevant today?

5. Could the concepts in this book have been presented any better in a language other than Scheme?

6. Who is al? Why is his name in lowercase?

读书时曾经读过William R. Cook的文章《Object-oriented programming versus abstract data types》,当时对文章中的观点有些疑惑,当我读到

2.4抽象数据的多重表示时,顿时豁然开朗,作者谈及数据导向的程序设计和可加性时给出的图2-22复数系统的操作表与William R. Cook文中的观点非常接近。

确实是好书。好书慢慢读,如品茶、品酒,回味无穷。

如果想对书中所用的Scheme语言做进一步了解的话,可以在 http://www.drscheme.org/   下载DrScheme解释/编译器。Scheme语言虽然另类及实际用途有

限,但却有较高的“可玩性”,主要表现在它对几类编程语言范例(paradigm) -- 过程型/面向对象型/函数型/逻辑型 -- 都能做出良好表达。

说起Comp.Sci.的读物,其实除了TAOCP、CLR外还有一本经典叫作 SICP (Structure and Interpretation of Computer Programs,俗称“紫皮书”或“巫

师书”)。MIT和UCBerkeley两大学府都指定这本书作为计算机科目的入门教材。它涉及的不是具体的数据结构和算法,而是对“计算机程序”这个概念本身的解构

/解读。“程序即思维表达”是此书传递的一个意念。由于涉及的是程序设计的抽象层面,批评者会认为这本书不够实用(这在amazon.com上读者书评中的分歧可

见一斑),但事实上很多顶尖的程序设计师都认为正是这本书帮他们“开了窍”,是一本具有高度启发性的经典。

我很喜欢SICP,但是要说推荐给出版社我却很犹豫。原因是虽然这本书追问编程的本质,对有科学探索气质的人很有吸引力,但是对于大部分忙碌的程序员来说,

恐怕觉得没有时间慢慢体会它的好处。这本书用LISP的变体SCHEME语言讲事,国内对于主流语言趋之若骛的大多数人恐怕不买帐。
     对于曲高和寡的著作,出版社引进就会蚀本。好在有在线版本,喜欢的人自可以免费阅读。

转载于:https://www.cnblogs.com/0banana0/archive/2011/05/22/2053535.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《计算机程序构造解释》是一本经典的计算机科学教材,它由Harold Abelson和Gerald Jay Sussman创作,已经成为计算机科学领域的里程碑之一。该教材于1979年首次出,最新是第二。 该书的主要内容包括两个方面:计算机程序构造解释。首先,它详细解释计算机程序构造,强调了程序的基本要素和组织原则。这可以帮助读者理解如何使用编程语言和工具构建高效和可靠的计算机程序。书中还介绍了一些常见的编程范式和设计模式,如函数式编程和面向对象编程,使读者能够选择适合自己项目的最佳方法。 其次,该书解释计算机程序解释过程。它介绍了一种称为Lisp的编程语言,这是一种函数式编程语言,非常适合表达和解释复杂的计算机程序。通过详细讲解Lisp的语法和语义,读者可以深入了解程序如何被计算机解释和执行。这对于理解计算机底层工作原理和实现高性能程序非常有帮助。 《计算机程序构造解释》被广泛认为是计算机科学入门的必读教材。它不仅适合计算机科学专业的学生学习,也适合对计算机程序有兴趣的非专业读者。该书的内容深入浅出,兼具理论和实践,读者可以通过阅读本书并进行相应的练习来提高他们的编程能力和计算机科学理解。 总之,《计算机程序构造解释》是一本经典的计算机科学教材,它介绍了计算机程序构造解释两个重要方面。通过学习本书,读者可以掌握构建高效和可靠程序的技巧,并深入理解计算机程序的执行过程。这本书对于计算机科学专业学生以及对计算机程序感兴趣的非专业读者都是极其有价值的。 ### 回答2: 《计算机程序构造解释》(简称SICP)是一本经典的计算机科学教材,该书由麻省理工学院的编程语言专家哈罗德·艾布尔森(Harold Abelson)和吉拉迪·塞斯曼(Gerald Jay Sussman)共同编写。它在计算机科学领域具有重要的地位和影响力。 该书的主要内容围绕着计算机程序构造解释展开。它从一个通用的编程语言(Scheme)出发,通过讲解计算机程序的抽象、过程和数据的重要概念,帮助读者建立起正确的思维模式和编程方法。 SICP通过一系列的例子和习题,引导读者通过编程实践来加深对计算机程序的理解。它强调程序设计的原理、模块化、抽象和递归等重要思想,通过一步步的讲解和示例,帮助读者培养出优雅和高效的编程风格。 SICP的目标是让读者真正理解计算机程序的本质,并学会如何用一种简单而强大的编程语言来构建复杂的软件系统。它不仅仅是一本教科书,更是一部引导读者探索计算机科学本质的指南。 总的来说,《计算机程序构造解释》是一本重要的计算机科学经典教材,它的初已经出超过30年,至今仍然是计算机科学教育领域的重要参考书之一。阅读该书可以帮助读者真正理解计算机程序的本质和设计原则,提升编程能力和思维方式。 ### 回答3: 《计算机程序构造解释》(SICP)是一本经典的计算机科学教材,也是学习编程的重要参考书籍。 这本书以文学化的形式介绍了计算机程序是如何构造解释的。它通过简明易懂的语言和丰富的示例,向读者解释了编程语言的设计原则、计算过程的原理以及如何理解和构造复杂的程序。 SICP主要分为五个部分。第一部分介绍了程序设计的基本概念和过程抽象的重要性。第二部分介绍了数据抽象和高阶过程,帮助读者理解程序设计中的重要概念和方法。第三部分讨论了程序设计的不同风格和编程的复杂性。第四部分介绍了元语言解释器的实现,帮助读者理解编程语言的工作原理。第五部分则介绍了一些高级主题,如并发和非确定性计算。 这本书的独特之处在于它不仅仅教授编程语言的具体细节,更重要的是让读者理解程序设计的理念和基本原则。它培养了读者逻辑思维和问题解决能力,帮助他们成为更好的程序员。 对于那些想要深入理解计算机程序构造解释的人来说,这本书是一个不可或缺的工具。它挑战了读者的思维,让他们思考计算机程序的本质和原理。无论是初学者还是有经验的程序员,阅读《计算机程序构造解释》都会有所收获,成为更好的计算机科学家或工程师。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值