3

聊聊编程语言三巨头的陨落

 1 year ago
source link: https://www.51cto.com/article/721821.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

聊聊编程语言三巨头的陨落

作者:码农翻身刘欣 2022-11-02 09:00:02
几十年过去了,三巨头早已陨落,只能在遗留系统中再找到它们了。不过,作为编程语言早期的拓荒者,他们值得所有编程语言的尊敬。

对于一个小学生来说,就可以轻松地计算这样的算式  3+10*5

图片

但是对一个程序员来说,如果你想从头儿写个程序,解析并执行这个算式,你会发现就很难了。

图片

但是,算术表达式可以更复杂,需要一个通用的程序处理方法,能将任何算术表达式转换成正确的次序来执行。

图片

这个问题,也困住了60年前的 John Backus及其团队,他们后来发现了一种叫做Stack Evaluation的方法,解决了算式表达式的问题。

图片

所以,John Backus 团队开发的程序也叫做公式翻译(Formula Translation),简称Fortran。

图片

当然,Fortran不仅仅只能做公式翻译,它还引入了很多现代编程语言的特征,例如DO循环、IF语句,数组,子程序等。

图片

尽管还很初级,但Fortran成功地满足了科学计算的需求,成为编程历史上的第一位巨头。

图片

Fortran提供了定点数和浮点数,适合数值运算,但是不擅长处理文本,明显不适合商业用途。

此时,美国国防部想创建一个用作数据处理的、可以在各种计算机上运行的编程语言,于是便联系了格蕾丝·霍珀。

图片
图片
图片

随后,美国国防部召集了一群人,组成了一个数据系统委员会,商量创建新语言。

图片
图片

数据系统委员会内部争吵不断,来自RCA公司的代表对主席尤其不满,他甚至做了一块墓碑,上面刻上了新语言的名字,邮寄到了五角大楼。

图片

这门语言就是COBOL(COmmon Business Oriented Language,面向通用商业语言)。

格蕾丝·霍珀(图中右下角穿军装的那位女士)对COBOL的诞生做出了杰出的贡献,也被誉为“COBOL 之母”。

COBOL放弃了算术符号,转而使用英语。

图片

COBOL为商业数据处理做了特殊设计,特别适合操作大批量的数据,以及具有循环处理周期的数据(如打印工资支票等)。

所以,COBOL在银行、金融、保险、会计等行业占据重要地位。时至今日还有 43% 的银行用着 COBOL 系统,90% 的 ATM 交易靠 COBOL 代码运行。

图片

不过,这门语言已经太过古老,没有多少人会了。

图片

科学计算和商业处理都有了自己的语言,计算机的科学家们坐不住了。

1958年,美国和欧洲的计算机科学家们在瑞士举办了一次会议,决定创立一门新的语言。

图片

这门新语言就是ALGOL,ALGOL设计得非常优雅,首次提出了块结构(begin ... end),词法作用域,嵌套函数等概念,以及IF..THEN..ELSE ,WHILE等语法,为结构化编程奠定了基础。

图片

在ALGOL的报告中,第一次引入描述语言语法的BNF形式,成为很多编译器的基础。

图片

但是,由于ALGOL一开始的设计目标就是描述算法,连一个标准的I/O都没有定义,导致其在商业应用上受阻。

图片
图片

虽然在商业应用上没有成功,但ALGOL开创的思想,影响了我们现在所熟知的编程语言,成为很多编程语言的根。

图片

Fortran,ALGOL, COBOL就是计算机早期的编程语言三巨头。

它们三个掀起了编程语言的第一波浪潮。

图片

几十年过去了,三巨头早已陨落,只能在遗留系统中再找到它们了。

不过,作为编程语言早期的拓荒者,他们值得所有编程语言的尊敬。

在下一波浪潮中,个人电脑将会崛起,由个人——而不是委员会——创建的编程语言将会大行其道,我们下期再见。

​注:本文内容主要改编自这篇文章:https://www.i-programmer.info/history/computer-languages/472-part-2-the-1960s.html

责任编辑:武晓燕 来源: 码农翻身

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK