哈罗德8226;阿贝尔森(harold abelon)是mit 年度macvicar faculty fellow。在mit电子工程和计算机科学系工作,得到过重要的计算机科学教育奖——ieee计算机学会的booth奖。杰拉尔德8226;杰伊8226;萨斯曼(gerald jay uman)是matuhita电子工程教授。在mit电子工程和计算机科学系工作,得到过重要的计算机科学教育奖——acm的karltrom奖。朱莉8226;萨斯曼(julie uman)是作家和编辑,同时使用自然语言和计算机语言写作。
精彩内容:
第2版前言软件很可能确实与其他任何东西都不同,它的本意是被抛弃:这一观点是将它看作一个肥皂泡吗?—alan j. perli自1980年以来,本书的材料一直在mit作为计算机科学入门课程的基础。在本书版出版之前,我们已经用这一材料教了4年课,而到第2版出版,时间又过去了12年。我们非常高兴地看到这一工作得到广泛认可,并被结合到其他一些教材中。我们已经看到我们的掌握了本书中的思想和程序,并将它们构筑到新的计算机系统或者语言的核心里—我们的已经变成了我们的创造者。我们非常幸运能有如此有能力的和如此有建树的创造者。在准备这一新版本的过程中,我们采纳了成百条澄清建议,它们来自我们自己的经验,也来自mit和其他地方的同行们的评述。我们重新设计了本书里大部分主要程序设计系统,包括通用型算术系统、解释器、寄存器机器模拟器和编译器,也重写了所有的程序实例,以保证任何符合ieee的cheme标准(ieee 1990)的cheme实现都能运行这些代码。这一版本中强调了几个新问题,其中重要的是计算模型里对于时间的处理所起的中心作用:带有的对象、并发程序设计、函数式程序设计、惰求值和非确定程序设计。这里为并发和非确定新增加了几节,我们也设法将这一论题集成到整本书里,贯穿始终。本书版基本上是按照我们在mit一学期课程的大纲撰写的。第2版中由于有了增加的这些新材料,已经不可能在一个学期里覆盖所有内容了,所以教师需要从中做一些选择。在我们自己的里,有时会跳过有关逻辑程序设计的一节(4.4节);让使用寄存器机器模拟器,但不去讨论它的实现(5.2节);对于编译器则只给出粗略的概述(5.5节)。即便如此,这仍然是一门内容非常多的课程。一些教师可能希望只覆盖前面的三章或者四章,而将其他内容留给后续课程。版前言一台计算机像是一把小提琴。你可以想象一个新手试了一个音符后丢掉了它。后来他说,听起来真难听。我们已经从大众和我们的大部分计算机科学家那里反复听到这种说法。他们说,计算机程序对个别具体用途而言确实是好东西,但它们太缺乏弹。一把小提琴或者一台打字机也同样缺乏弹,那是在你学会了如何去使用它们之前。—marvin minky,“为什么说程序设计很容易成为一种媒介,用于表述理解浮浅、草率而的思想”本书是麻省理工学院(mit)计算机科学的入门教材。在mit主修电子工程或者计算机科学的所有都必须学这门课,作为“公共核心课程计划”的四分之一。该计划还包含两个关于电路和线系统的科目,以及一个关于数字系统设计的科目。我们从1978年开始涉足这些科目的开发,从1980年秋季以后,我们一直按照现在这种形式教授这门课程,每年600到700个。大部分此前没有或者很少有计算方面的正式训练,虽然许多人玩过计算机,也有少数人有丰富的程序设计或者硬件设计经验。我们所设计的这门计算机科学入门课程主要虑了两个方面。首先,我们希望建立起一种认识:计算机语言并不仅仅是一种让计算机去执行作的方式,更重要的,它是一种表述有关方法学的思想的新颖的形式化媒介。因此,程序必须写得能够供人们阅读,偶尔地去供计算机执行。其次,我们相信,在这一层次的课程里,基本的材料并不是特定程序设计语言的语法,不是高效完成某种功能的巧妙算法,也不是算法的数学分析或者计算的本质基础,而是一些能够控制大型软件系统的复杂的技术。我们的目标是,完成了这一科目的能对程序设计的风格要素有一种很好的审美观。他们应该掌握了控制大型系统的复杂的主要技术。他们应该能够去读50页长的程序,只要该程序是以一种值得模仿的形式写出来的。他们应该知道在什么时候哪些东西不需要去读,哪些东西不需要去理解。他们应该很有把握地去修改一个程序,同时又能保持原来作者的精神和风格。这些技能并不仅仅适用于计算机程序设计。我们所教授和提炼出来的这些技术,对于所有的工程设计都是通用的。我们在适当的时候隐藏起一些细节,通过创建抽象去控制复杂。我们通过建立约定的界面,以一种“混合与匹配”的方式组合起一些标准的、已经很好理解的片段去控制复杂。我们通过建立一些新的语言去描述各种设计,每种语言强调设计中的一个特定方面并降低其他方面的重要,以控制复杂。设计这门课程的基础是我们的一种信念—“计算机科学”并不是一种科学,而且其重要也与计算机本身并无太大关系。计算机是关于我们如何去思,以及如何去表达自己的思的。在这个变化里,基本的东西是出现了一种或许好称为过程认识论的现象—如何从命令式的观点去研究知识的结构,这一观点与经典数学领域中所采用的更具说明的观点是不同的。数学为处理“是什么”提供了一种框架,而计算则为处理“怎样做”提供了一种框架。在教授这里的材料时,我们采用的是lip语言的一种方言。我们绝没有形式化地教授这一语言,因为不必那样做。我们只是使用它,可以在几天之内学会它。这也是类lip语言的重要优
以下为对购买帮助不大的评价