悼念伟大的计算机科学家Edsger Wybe Dijkstra

合集下载

汉诺塔——精选推荐

汉诺塔——精选推荐

汉诺塔2018-02-17⼩智超级数学建模1汉诺塔古印度神话故事中,在⼤梵天创造世界的时候,为了考验⼈类,做了三根⾦刚⽯柱⼦,在其中⼀根柱⼦上从下往上按照⼤⼩顺序摞着64⽚黄⾦圆盘。

在⼩圆盘上不能放⼤圆盘,在三根柱⼦之间⼀次只能移动⼀个圆⼤梵天便命令教徒把圆盘按⼤⼩顺序重新摆放在另⼀根柱⼦上,但他还规定了⼀个规则:在⼩圆盘上不能放⼤圆盘,在三根柱⼦之间⼀次只能移动⼀个圆盘。

世界终结的时候。

⼤梵天对教徒们预⾔:当你们完成移动的那⼀刻,就是这个世界终结1883年,法国数学家Édouard L ucas有⼀次碰巧听到这个故事,⽆聊中的Lucas开始思考怎么玩,然⽽Lucas发现移动64层圆盘的过程⾮常繁杂,脑袋根本⽆法承载这么⼤的计算量,便尝试将问题进⾏简化:把6个圆盘从⼀个柱⼦移动到另外⼀个柱⼦,最少需要多少步可以完成?汉诺塔问题。

Lucas也给这个问题取名为汉诺塔问题汉诺塔问题⽰意图其实对于汉诺塔问题,⼤家都应该很熟悉。

不过为了计算更简便些,我们先尝试汉诺塔问题只有3个圆盘的情况下应该怎么做?这个估计⼤家在第⼀时间应该能够反应出来,最后发现只需7步就可以完成。

3个圆盘的汉诺塔解法当圆盘数量增加6个以后,这个时候可能就开始有点懵了:6个圆盘的汉诺塔解法递归解法:可以发现,随着圆盘数的增加,汉诺塔问题难度越来越⼤。

不过⼈类最不怕的就是解决问题,针对汉诺塔问题,数学家们提出了⼀个⾮常巧妙解法,递归S t ep 1:将A柱⼦上的n-1个圆盘搬到B柱⼦上S t ep 2:将A柱⼦上剩下的⼤圆盘搬到C柱⼦上S t ep 3:将B柱⼦上的n-1个圆盘搬到C柱⼦上递归解法的关键步骤:移动最⼤的圆盘到⽬的地我们再考虑⼀下n-1个圆盘是怎么从A柱⼦搬到B柱⼦上的。

我们可以重复上述的过程,完全跟搬从A柱⼦把n个圆盘搬到C柱⼦的过程类似。

S t ep 1:将A柱⼦上的n-2个圆盘搬到C柱⼦上S t ep 2:将A柱⼦上第n-1个⼤圆盘搬到B柱⼦上S t ep 3:将C柱⼦上的n-1个圆盘搬到B柱⼦上移动的过程通过这种递归⽅式可以清晰描述出来,所以我们只需要从最顶层进⾏考虑。

计算机重要人物及算法的力量

计算机重要人物及算法的力量

计算机科学家-约翰· 冯· 诺依曼
1903年12月28日,在布达佩斯诞 生了一位神童,这不仅给这个家庭 带来了巨大的喜悦,也值得整个计 算机界去纪念。正是他,开创了现 代计算机理论,其体系结构沿用至 今,而且他早在40年代就已预见到 计算机建模和仿真技术对当代计算 机将产生的意义深远的影响。他, 就是约翰· 冯· 诺依曼(John Von Neumann)。
李开复之算法的力量(12)
算法并不局限于计算机和网络 举一个计算机领域外的例子:在高能物理研究方面,很多实验 每秒钟都能几个TB的数据量。但因为处理能力和存储能力的不 足,科学家不得不把绝大部分未经处理的数据丢弃掉。可大家 要知道,新元素的信息很有可能就藏在我们来不及处理的数据 里面。同样的,在其他任何领域里,算法可以改变人类的生活。 例如人类基因的研究,就可能因为算法而发明新的医疗方式。 在国家安全领域,有效的算法可能避免下一个911的发生。在 气象方面,算法可以更好地预测未来天灾的发生,以拯救生命。 所以,如果你把计算机的发展放到应用和数据飞速增长的大环 境下,你一定会发现;算法的重要性不是在日益减小,而是在 日益加强。
计算机科学家-姚期智
姚期智(Andrew Chi-Chih Yao),世界 著名计算机学家,2000年图灵奖得主,美 国科学院院士,美国科学与艺术学院院士, 中国科学院外籍院士,清华大学高等研究中 心教授。1967年获得台湾大学物理学士学 位,1972年获得美国哈佛大学物理博士学 位,1975年获得美国伊利诺依大学计算机 科学博士学位。1975年至1986年曾先后 在美国麻省理工学院数学系、斯坦福大学计 算机系、加利福尼亚大学伯克利分校计算机 系任助教授、教授。1986年至2004年在 普林斯顿大学计算机科学系担任Wiliam and Edna Macaleer工程与应用科学教 授。2004年起在清华大学任全职教授。

Dijkstra

Dijkstra

2.崭新的计算机语言:ALGOL
1952至1956年间,程序设计经历了一 个演变的过程,由于系统分组的复杂 性要求操作系统更具结构性的。迪科 斯彻的最短路径算法在这方面取得了 突出进展,在全世界的推动下,一个 科学的计算机语言:ALGOL,不久就 诞生了。迪科斯彻给ALGOL 60下了这 样的定义:“一个奇迹就这样被简单 地创造了。”1962年,罗马公约同意 了其大部分的详述,同年8月,国际信 息处理联盟和程序设计语言联盟批准了该报告。在 ALGOL 60被定义之后,数学中心首先在荷兰开设了 ALGOL 60程序设计语言的课程,接着,1961年在英 国的布莱顿。这是MC一个新的开端:程序设计教育。
EdsgerWybeDijkstra
———结构程序设计之父
contents
1. Dijkstra简介 2. 杰出成就 3. 获得的奖项 4. 生平经历 5. Dijkstra的经典言论
南京邮电大学
简介
艾兹格W迪科斯彻,荷兰人。 计算机科学家,毕业并就职 于荷兰莱顿大学,早年钻研物理及数学,而后转为计算机学。 迪科斯彻于1930年5月11日生于鹿特丹,他的父亲是一位化学 家,他的母亲是一位数学家,这种充满科学气息的家庭背景 对于他的职业生涯乃至他的整个人生都有着深刻的影响。 迪科斯彻是计算机先驱之一,开发了程序设计的框架结构。 曾经提出“goto有害论” ,解决了有趣的“哲学家聚餐”问 题,提出了目前离散数学应用广泛的最短路径算法。与唐纳
4.奥斯汀:新纪元的起点
南京邮电大学
5.得克萨斯州立大学:超级计算机
1999年,迪科斯彻在他69 岁的时候,结束了作为教授 的职业生涯。回顾47年的 艰苦工作,为了一个更好、 更简单、更准确的编程方法 而不停地努力。迪科斯彻认 为最具价值的是他对学生的 教导,而且能够向人们展示 这项工作可以做的比他们所 知或所想象的更加出色。能 够做到吸引他人,已经成为了他最有收获的活动。 “对于我来 说,计算机科学上的第一个挑战是如何把命令维持在有限个内。 第二个也是同样重要的挑战是如何传授解决那第一个问题的方 法:只培养你个人的才智是不够的,你必须教会其他人如何去 发挥他们的才智。你越关注这两个挑战,你越会清楚的看到它 们只不过是同一枚硬币的两个面:自学是去发现什么东西是可 以被教会的。”

全国青少年信息学奥林匹克联赛初赛练习卷(六)答案

全国青少年信息学奥林匹克联赛初赛练习卷(六)答案

全国青少年信息学奥林匹克联赛初赛练习卷(六)答案(普及组PASCAL语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(20题,每题1.5分,共30分)1.小张用十六进制,八进制和十进制写了如下一个等式:52 – 19 = 33式中三个数是各不相同进位制的数,试问52、19、33,分别为___________.(A)八进制,十进制,十六进制(B)十进制,十六进制,八进制(C)八进制,十六进制,十进制(D)十进制,八进制,十六进制2.下列if语句中,endif表示相应if的结束:y=0if x<0then y=5else if x<10 theny=10if x<100 then y=100 endifelse y=200endifendif试指出:当x=80时,运行的结果为__E__,当x=5时结果为__D_。

A、y=9B、y=5C、y=10D、y=100E、y=2003.下列哪个网络上常用的名字缩写是错误的()。

A.WWW(World Wide Web)B.URL(Uniform Resource Locator)C.HTTP(Hypertext Transfer Protocol)D.FTP(Fast Transfer Protocol){应该是“File Transfer Protocol”}E.TCP(Transfer Control Protocol)。

4.不能在Linux 上使用的网页浏览器是()。

A. Internet ExplorerB. NetscapeC. OperaD. FirefoxE. Mozilla5.一位艺术史学家有20000 幅1024 * 768 的真彩色图像,如果将这些图像以位图形式保存在CD 光盘上(一张CD 光盘的容量按600M计算),大约需要()张CD光盘。

A. 1B. 10C. 100D. 1000E. 10000(1024*768*32*20000)/ (8*1024*1024*600) =100张6.由3个a,5个b和2个c构成的所有字符串中,包含子串“abc”的共有()个。

NOIP 题目

NOIP 题目

NOIP2008一、单项选择题(共10题,每题1.5分,共计15分。

每题有且仅有一个正确答案)。

1.在以下各项中,()不是操作系统软件。

A.Solaris B.Linux C.Sybase D.Windows Vista E.Symbian2.微型计算机中,控制器的基本功能是()。

A.控制机器的各个部件协调工作B.实现算数运算与逻辑运算C.存储各种控制信息D.获取外部信息E.存放程序和数据3.设字符串S=“Olympic”,S的非空字串的数目是()。

A.29 B.28 C.16 D.17 E.74.完全二叉树有2*N-1的结点,则它的叶子结点数目是()。

A.N-1 B.2*N C.N D.2N-1 E.N/25.将数组{8,23,4,16,77,-5,53,100}中元素从大到小按顺序排序,每次可以交换任意两个元素,最少要交换()次。

A.4 B.5 C.6 D.7 E.86.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈,出栈顺序为b,d,c,f,e,a那么栈容量至少应该是()。

A.6 B.5 C.4 D.3 E.27.与十进制数28.5625相等的四进制数是()A.123.21 B.131.22 C.130.22 D.130.21 E.130.208.递归过程和函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。

A.队列B.多维数组C.线性表D.链表E.栈9.TCP/IP 是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际互联协议(IP)。

TCP/IP协议把Internet网络系统描述成具有4个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是()。

A.链路层B.网络层C.传输层D.应用层E.会话层10.对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,等概率情况下,查找成功的平均查找长度(平均比较次数)是()。

由三村最短路问题两个解法引发的推广

由三村最短路问题两个解法引发的推广

由三村最短路问题两个解法引发的推广背景在计算机科学中,最短路算法是一个基本的算法。

计算机科学的研究者一直在寻找更快、更有效的算法来解决这个问题。

因为最短路问题在许多实际应用程序中都是必须解决的问题。

其中一个最著名的应用是导航问题。

在最短路算法中,三村最短路问题是其中一个比较有名的问题。

三村最短路问题是指,在一个由三个节点组成的图中,寻找从第一个节点到第三个节点的最短路径。

不过,这个问题也可以扩展到多个节点的情况。

在这个问题中,我们需要找到一个算法,去计算每一个节点之间的距离,然后找到从起点到终点的最短路径。

这个问题在实际应用中是非常有用的,比如说在导航系统中,起点是你的当前位置,终点是你要到达的目的地。

解法一:Dijkstra算法Dijkstra算法是一个比较有名的最短路算法。

它是由荷兰计算机科学家Edsger Wybe Dijkstra在1956年发明的。

Dijkstra算法的核心是一个图中的顶点集合,被划分为两个部分:一个是已找到最短路径的顶点集合;另一个是未找到最短路径的顶点集合。

算法的步骤如下:1.初始化:将起点标记为已访问,并且将起点到起点的距离设为0,同时把起点的所有邻居节点加入未访问节点集合中。

2.遍历:对于所有的未访问节点中,选择当前距离起点最近的节点进行访问。

3.更新:对于已访问节点的邻居节点,更新它们到起点的距离,如果更新后的距离小于原来的距离,则更新邻居节点的距离(注意这里只会更新未访问节点的距离)。

如果更新了距离,则更新邻居节点到起点的路线。

4.重复步骤2和3直到访问完所有未访问节点或到达终点。

使用Dijkstra算法求解三村最短路问题,只需要按照上述步骤进行即可。

解法二:Floyd算法Floyd算法是另外一种比较有名的最短路算法,它是由Robert W. Floyd在1962年发明的。

Floyd算法的思路是一个动态规划算法,它通过中转点进行路径优化,最终得出最短路径。

因为它是一个动态规划算法,所以它的时间复杂度比较高,但是在实际应用中,还是被广泛采用的。

计算机基础-练习题

计算机基础-练习题

以下题目均为不定项选择题。

1. 以下不属于CPU的组成部件的是()。

A. 控制器B. 运算器C. 寄存器D. 高速缓存2. 129.168.0.1属于()。

A. A类地址B. B类地址C. C类地址D. D类地址3. 使用Email时,接收和发送电子邮件的服务器分别称为()服务器和()服务器。

A. POP3 SMTPB. SMTP POP3C. HTTP FTPD. FTP HTTP4. 不能在Linux上使用的网页浏览器是()。

A. Internet ExploreB. NetscapeC. OperaD. Firefox5. 下列属于冯·诺依曼计算机模型的核心思想是()。

A. 采用二进制表示数据和指令B. 采用“存储程序”工作方式C“计算机硬件有五大部件(运算器、控制器、存储器、输入和输出设备)D. 结构化程序设计方法E. 计算机软件只有系统软件6. 计算机系统中按传送信号不同可将总线分为()。

A.地址总线B.控制总线C.数据总线D.内存总线E.主板总线7. 在整数的补码表示法中,以下说法正确的是()。

A.只有负整数的编码最高位为1B.在编码的位数确定后,所能表示的最小整数和最大整数的绝对值相同C.整数0只有一个唯一的编码D.两个用补码表示的数相加时,若在最高位产生进位,则表示运算溢出8. 下列说法中,哪个(些)是错误的()。

A. 程序是指令的序列,它有三种结构:顺序、分支和循环。

B. 数据总线决定了中央处理器CPU所能访问的最大内存空间的大小。

C. 中央处理器CPU内部有寄存器组,用来储存数据。

D. 不同厂家生产的CPU所能处理的指令集是相同的。

E. 数据传输过程中可能会出错,奇偶校验法可以检测出数据中哪一位在传输中出了差错。

9. 设字长n=8位,x=-1011011B,以下说法正确的是()。

A. [x]原= 11011011BB. [x]原= 对应十进制为-91C. [x]反= 10100100BD. [x]补= 10100101BE. [x]补= 对应十进制为-3710. 表达式(1 + 34) ×5 – 56 / 7 的后缀表达式为()。

学习电脑信息信息奥赛理论部分选择题60道

学习电脑信息信息奥赛理论部分选择题60道

信息奥赛理论部分选择题60道5.CPU访问内存的速度比访问下列哪个存储设备要慢( )。

A)寄存器 B)硬盘 C)软盘 D)磁带 E)光盘6.下列电子邮件地址,正确的是( )。

