当前位置 主页 > 站长资源大全 > iis7百科 > 最大化 缩小

    艾兹格·W·迪科斯彻——结构程序设计之父

    栏目:iis7百科 时间:2019-10-18 13:55

      艾兹格·W·迪科斯彻 (Edsger Wybe Dijkstra,1930年5月11日——2002年8月6日)荷兰人。 计算机科学家,毕业就职于荷兰Leiden大学,早年钻研物理及数学,而后转为计算学。曾在1972年获得过素有计算机科学界的诺贝尔奖之称的图灵奖,之后,他还获得过1974年 AFIPS Harry Goode Memorial Award、1989年ACM SIGCSE计算机科学教育教学杰出贡献奖、以及2002年ACM PODC最具影响力论文奖。
      他是计算机先驱之一,他开发了程序设计的框架结构。 Edsger Wybe Dijkstra于1930年5月11日生于Rotterdam,他的父亲,Douwe Wybe Dijkstra是一位化学家,他的母亲,Brechtje Cornelia Kruyper是一位数学家,这种充满科学气息的家庭背景对于他的职业生涯乃至他的整个人生都有着深刻的影响。Edsger Wybe Dijkstra在当地的Gymnasium Erasmianum读高中,1948年,他考入了Leyden大学。他在联合国从事法律方面的工作时却在怀念在Erasmianum的日子。但之后,他选择了数学和物理。



    成就:
      1、提出“goto有害论”。
      2、提出信号量和PV原语。
      3、解决了“哲学家聚餐”问题。
      4、Dijkstra最短路径算法和银行家算法的创造者。
      5、第一个Algol 60编译器的设计者和实现者。
      6、THE操作系统的设计者和开发者。
      与D. E. Knuth并称为我们这个时代最伟大的计算机科学家的人。
      与癌症抗争多年,于2002年8月6日在荷兰Nuenen自己的家中去世,享年72岁。
    结构程序设计之父:
      Dijkstra被西方学术界称为“结构程序设计之父”和“先知先觉”(Oracle),他一生致力于把程序设计发展成一门科学。科学研究的帅才最重要的素质是洞察力(Vision和Insight),能够发现有前景的新领域或在新领域内发现和解决最关键的问题。下面仅举几例说明Dijkstra的洞察力。
    解决编译系统中的关键问题:
      FORTRAN是最早得到一定程度推广的高级语言,但FORTRAN的编译系统并未科学地解决一些主要的难题。最早提出用堆栈(stack)来编译复杂公式的是德国的Bauer和Samelson,他们的著名论文“顺序公式的翻译”(Sequential Formula Translation)是编译方面的经典论文。曾有报道说Dijkstra是堆栈的发明人,这恐怕不符事实。Dijkstra发展了堆栈的概念,使之用于整个编译,以及目标代码运行时的动态存储分配,并在此基础上和Jenson完成了世界上第一个ALGOL60编译系统,采用了他首创的优先数编译算法。其中递归调用子程序时的环境维护是Dijkstra的重要贡献,Display这一术语就是当时他发明的,这是用来维护动态环境的一组寄存器(软件),其结构清晰并能适应任何复杂情况。我于20世纪60年代初看完他的文章后马上想到,假如计算机硬件中有对应的设备将极大地提高软件的运行效率。
      Dijkstra是ALGOL 60报告的主要起草者之一,1972年Dijkstra在他获得ACM图灵奖的讲演中,仍对这一报告给予高度评价:“只有极少极少几个像ALGOL60报告这样短的文件能给计算机界带来如此深远的影响。”
    同步进程的协调和操作系统的结构:
      Dijkstra在1950——1952年期间曾当过三年程序员,在从事硬件中断处理程序的研制中,他发现一些程序错误在多个中断同时出现的情况下无法再现,很容易被当作硬件的瞬间故障,这一现象使Dijkstra毛骨悚然,促使他后来钻研用科学方法从事软件研制。操作系统是当时最复杂的软件,1965年Dijkstra在ACM通讯上发表了仅一页长的短文“并行程序的控制”,这是他在操作系统领域的第一个重要贡献。该文提出了并行程序互锁问题的一个解决方案。“死锁”(Deadly embrace)这一术语是Dijkstra发明的。1967年在首届操作系统原理研讨会上,Dijkstra介绍了他和几个博士生研制的THE多道程序系统。THE系统的目的是验证Dijkstra关于操作系统原理、结构、同步进程通信机制等方面的一系列新想法。今天已经普遍采用的系统的多层结构、抽象、上层不需了解下层的详细细节等科学原则就是当时Dijkstra提出的,引起了强烈反响;同步进程通信的信号量Semaphore这一术语也是Dijkstra当时创造的。