当前位置:首页 > 科技  > 软件

欧洲的编程语言三巨头,只剩下一位了!

来源: 责编: 时间:2024-01-08 17:10:59 299观看
导读能把三位大牛的名字都叫出来的人恐怕不多吧:这三位都是图灵奖获得者,他们的名字和发明散布在各种教科书中,从左到右,依次是:尼克劳斯·沃斯 (Niklaus Wirth)瑞士人,一生发明了8种编程语言,其中最著名的是Pascal,提出了著名的

能把三位大牛的名字都叫出来的人恐怕不多吧:6Ga28资讯网——每日最新资讯28at.com

6Ga28资讯网——每日最新资讯28at.com

这三位都是图灵奖获得者,他们的名字和发明散布在各种教科书中,从左到右,依次是:6Ga28资讯网——每日最新资讯28at.com

尼克劳斯·沃斯 (Niklaus Wirth)

瑞士人,一生发明了8种编程语言,其中最著名的是Pascal,提出了著名的“程序=数据结构+算法”,1984年沃斯因开发了一系列创新的计算机语言而获得图灵奖。6Ga28资讯网——每日最新资讯28at.com

迪杰斯特拉(Edsger Dijkstra)

荷兰人,发明了“最短路径算法”,“信号量”,提出了“Goto是有害的”,1972年因对结构化编程的贡献获得图灵奖。6Ga28资讯网——每日最新资讯28at.com

霍尔(Tony Hoare)

英国人,发明了“快速排序算法”,发明了霍尔逻辑来验证程序正确性,提出CSP解决并发过程的交互,发明了null这个引发“数十亿美元”损失的错误,1980年因为对编程语言的定义和设计的基本贡献获得图灵奖。6Ga28资讯网——每日最新资讯28at.com

他们三人都在欧洲,都是从学工程学开始,后来转到了计算机领域。6Ga28资讯网——每日最新资讯28at.com

他们年龄相仿(沃斯和霍尔同岁,比迪杰斯特拉小4岁),共同的兴趣让他们走到一起,不但在暑期活动,学术会议上经常碰面,密切合作,在私下里,也建立了深厚的友谊,经常来回走动,互相拜访。6Ga28资讯网——每日最新资讯28at.com

今天讲几个小故事来聊聊他们的伟大贡献。6Ga28资讯网——每日最新资讯28at.com

迪杰斯特拉率先登场

在上世纪六七十年代,是编程语言发展的黄金时代。6Ga28资讯网——每日最新资讯28at.com

第一个高级编程语言Fortran已经出现,但是主要应用在工程界,和硬件密切相关。6Ga28资讯网——每日最新资讯28at.com

1960年1月,Fortran之父约翰·巴克斯,Lisp之父约翰·麦卡锡,第一位图灵奖获得者Alan Jay Perlis等一大批顶尖科学家在巴黎聚会,经过一番唇枪舌战的讨论,他们推出了ALGOL 60,这是一种和计算机硬件无关的编程语言,方便算法的描述。6Ga28资讯网——每日最新资讯28at.com

ALGOL 60有很多创新,递归、本地变量、begin end 代码块都是由它率先推出。6Ga28资讯网——每日最新资讯28at.com

现代大多数编程语言的语法,都是类ALGOL的。6Ga28资讯网——每日最新资讯28at.com

从下图中,就可以看到ALGOL的江湖地位,是很多编程语言的老祖宗。6Ga28资讯网——每日最新资讯28at.com

图片图片6Ga28资讯网——每日最新资讯28at.com

迪杰斯特拉对Algol-60非常欣赏,他不止一次说道,这是计算机科学成为一个学科的重要时刻。6Ga28资讯网——每日最新资讯28at.com

仅仅7个月以后,迪杰斯特拉就在荷兰实现了第一个ALGOL60的编译器,比其他小组早了一年多。6Ga28资讯网——每日最新资讯28at.com

为了实现ALGOL60中的递归,迪杰斯特拉第一次引入了Stack这个概念。6Ga28资讯网——每日最新资讯28at.com