A)*****************)**********************.jpC)162.105.111.22 D)E)http://7.下列哪个不是个人计算机的硬件组成部分( )。

A)主板 B)操作系统 C)电源 D)硬盘 E)软驱8.第一个给计算机写程序的人是( )。

A)Alan Mathison Turing B)Ada LovelaceC)John von Neumann D)John McCarthy E)Edsger Wybe Dijkstra9.十进制数2003等值于二进制数( )。

A)11111010011 B)10000011 C)110000111 D)010000011l E)111101001110.下列关于程序语言的叙述,不正确的是( )。

A)编写机器代码不比编写汇编代码容易。

B)高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行。

C)同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序。

D)汇编代码可被CPU直接运行。

E)不同的高级语言语法略有不同。

11.假设A=true,B=false,C=true,D=true,逻辑运算表达式A∧B∨C∧D的值是( )。

A)true B)false C)0 D)1 E)NULL12.下列关于文件的叙述,不正确的是( )。

A)一个可执行程序其实也是一个文件。

B)文件可大可小,大的文件一张软盘装不下。

C)一个文件夹下面可以有两个同名的文件,只要它们的大小不同就行了。

D)文件的创建日期和最新修改日期可以在资源管理器中看到。

E)某些文件的内容可以用记事本(Notepad)看到。

