【转贴】计算机界三人行
计算机界三人行
·七 月·
1。高德纳和《计算机程序设计艺术》
我第一天去见我的研究生导师,他给了我一套Donald E. Knuth的 “The Art of Computer Programming”,让我先读了这本书再说。
《计算机程序设计艺术》重译自Donald E. Knuth(汉名高德纳)的三卷著作:"The Art of Computer Programming: 1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching";三卷中文名为《基本算法》、《半数值算法》及《排序与查找》。
这本书内容博大精深,作者因为三卷书获得美国计算机协会1974年图灵奖(该奖被国际公认为计算机科学领域的最高奖项)。
作者D. E. Knuth是在计算机学界十分著名的学者,在本领域享有很高权威和盛名,他的这部著作是无数计算机专业人员的学习教材和参考读物,也是许多专业研究工作者经常阅读的经典,已被翻译为几十种文字在世界各地出版,英文原版书已经是第11次印刷。
该书1999年底被American Scientist列为20世纪最佳12部学术专著之一(与狄拉克的量子力学、爱因斯坦的相对论、曼德布罗特的分形论、鲍林的化学键、罗素和怀特海德的数学基础、冯诺意曼和摩根斯坦的博弈论、维纳的控制论、伍德沃和霍夫曼的轨道对称性、费曼的量子电动力学等科学史上的经典著作并列)。
Donald E. Knuth,1938年出生于Wisconsin。1960年,当他毕业于Case Institute of Technology数学系时,因为成绩过于出色,被校方打破历史惯例,同时授予学士和硕士学位。他随即进入大名鼎鼎的加州理工学院数学系,仅用三年时间便取得博士学位,此时年仅25岁。
毕业后留校任助理教授,28岁时升为副教授。30岁时,加盟斯坦福大学计算机系,任正教授。从31 岁那年起,他开始出版他的历史性经典巨著:The Art of Computer Programming。他计划共写7卷,然而仅仅出版三卷之后,已经震惊世界,使他获得计算机科学界的最高荣誉图灵奖(Turing Award),此时,他年仅36岁。后来,此书与牛顿的“自然哲学的数学原理”等一起,被评为“世界历史上最伟大的十种科学著作”之一。相信学过数据结构和编译原理的人都知道KMP算法和LR(K)算法有多么不可思议,然而此书中这样的算法比比皆是!
Knuth获得图灵奖时为36岁,他是历史上最年轻的图灵奖获得者,甚至有可能永远把这个记录保持下去。
Knuth会弹管风琴,对《圣经》也有极深刻的研究,写了专著。
2。黑客理查德·马修·斯托曼
目前,在计算机工业里方兴未艾的开放源代码(open source)和自由软体(Free Software)运动来自于一位叫理查德·马修·斯托曼(Richard Matthew Stallman)的黑客。
黑客是英文‘hacker’的汉译。主要是指对计算机科学,尤其是软件编程方面具高度理解的人。
斯托曼1953年出生于美国纽约曼哈顿地区的犹太人家庭,1971年进入哈佛大学学习,同年受聘于麻省理工学院人工智能实验室(AI Laboratory)。在AI实验室工作期间,斯托曼开发了多种软件,其中最著名的就是Emacs。说得通俗一点,Emacs就是一个编辑软件,如同我们今天用的微软的办公室。
Emacs不仅仅是一个编辑器,还是个集成开发环境,它的功能有:收发电子邮件,通过FTP/TRAMP编辑远程档案,通过Telnet登录主机,上新闻组,登陆IRC和朋友交流,查看日历,撰写文章大纲,对多种编程语言的编辑,调试程序,结合GDB,EDebug,玩游戏,计算器,记日记,煮咖啡,管理日程等等。
斯托曼在AI是一名典型的黑客,是整个黑客文化的一份子。在黑客世界里,各组织的精神与文化都是不相同的,但有一个共同点就是对技术的崇拜与对创新的不断追求和推动自由软件运动,发现漏洞并通知协助管理员修补它从而缔造“完美”无暇的软件,这是黑客们最热爱的一种精神与文化。所谓自由软件就是一种可以不受限制地自由使用,复制、研究、修改和分法的软件。
然而进入八十年代后,黑客社群在软件工业商业化的强大压力下日渐土崩瓦解,甚至连AI实验室的许多黑客也组成了Symbolic公司,试图以专利软件来取代实验室中黑客文化的产物--可自由流通的软件。
斯托曼对此感到气愤与无奈。在对Symbolic进行了一段时间的抗争后,他于1985年发表了著名的GNU宣言(GNU Manifesto),正式宣布要开始进行一项宏伟的计划:创造一套完全自由,兼容于Unix的操作系统GN(GNU's Not Unix!),之后他又建立了自由软件基金会来协助该计划。
他于1989年与一群律师起草了广为使用的GNU通用公共协议证书(GNU General Public License, GNU GPL),创造性地提出了“Copyleft”的概念。 Copyleft是一种在现有著作权体制下的授权方式,它要求使用者必须要以同等的授权方式回匮社群。虽然与常见的著作权模式不同,但並未放弃著作权,而是利用著作权法律來促进创作自由,並未反对著作权的基本体制。
1990年代中期,斯托曼把他大部時间花在为自由软件辩护,对抗软件概念专利及版权法的扩张。他仍在程式設计方面奉献的心力都放在GNU Emacs。他的演讲当中大约半数有收入,这让他能夠活自己。
他最大的影响是为自由软件运动建立了道德、政治以及法律框架。他被许多人誉为当今自由软件的斗士、伟大的理想主义者。
3。彼得.诺尔和BNF和Datalogy
彼得.诺尔(Peter Naur)是2005年图灵奖(Turing Award)的获奖者,他的主要成就是Algol 60语言和编译器。
他是个丹麦人,天文学博士。后来就去搞计算机基础语言去了。
ALGOL 国际代数语言
ALGOL是计算机发展史上首批产生的高级语言,当时还是晶体管计算机流行的时代,由于ALGOL语句和普通语言表达式接近,更适于数值计算,所以ALGOL多用于科学计算机。
ALGOL这个名称是算法语言的简称,这种语言不是计算机制造公司为某种特定机器设计的,而是纯粹面向描述计算过程的,也就是所谓面向算法描述的。
ALGOL是第一个清晰定义的语言,其语法是用严格公式化的方法说明的。ALGOL语言并没有被广泛的使用,但它是许多现代程序语言的概念基础。
Algol 58:1958年,ACM小组和以当时联邦德国的应用数学和力学协会GAMM在苏黎世把他们关于算法表示法的建议综合为一,形成了Algol 58,先被命名为IAL(国际代数语言,International Algebraic Language),后来改称Algol 58。
Algol 60:1960年1月,图灵奖获得者:艾伦.佩利(Alan J.Perlis)在巴黎举行的有全世界一流软件专家参加的讨论会上,发表了"算法语言Algol 60报告",确定了程序设计语言Algol 60。1962年,艾伦.佩利又对Algol 60进行了修正。
Algol 60引进了许多新的概念如:局部性概念、动态、递归、巴克斯瑙尔范式BNF(Backus-Naur Form)等等。
Algol 60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科,并为后来软件自动化及软件可靠性的发展奠定了基础。
Algol W:1966年,IFIP吸收沃思参加对Algol语言进行完善与扩充的工作小组。沃思参加进去以后,提交了一份建议书并由霍尔(Tony Hoars)等人修改、完善以后形成Algol W。同时还催生了一个新的语言PL 360。
BNF notation: N 就是Naur。巴科斯范式(BNF: Backus-Naur Form 的缩写)描述计算机语言语法的符号集
在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
尖括号( )内包含的为必选项。
方括号( [ ] )内包含的为可选项。
大括号( { } )内包含的为可重复0至无数次的项。
竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。
::= 是“被定义为”的意思。
巴科斯范式示例
下面是用BNF来定义的Java语言中的For语句的实例:
FOR_STATEMENT ::=
"for" "(" ( variable_declaration |
( expression ";" ) | ";" )
[ expression ] ";"
[ expression ] ";"
")" statement
这是用BNF来定义的BNF本身的例子。
这个老头最有趣的有两点:
1)他痛恨“computer science ”, 并为此创立了一个新名词:datalogy, 事实上,丹麦已经不再用computer science 这个名词了,而用datalogy。
2)他反对现有的哲学和心理学试图找出事物之间的联系的思想,认为世界就是不同facts的集合,facts之间没有必然的联系。他发展了一种叫做Synapse-State Theory of Mental Life(他创立的名词)的思想观。
不吃不睡学电脑
2008-06-05 18:40:12Stallman真的很酷哈,