迪杰斯特拉等人还举办了一个ALGOL 60的培训班,来培训的就有霍尔,霍尔刚刚发表了快速排序算法,他上完培训班,也在自己公司机器上实现了ALGOL 60,霍尔的实现效率高,可靠性强,受到国际学术界的关注,进入了IFIP工作组,开始维护和发展ALGOL。6Ga28资讯网——每日最新资讯28at.com

PASCAL的诞生

1966年,霍尔和沃斯一起做了一个提案,希望对ALGOL做出一次改进。但是ALGOL小组认为他们的提案太保守,改动太小,拒绝了。6Ga28资讯网——每日最新资讯28at.com

“一气之下”,沃斯和霍尔退出了ALGOL小组,自己把提案的想了做了实现,即编程语言ALGOL W。6Ga28资讯网——每日最新资讯28at.com

正是在ALGOL W 中,霍尔发明了那个被“无数人诟病”的空引用null。6Ga28资讯网——每日最新资讯28at.com

在2009年的一个软件会议上,霍尔为发明null夸张地道歉:6Ga28资讯网——每日最新资讯28at.com

“我当时正在设计ALGOL W 的类型系统,我忍不住想把null放进去,因为它很容易实现......没想到它导致了无数的错误,系统崩溃......在过去的40年,引发了数十亿美元的损失。”6Ga28资讯网——每日最新资讯28at.com

1970年,沃斯进一步改进了 ALGOL W,成为了大名鼎鼎的Pascal6Ga28资讯网——每日最新资讯28at.com

为了帮助在各种计算机上实现Pascal, 他创建了一种新型的编译器,该编译器不会直接生成机器码,而是生成一种中间的代码形式,在虚拟机上运行。6Ga28资讯网——每日最新资讯28at.com

1976年,沃斯写了一本书介绍基本的数据结构和算法,也捎带着介绍了Pascal语法。 6Ga28资讯网——每日最新资讯28at.com

这本书的名称也很神奇,叫做《程序=算法+数据结构》,从此这个公式开始名扬世界。6Ga28资讯网——每日最新资讯28at.com

图片图片6Ga28资讯网——每日最新资讯28at.com

PASCAL的流行

虽然 Pascal 很快就得到了大学的认可,但它又花了几年时间才成为主流。6Ga28资讯网——每日最新资讯28at.com

这得益于Philippe Kahn,是沃斯在瑞士苏黎世联邦理工学院教学期间的一个学生。6Ga28资讯网——每日最新资讯28at.com

图片图片6Ga28资讯网——每日最新资讯28at.com

Philippe Kahn看到了沃斯教授在Pascal上的开创性工作,1982年成了一家叫做Borland的公司,从事软件开发工具的开发。6Ga28资讯网——每日最新资讯28at.com

1983年,Borland推出了革命性的集成开发环境,Turbo Pascal ,仅卖49.95美元。6Ga28资讯网——每日最新资讯28at.com

图片图片6Ga28资讯网——每日最新资讯28at.com

 Turbo Pascal 除了价格低廉以外,另外一个杀手锏就是编译速度飞快。6Ga28资讯网——每日最新资讯28at.com

操刀编译器的是丹麦人Anders Hejlsberg,他很大程度上受到了《程序=算法+数据结构》这本书中Tiny Pascal”编译器的启发。6Ga28资讯网——每日最新资讯28at.com

关于Anders Hejlsberg的故事,可以看这篇漫画《一个养活了四代程序员的男人》。6Ga28资讯网——每日最新资讯28at.com

Goto是有害的

1968年,迪杰斯特拉向ACM提交了一篇论文,尖锐地批评了当时编程中过度使用Goto语句的情况,以及对结构化编程的拥护,他提议,在高级语言中废除Goto语句!6Ga28资讯网——每日最新资讯28at.com

论文的标题平淡无奇:A Case Against the Goto Statement。6Ga28资讯网——每日最新资讯28at.com

沃斯正好是当时的编辑,他顺手把标题改成了Goto语句是有害的(Goto Statement Considered Harmful)。6Ga28资讯网——每日最新资讯28at.com