13.活动硬盘的容量比固定硬盘的容量( )。

A)大 B)小 C)相等 D)不一定大 E)大致相等14.美籍匈牙利数学家冯·诺依曼对计算机科学发展所做出的贡献是:()A、提出理想计算机数学模型,成为计算机科学理论基础B、是世界上第一个编写计算机程序的人C、提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机EDVACD、采用集成电路作为计算机的主要功能部件E、指出计算机性能将以每两年翻一番的速度向前发展15、下列网络中常用的名字缩写对应的中文解释错误的是()A、WWW(World Wide Web):万维网B、URL(Uinform Resource Locator):统一资源定位器C、HTTP(Hypertext Transfer Protocol):超文本传输协议D、FTP (File Transfer Protocol):快速传输协议E、TCP (Transfer Control Protocol):传输控制协议16、下面哪个部件对于个人桌面电脑的正常运行不是必需的()A、cpuB、显卡(图形卡)C、光驱D、主板E、内存17、下列哪个软件属于操作系统软件()A、Microsoft WordB、金山词霸C、FoxmailD、WinRARE、Red Hat Linux18、下列哪个不是计算机存储设备()、A、文件管理器B、内存C、高速缓存D、硬盘E、U盘19、下列说法中错误的是()A、CPU的基本功能就是执行指令B、CPU访问内存的速度快于访问高速缓存的速度C、CPU的主频是指CPU在1秒内完成的指令周期数D、在一台计算机内部,一个内存地址编码对应唯一的一个内存单元E、数据中线的宽度决定了一次传递数据量的大小20、用静电吸附磨粉后转移到纸张上,是那种输出设备的工作方式()A、针式打印机B、喷墨打印机C、激光打印机D、笔式绘图仪E、喷墨绘图仪21、一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行互相转换的设备,这种设备是()A、调制解调器B、路由器C、网卡D、网关E、网桥22、下列哪个不是数据库软件的名称()33. 下列关于高级语言的说法错误的是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

悼念伟大的计算机科学家Edsger Wybe Dijkstra悼念伟大的计算机科学家Edsger Wybe Dijkstra2002年8月8日,我象往常一样查看自己在extremeprogramming电子小组上订阅的newsletter。

突然看到这个小组上的稀客、OO教父Grady Booch的发言,题目是Dijkstra。

我以为大家在讨论Dijkstra教授提出的什么难题,定睛一看,才知道是一篇类似生平介绍式的讣告——在与癌症进行了多年的斗争之后,伟大的荷兰计算机科学家Edsger Wybe Dijkstra已经于2002年8月6日在荷兰Nuenen自己的家中与世长辞!终年72岁。

