【CSDN 编者按】尼古拉斯•威茨(Niklaus Wirth)是瑞士计算机科学家,也是计算机编程领域的祖师爷,他先后参与或独立发明了Euler、Pascal及Modula等多种编程语言,于1984年被授予图灵奖,他的名言“算法+数据结构=程序”(Algorithm+Data Structures=Programs)在计算机领域几乎人尽皆知。

作者 | 年素清

责编 | 王晓曼

出品 | 程序人生 (ID:coder _life)

读博期间设计出Euler

威茨于1934年出生在瑞士北部的温特图尔,父亲是一位地理学教授。威茨自幼聪明,从小就显示出超强的动手能力,他最大的爱好就是组装飞机模型。

中学毕业以后,威茨进入世界著名学府的苏黎世工学院(ETH),并于1958年取得学士学位。之后他进入加拿大的莱维大学继续深造,并于1960年取得硕士学位。之后他又一次迁移到美国加州,进入加州大学伯克利分校攻读博士学位。

读大学时候的威茨已经在计算机领域崭露头角。威茨在撰写博士论文时,Algol 60语言刚刚问世。它是第一个清晰定义的语言,其语法是用严格公式化的方法说明的。但当时已有一些学者认识到,清晰的规格说明虽然有助于可靠而有效的实现,但Algol 60报告中仍然有一些缺陷和不足。

威茨在和Algol的主要设计者冯•维京格藤(Andrian van Wijngaarden)多次交流之后,决定对Algol 60做进一步优化,并以此为自己的博士论文课题,后来就诞生了Euler。

Euler是威茨所参与设计的第一个语言,虽然在实用性上尚欠缺考虑,但在学术上却非常优美,为编译器的系统设计创造了一个很好的基础。

设计出Algol-W

博士毕业以后,因为在Euler上的成就,威茨得以进入门槛极高的斯坦福大学工作。

与此同时,负责Algol语言完善与扩充的工作小组也看中了威茨,想招他进去工作。威茨进去之后,发现小组分成两派:一派主张设计一个新语言,以便树起一个新的里程碑;另一派则觉得时间太紧,主张对Algol 60进行适当优化。威茨便自称同时属于这两派,并提交了一份建议书。这份建议书经过托尼•霍尔(Tony Hoare)等人的修改和完善以后顺利通过,这就是Algol-W(W是威茨名字的首字母)。

之后,威茨带领学生在一台IBM 360上试着将这份建议书投入实践。但是当时的IBM 360只提供汇编语言和FORTRAN语言,威茨和他的学生都觉得这两者并不适合作为设计编译器的工具。为此,威茨决定设计一种新的语言来编写 Algol-W的编译器。威茨用了两周时间写出这个语言的定义,然后用了4个月的时间在Burroughs公司的Bu5000计算机上完成了交叉编译程序,而威茨的一个学生则把这个交叉编译程序成功移植到了IBM 360。

这些额外的工作虽然耗费了威茨大量的精力和时间,但也加快了Algol-W编译器的开发,同时催生了一个新的语言PL360(Pascal的前身)。

1966年,Algol-W正式诞生并投入使用。

Pascal之父

PL360本是作为辅助工具而开发的,但却在许多地方获得应用,威茨在此基础上,对PL360进行了进一步的完善和补充,为纪念法国数学家和哲学家布莱兹•帕斯卡(Blaise•Pascal),他将这种语言命名为“Pascal”。

Pascal是最早出现的结构化编程语言,具有丰富的数据类型和简洁灵活的操作语句,Pascal是高级语言发展史上的一个重要里程碑。

Pascal问世之后,由于它的简洁明了以及所提供的丰富的数据结构和控制结构为程序员提供了极大的方便与灵活性,加之其适合于由微处理器所组成的计算机系统,很快广泛地流传开来。在C语言问世以前,Pascal是风靡全球、最受欢迎的语言之一,创下了发行拷贝数最多的世界记录。威茨的一个学生菲力浦•凯恩(Phillipe Kahn),从苏黎世工学院毕业以后,在美国加利福尼亚州办了一个软件公司,卖出了100多万份Pascal拷贝,因此而赚得钵满盆溢。

首次提出结构化程序设计概念

威茨基于自己开发程序设计语言和编程的实践经验,在1971年发表的“通过逐步求精方式开发程序’(Program Development by Stepwise Refinement)一文中,首次提出了“结构化程序设计”(structure programming)的概念。