如果放在如今的自媒体时代,沃斯绝对是一个擅长抓热点的标题大师。6Ga28资讯网——每日最新资讯28at.com

这个标题就像一个重磅炸弹,很多大牛跳出来,或支持或反对。6Ga28资讯网——每日最新资讯28at.com

高德纳写了一篇叫做《使用 Goto语句进行结构化编程》的文章,分析了一些常见的编程场景,指出一些场景中Goto是最适合的语言结构。6Ga28资讯网——每日最新资讯28at.com

K&R在《C语言编程》中,也指出Goto可以用于函数结束错误处理程序和循环的多级中断。6Ga28资讯网——每日最新资讯28at.com

即使在多年以后,Linus之父Linus Torvalds和《代码大全》的作者Steve McConnell还反对迪杰斯特拉的观点,指出 Goto可以是一种有用的语言功能,可以提高程序速度、大小和代码清晰度。6Ga28资讯网——每日最新资讯28at.com

据统计,2013 年,Linux 内核代码中约有 100,000 个 goto。6Ga28资讯网——每日最新资讯28at.com

“XXX是有害的”成为了计算机的时尚用词,在随后的几十年中不断出现:6Ga28资讯网——每日最新资讯28at.com

“全局变量是有害的”6Ga28资讯网——每日最新资讯28at.com

“Unix风格,或者cat -v 是有害的”6Ga28资讯网——每日最新资讯28at.com

“MD5被认为是有害的”6Ga28资讯网——每日最新资讯28at.com

“以人为本的设计是有害的”6Ga28资讯网——每日最新资讯28at.com

“Java的新特性是有害的”6Ga28资讯网——每日最新资讯28at.com

“‘被认为有害’的文章是有害的”6Ga28资讯网——每日最新资讯28at.com

......6Ga28资讯网——每日最新资讯28at.com

尾声

沃斯,迪杰斯特拉和霍尔都在欧洲,获得图灵奖都和编程语言有关,可以称为欧洲编程语言的三巨头。6Ga28资讯网——每日最新资讯28at.com

他们都是结构化编程的先驱,他们的工作深刻地影响了我们现在的编程。6Ga28资讯网——每日最新资讯28at.com

2002年8月6日,迪杰斯特拉和癌症斗争多年以后,不幸离世,享年72岁。6Ga28资讯网——每日最新资讯28at.com

2024年1月1日,沃斯去世。享年89岁。6Ga28资讯网——每日最新资讯28at.com

三巨头中,只剩下霍尔一位了。6Ga28资讯网——每日最新资讯28at.com

其实,除了这三位之外,欧洲还有一对编程语言双子星,挪威的Ole-Johan Dahl和Kristen Nygaard ,他们发明了面向对象的语言Simula,两人也都于2002年去世。6Ga28资讯网——每日最新资讯28at.com

我们现在使用的编程语言的概念和特性,差不多都在上世纪六七十年代就已发明,那一批编程语言的先驱,都在逐渐老去。6Ga28资讯网——每日最新资讯28at.com

编程语言的黄金时代,过去了。6Ga28资讯网——每日最新资讯28at.com

6Ga28资讯网——每日最新资讯28at.com

如需转载,请通过作者微信公众号coderising获取授权。6Ga28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-58922-0.html欧洲的编程语言三巨头,只剩下一位了!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 原生Details支持手风琴模式了!

下一篇: Apollo,真香!

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • 0糖0卡0脂 旭日森林仙草乌龙茶优惠:15瓶到手29元

    旭日森林无糖仙草乌龙茶510ml*15瓶平时要卖为79.9元,今日下单领取50元优惠券,到手价为29.9元。产品规格:0糖0卡0脂,添加草本仙草汁,清凉爽口,富含茶多酚,保留
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 十个简单但很有用的Python装饰器

    装饰器(Decorators)是Python中一种强大而灵活的功能,用于修改或增强函数或类的行为。装饰器本质上是一个函数,它接受另一个函数或类作为参数,并返回一个新的函数或类。它们通常用
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之“想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!”曾凭借直播腾讯旗下代理格斗游戏《DNF》一
Top