计算机程序设计艺术 第1卷 第1册 (双语版) |
作 者:Donald E.Knuth |苏运霖 |
出版社:机械工业出版社 |
日 期:2006年4月 |
开 本:16开 版 次:1次 |
页 数:268页 |
装 帧:精装 |
ISBN :7-111-18031-3 |
详细信息:http://www.cdbook.cn/book.asp?id=5317
![]() 为开始第4卷及后续各卷的写作并更新现有三卷中的部分内容,Knuth创立了称作册的一系列的小部头的书,定期出版。每一册将包含一部分或多个部分的全新的或修订的内容。最终,这些册子的内容将被归并成每卷综合的最后的版本,而在1962年开始的许多努力将得以完成。
第1卷 第1册 (说 ![]() 1.3' MMIX 2 1.3.1' Description of MMIX 2 1.3.2' The MMIX Assembly Language 28 1.3.3' Applications to Permutations 51 1.4' Some Fundamental Programming Techniques 52 1.4.1' Subroutines 52 1.4.2' Coroutines 66 1.4.3' Interpretive Routines 73 Answers to Exercises 94 Index and Glossary 127 译者序: 炎炎酷热,淋淋汗珠,伏案疾书,机旁录字,夜以继日,乐此不疲,大功告成,释怀欣喜。当我把译稿从头至尾又校对了一遍,准备把它寄出之前,我突然感到有必要写一个序言来向读者谈一谈。 我是在今年6月份时才得知Donald E. Knuth以这种分册形式出版他的多卷集的新版本和新的卷的,当出版社提出让我来继续完成这些分册的翻译工作时,我欣然接受,并对出版社对我的信任深表感谢。 Donald E. Knuth在他的第1卷第1版的序中,就提到了他的喜忧交集的心情。一方面,他为自己的书的出版感到高兴(在那时,这还仅仅是他出的头一本书);另一方面,又担心由于计算机科学技术的迅猛发展,而使他的书很快就过时了。他很清楚,任何一本书,特别是科学技术方面的书,再重要再经典,总有其寿命极限。 从那时开始,Donald E. Knuth就为使他的书保持时新而作出艰苦努力。在此后近30年间,他对第1卷到第3卷,已经进行了多次的修改充实和更新。第1卷,他已出了三版,目前的第1卷第1册,是为他最后一版即第4版做准备的。第2卷,他也已出了三版。第3卷,他已出了第2版。每一版,都不是简单地改正由读者向他提供发现的错误(为此对于每一个错误的第一个发现者,他提供2.56美元的报酬),以及他自己发现的错误,而是认真地进行新的润饰或者大的改动(他曾宣告说,他对90%的页面都作了几乎50%的修改)。因此可以说,他为使他的书保持时新,使之不至于很快过时,实在作了巨大的努力。 反观现在这第1卷的第1册,它有哪些新内容呢?作者在书名之下,加了“MMIX—新千年的RISC计算机”,题目本身就已告诉我们它的新颖之处了。 它有哪些值得提及的新内容呢? 其一,是MMIX本身。正如作者在第3版中提到的,MIX已经过时了,因此要使这套书成为时新的,就必须对贯穿于全书的MIX程序都进行全面的改造。光就1~3卷而言,这就涉及几百个大大小小的程序。要进行全部的改写,谈何容易。而且,首先的问题是新的机器应该有什么样的指令系统?作者目前提出的MMIX,真正是简化指令系统的计算机(RISC)。这些指令,既易学,易用,又完全可以同当今的计算机相媲美。甚至如作者所断言的,它还有“超前”的一些特征。作者所言,读者对于学习一种机器语言不应心存犹豫,任何一个对计算机不是心血来潮才感兴趣的人,掌握一种机器语言,是必不可少的,极为中肯。 其二,是MMIX汇编语言。这个汇编语言,有两个部分,一个是同MMIX的指令相对应的指令的汇编形式。另一个是MMIXAL本身,为便于使用这个汇编语言,在这方面,它确实也同原来的MIXAL有很大的不同。 其三,是关于子程序、共行程序以及解释性程序的新内容。这些新的内容,不仅仅是原来用MIX所写的程序,换成了用MMIX写成的程序。更重要的是,它增加了许多新的思想。仅以模拟程序为例,除了程序的修改之外,整个篇幅也发生了变化,由原来的10页增加到17页。足见,内容发生了多大变化。 我们从Donald E. Knuth对于他的这本专著的态度,应当向他学习什么呢?我想,至少我们应该学习这样一些方面。 首先是他的创新思想,Donald E. Knuth处处体现了作为一位杰出科学家的创新。他在近40年前就做出了以多卷书的形式来系统介绍计算机程序设计艺术这样的创举,是他首先建立或奠定了算法设计与分析这门学科,而后他又发明了TEX和METAFONT,使计算机用于排版和印刷上,引发了计算机排版的革命。现在以分册形式来出版专著,又是令世人为之拍案称奇的一个创举。他总是不断地开拓视野,不断地提出问题,而后又着力寻求问题的答案,在攀登科技的新高峰。 其次,是认真负责彻底探索的精神。我们阅读Donald E. Knuth的书,容易发现,他大量地引证国内外的文献,包括现在的和历史的,而且所涉及的也不仅仅是计算机方面的书。就以本书所引用的一些题记而言,好些来自于文学作品,老的有1945年的(图灵的语录);新的有1998年的(布里安·克尔尼日等的语录)。而就技术本身而言,则所引用的不仅有经典的,还包括最新的成果在内。谈到这里,就不能不谈谈我们国内的一些教材。说是21世纪的教材,但是所引用的参考文献,都极为陈旧,或者连一本国外的同类书籍都没有参考,大都是把人家的东西,重新抄作一番,其内容之单薄,其创新点之贫乏,甚至是其错误之繁多,实在使人对这些书的作者们感到汗颜。如果这样也可以算是书,那可真是中国出版界的悲哀了。中国教育目前面临的大问题之一是教材内容的陈旧和粗制滥造,我们有责任呼吁我国的学界,来学一学国外这些科学家的精神,不要把写书当成为沽名钓誉的事而已。 第三,是他精益求精的精神。他对于自己的或别人的工作,总是希望把它们引向尽善尽美的程度,在别人看来已经是很好的结果,但他还是要去进行改进,使得它们达到更好的水平。然而,他在这样做时,又不钻牛角尖,正如他在本书的策略性考虑中所说,大概从没有一个复杂的计算机程序能做到再也不须改进了,所以不应无限次地去做所谓改进的工作。 由于译者水平所限,加上时间仓促,译文中有错误或不当之处,敬请读者不吝指正。 译 者 于广西大学梧州分校 2005年12月 |