原来如此!这个Dijkstra,就是那个提出&#8220;goto有害论&#8221;的Dijkstra,就是那个提出信号量和PV原语,解决了有趣的&#8220;哲学家聚餐&#8221;问题的Dijkstra,那个Dijkstra最短路径算法的创造者,第一个Algol 60编译器的设计者和实现者,THE操作系统的设计者和开发者,那个与D. E. Knuth并称为我们这个时代最伟大的计算机科学家的人。

阿兰图灵的自杀是在办个世纪之前,冯诺依曼去世也已经多年,作为这个相对新兴的行当中的从业者,我们似乎已经很习惯于从相信,从书上读到的每个名字都是仍然在世的活生生的人,都是我们这个时代的骄傲。

无论是仍然健硕的D. E. Knuth,Fred Brooks,Dennis Ritchie, Ken Thompson, Brian Kernighan, 还是正当盛年的Bjarne Stroustrup,Grady Booch,Steve McConnell, Andy Koenig, Robert Martin, Kent Becker, Martin Fowler, James Gosling, 再或者是青春年少,意气风发的Linus Trovalds,Andrei Alexandrescu,我们似乎都习惯于认为,只要一封email,这些书本上的名字就会立刻成为你的朋友。

Internet把地球变成了一个大村庄,每个人的距离都那么的近。

但是可惜,Internet却无法缩短跨越生与死的冥界。

今天,一颗真正的巨星在我们的眼前陨落!作为一名普通的程序员,我从内心感到惋惜和悲痛。

这种悲痛,两年半前在我最初得知Richard Stevens的逝世时,也曾感受过,然而却不如今天来得这么强烈。

毕竟,当我对编程还是懵懵懂懂的时候,就知道有个叫Dijkstra的人劝告大家不要滥用goto,而在那之前,goto在我看来就是编程的全部奥秘所在。

之后我在学习算法、数据结构、操作系统等课程的时候,Dijkstra这个名字一次又一次从书里跳出来,我对于这个名字的崇敬也越来越深。

我知道他晚年疯狂的迷恋C++,这也几乎是我这个C++ Fan所能感受到的最大荣幸。

我曾想过,有朝一日,我会给他写一封email,什么也不说,只想表达我个人对他的感谢和敬意。