这个概念简而言之,就是不要求一步就编制成可执行的程序,而是分若干步进行,逐步求精。第一步编出的程序抽象度最高,第二步编出的程序抽象度有所降低,一直到最后一步编出的程序即为可执行的程序。用这种方法编程看似复杂,实际上可以使程序更加地易读、易写、易调试、易维护、易验证。

结构化程序设计方法又称为“自顶向下”或“逐步求精”法,在程序设计领域引发了一场革命,不久便成为程序开发的一个标准方法,尤其是在后来发展起来的软件工程中获得广泛应用。有人评价说威茨的结构化程序设计概念“完全改变了人们对程序设计的思维方式”。

Modula之父

随着编程技术的发展,为适应并发程序设计的需要,威茨于20世纪70年代中晚期设计出Modula语言。它继承了PASCAL语言中良好的传统构造,包括典型的控制结构、数据类型和过程等概念,并弥补了PASCAL语言的不足,增加新的设施,即引进了模块和进程概念,增加低级设施,采用更为系统化的语法等。

Modula问世之后,引起了不小的轰动,威茨很快发发型了第二个版本Modula-2,得到了广泛的应用。目前,世界上已经开发了近百个Modula-2编译系统,欧洲、加拿大、澳大利亚等不少大学更是用Modula-2代替PASCAL语言作为计算机科学系本科生的第一门程序设计课。

Oberon计划

近年来,威茨开始了一个新的计划——Oberon计划。Oberon是将程序设计语言和操作系统结合在一起的、面向单用户的个人工作站的一个系统。在威茨看来,在因特网日益普及的情况下,今后联网的计算机主要将是个人工作站,因此如何使个人工作站功能更加强大、更加方便使用是一个十分重要的研究方向。

威茨之所以将这个计划取名为“Oberon”,是因为Oberon是希腊神话中的仙境之王和女神Titania的丈夫。威茨的目标是要使Oberon语言超越PASCAL和Modula,使设计出的操作系统和编译器功能更加强大。威茨曾写了两本书向读者推荐Oberon。

荣获图灵奖

因为对Euler、PASCAL及Modula等语言的贡献,国际计算机学会(ACM)于1984年授予威茨当年的图灵奖,1987年又授予他计算机科学教育杰出贡献奖。

除此之外,国际学术组织(IEEE)也先后在1983年及1988年授予威茨EmanualPiore奖、计算机先驱奖。

1992年,加州大学伯克利分校授予威茨“杰出校友”称号。

威茨的学术著作颇丰,包括《系统程序设计导论》、《算法 数据结构=程序》、《算法和数据结构》、《Modula-2程序设计》、《Oberon计划:操作系统和编译器的设计》、《数字电路设计教材》等。

痛批时下大学的"重论文轻教学"之风

2002年,威茨在一次公开演讲中,对当下许多大学轻视课程教学的风气毫不留情面地进行了批评讽刺。

他说:“长期以来,大学的教授们大都已不再是充满智慧的饱学之士了。他们不再默默钻研学问,也不再热忱于传道授业解惑,而是做起了‘项目经理’,带领他们的学生,近乎疯狂地申请科研项目,并批量地生产科技论文。在这个高度竞争的社会大环境中,教授的‘业绩’已跟教学毫无瓜葛,反而是跟团队规模、项目经费、发表论文数息息相关。”

威茨尖锐地指出,由此以往,“让教授们去教学就无异于催促他们去自杀。”

参考链接:

  • https://baike.baidu.com/item/%E5%B0%BC%E5%8F%A4%E6%8B%89%E6%96%AF%C2%B7%E6%B2%83%E6%96%AF/1095875?fromtitle=Niklaus%20Wirth&fromid=3047962&fr=aladdin

  • https://blog.csdn.net/secbok/article/details/21223269

  • https://baike.baidu.com/item/Pascal/241171?fr=aladdin

Pascal之父、编程祖师爷尼古拉斯•威茨痛批:教授成了项目经理,大学过于“重论文轻教学“...相关推荐

  1. 编程祖师爷尼古拉斯•威茨:算法+数据结构=程序

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 尼古拉斯•威茨(Niklaus Wirth)是瑞士计算机科学家,也是计算机编程领域的祖师爷,他先后参与或独立发 ...

  2. 【历史上的今天】2 月 15 日:Pascal 之父出生;YouTube 成立;Kotlin 语言问世

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 2 月 15 日,在 1564 年的今天,欧洲近代自然科学的创始人伽利略诞辰.伽利略曾在学徒时期否定 ...

  3. 程序员必知的编程4大祖师爷,C语言之父堪称编程界的牛顿!

    编程语言哪家好,这是网友们一直争议和调侃的话题. 不过,并不是所有的程序员都知道编程语言的开山鼻祖. 不得不说,正是因为拜在祖师爷门下,才混有今天撸代码这口饭吃. 下面我们就来了解一下编程语言的祖师爷 ...

  4. 程序员必知的编程5祖师爷,不要说你不知道!

    有人问我:程序员要供祖师爷的话该供谁? 沈从文 他在1934年就用汉语写了一本书叫 biancheng--<边城> 那么接下来我们一起来看一下编程界的祖师爷究竟有哪些人呢?一起走进编程大佬 ...

  5. 凭借一句话获得图灵奖的Pascal之父——Nicklaus Wirth

    from : http://www.itheroes.cn/show.asp?id=912 如果说有一个人因为一句话而得到了图灵奖,那么这个人应该就是Nicklaus Wirth.     让他获得图 ...

  6. 计算机科学中的犹太人,清明需要纪念的5大计算机界祖师爷,其中一个是犹太人!...

    在清明这个扫墓踏青的节日里,我们一下追忆那些计算机界的祖师爷. 追思他们对于编程界做出的卓越贡献,下面和W3Cschool一起纪念计算机界祖师爷们: 0.人工智能之父约翰·麦卡锡 约翰·麦卡锡开创了人 ...

  7. 谁是程序员的祖师爷?

    小灰最近创建了一个历史题材的公众号,会分享一些历史人物的故事,其中也包括计算机领域的杰出先辈们,欢迎大家关注: 1912年6月,在英国伦敦的一个公务员家庭,图灵降生了,他的全名叫做艾伦·麦席森·图灵. ...

  8. 专访机器学习祖师爷 Tom Mitchell:带着理性拥抱机器学习的热潮

    雷锋网 AI 科技评论按:上个月,全球移动互联网大会 GMIC 2018 在北京开幕.此次主题为「AI生万物,谐音爱生万物,科学技术要有人文的温度,机器有爱,真芯英雄」的大会上,全球人工智能领袖汇聚全 ...

  9. 执着的数字思想者——Pascal之父(转贴)

    Niklaus Wirth 其人   图:Niklaus Wirth 近照 引言:程序=算法+数据结构 尼克劳斯·沃斯(Niklaus Wirth)教授,Pascal系列语言之父,世界闻名的计算机科学 ...

最新文章

  1. 嘿,程序员,你该学点经济学了!
  2. OpenStack 的 SR-IOV 虚拟机热迁移
  3. 第二十五章补充内容 3 assert()宏
  4. 关于MATLAB FFT频谱泄露和加窗
  5. OpenCASCADE:Open CASCADE Application Framework (OCAF)的简介
  6. 为什么机器学习工程师严重短缺?
  7. Java学习的正确打开方式
  8. 自动化运维落实基础及常用工具对比
  9. 【笔记】lamp架构框图
  10. IEEE会议文章接收后提交流程
  11. windows2003r2下载
  12. 如何用python画爱心型线_python心形_python 心形_python 心形线 - 云+社区 - 腾讯云
  13. iOS和安卓各自优缺点和测试时区别
  14. “有意思”的英语单词(5)
  15. 计算机设计大赛作品抄袭会怎么样,如何界定借鉴和抄袭?看这7位设计大咖怎么说!...
  16. 题目内容: 班级第一次列队,通常老师会让同学按身高排成一列,然后1、2报数,喊到1的同学向前一 步,就这样,队伍就变成两列了。假设现在一个班级有n个同学,并且他们已经按身高排成 了一列,同学按身高从1
  17. 网络安全之KALI使用
  18. Spring学习(二)—— 对象创建方式及依赖注入
  19. Java统计List中每个元素出现的次数、用java实现生成或显示文件的一些数字、微信小程序开发回顾
  20. 第 13 章 可扩展性设计之 MySQL Replication

热门文章

  1. ARM架构、指令集、内核版本、CISC与RISC、ARM产品线
  2. 【Spring Cloud】保护机制-Hystrix
  3. input限制输入字符
  4. 使用xml文件存储数据使用xpath查询
  5. 浅谈 标准的代号和编号
  6. 我的WCF4 Rest Service及Entity Framework with POCO之旅(三)——用Entity Framework和POCO Template实现数据模型及存储...
  7. iOS连续上传多张图片
  8. RedisHelper帮助类
  9. 第一章:pip 的安装和使用
  10. 关于ODI agent的配置部署