没想到,如今连这个机会也没有了!Dijkstra引导了并且将继续引导这个星球上所有的程序员,他的贡献和影响将与世长存,让我们祝他安息!【附】Grady Booch对Dijkstra的介绍&gt; Professor Edsger Wybe Dijkstra, a noted pioneer of the science and&gt; industry of computing, died after a long struggle with cancer on 6&gt; August 2002 at his home in Nuenen, the Netherlands.&gt;&gt; Dijkstra was born in 1930 in Rotterdam, The Netherlands, the son of a&gt; chemist father and a mathematician mother. He graduated from the&gt; Gymnasium Erasmianum in Rotterdam and obtained degrees in mathematics&gt; and theoretical physics from the University of Leyden and a Ph.D. in&gt; computing science from the University of Amsterdam. He worked as a&gt; programmer at the Mathematisch Centrum, Amsterdam, 1952-62; was&gt; professor of mathematics, Eindhoven University ofTechnology,&gt; 1962-1984; and was a Burroughs Corporation research fellow, 1973-1984.&gt; He held the Schlumberger Centennial Chair in Computing Sciences at the&gt; University of Texas at Austin, 1984-1999, and retired as Professor&gt; Emeritus in 1999.&gt;&gt; Dijkstra is survived by his wife of over forty years, Maria (Ria) C.&gt; Dijkstra Debets, by three children, Marcus J., Femke E., and computer&gt; scientist Rutger M. Dijkstra, and by two grandchildren.&gt;&gt; Dijkstra was the 1972 recipient of the ACM Turing Award, often viewed&gt; as the Nobel Prize for computing. He was a member of the Netherlands&gt; Royal Academy of Arts and Sciences, a member of the American Academy&gt; of Arts and Sciences, and a Distinguished Fellow of theBritish&gt; Computer Society. He received the 1974 AFIPS Harry Goode Award, the&gt; 1982 IEEE Computer Pioneer Award, and the 1989 ACM SIGCSE Award for&gt; Outstanding Contributions to Computer Science Education. Athens&gt; University of Economics awarded him an honorary doctorate in 2001. In&gt; 2002, the C&amp;C Foundation of Japan recognized Dijkstra "for his&gt; pioneering contributions to the establishment of the scientific basis&gt; for computer software through creative research in basic software&gt; theory, algorithm theory, structured programming, and semaphores".&gt;&gt; Dijkstra is renowned for the insight that mathematical logic is and&gt; must be the basis for sensible computer program construction and for&gt; his contributions to mathematical methodology. He is responsible for&gt; the idea of building operating systems as explicitly synchronized&gt; sequential processes, for the formal development of computer programs,&gt; and for the intellectual foundations for the disciplined control of&gt; nondeterminacy. He is well known for his amazingly efficient shortest&gt; path algorithm and for having designed and coded the first Algol 60&gt; compiler. He was famously the leader in the abolition of the GOTO&gt; statement from programming.&gt;&gt; Dijkstra was a prodigious writer. His entire collection of over&gt; thirteen hundred written works was digitally scanned and is accessible&gt; at /users/EWD. He also corresponded regularly&gt; with hundreds of friends and colleagues over the years--not by email&gt; but by conventional post. He strenuously preferred the fountain pen to&gt; the computer in producing his scholarly output and letters. &gt;&gt; Dijkstra was notorious for his wit, eloquence, and way with words,&gt; such as in his remark "The question of whether computers can think is&gt; like the question of whether submarines can swim"; his advice to a&gt; promising researcher, who asked how to select a topic for research:&gt; "Do only what only you can do"; and his remark in his Turing Award&gt; lecture "In their capacity as a tool, computers will be but a ripple&gt; on the surface of our culture. In their capacity as intellectual&gt; challenge, they are without precedent in the cultural history of&gt; mankind."&gt;&gt; Dijkstra enriched the language of computing with many concepts and&gt; phrases, such as structured programming, separation of concerns,&gt; synchronization, deadly embrace, dining philosophers, weakest&gt; precondition, guarded command, the excluded miracle, and the famous&gt; "semaphores" for controlling computer processes. The Oxford English&gt; Dictionary cites his use of the words "vector" and "stack" in a&gt; computing context.&gt;&gt; Dijkstra enjoyed playing Mozart for his friends on his Boesendorfer&gt; piano. He and his wife had a fondness for exploring state and national&gt; parks in their V olkswagen bus, dubbed the Touring Machine, in which he&gt; wrote many technical papers.&gt;&gt; Throughout his scientific career, Dijkstra formulated and pursued the&gt; highest academic ideals of scientific rigour untainted by commercial,&gt; managerial, or political considerations. Simplicity, beauty, and&gt; eloquence were his hallmarks, and his uncompromising insistence on&gt; elegance in programming and mathematics was an inspiration to&gt; thousands. He judged his own work by the highest standards and set a&gt; continuing challenge to his many friends to do the same. For the rest,&gt; he willingly undertook the role of Socrates, that of a gadfly to&gt; society, repeatedly goading his native and his adoptive country by&gt; remarking on the mistakes inherent in fashionable ideas and the&gt; dangers of time-serving compromises. Like Socrates, his most&gt; significant legacy is to those who engaged with him in small group&gt; discussions or scientific correspondence abouthalf-formulated ideas&gt; and emerging discoveries. Particularly privileged are those who&gt; attended his reading groups in Eindhoven and Austin, known as the&gt; "Tuesday Afternoon Clubs".&gt;&gt; At Dijkstra's passage, let us recall Phaedo's parting remark about&gt; Socrates: "we may truly say that of all the men of his time whom we&gt; have known, he was the wisest and justest and best." Edsger Dijkstra经典言论1. 编程的艺术就是处理复杂性的艺术。

相关文档
最新文档