当前位置: 首页 > news >正文

漫画 | 编程语言三巨头的陨落

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

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

d17b3209aaf321deb87b75df07a33ed2.jpeg

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

6eda527ccadeb4e94169a186d5a74ba1.jpeg

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

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

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

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

167bd28a63c82dddf393f422eb70ac87.jpeg

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

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

95befd12ee825138a8d270bebdd5f3ff.jpeg

40b136f7d46f1f0204ee8c79308fda30.jpeg

b011278021c517a7299679fa78a10140.jpeg

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

cb78ef6488f5238ab87df3968bdfa0a1.jpeg

333065635ee37969356fb3dec95a915c.jpeg

数据系统委员会内部争吵不断,来自RCA公司的代表对主席尤其不满,他甚至做了一块墓碑,上面刻上了新语言的名字,邮寄到了五角大楼。f4d4be8450c848cae90fda5ec6b9e3dc.jpeg这门语言就是COBOL(COmmon Business Oriented Language,面向通用商业语言)。

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

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

a99fcbd73a2baf63eeb8c675ac5ca76f.jpeg

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

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

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

ea130ddb4ade8393440578fbbdd875cf.jpeg

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

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

4654486ea8d7510ea1728b9da7fb185f.jpeg

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

f7f7b9811065c4d71b3389aba0169b58.jpeg

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

ff45de75cb1d5896b5c177dee187cef9.jpeg

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

678af8167e1144fbf963d272d6278e3a.jpeg

e926f5dfba6c9a47d7a53805937c7249.jpeg

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

290fb4fb3406bc6c19dab103b9476ace.jpeg

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

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

a0f4bb615d7509075833fb577d046dd8.jpeg

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

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

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

注:本文内容主要改编自这篇文章:

https://www.i-programmer.info/history/computer-languages/472-part-2-the-1960s.html

(完)

点击下方图片,查看更多精彩

cf19b9a2c174f3a495cbeb340074f019.png

5763eb665731fc38b8033a3ce99f0a94.png

17cc29b5b009906e4c12f644fd74f37f.png

a243346f76ff1b4e71cc15e2295b1c09.png

c185bbac77f781d77e9207f6c44cdd73.png

相关文章:

  • 淘客手机版网站怎么做/域名注册 万网
  • wordpress修改样式表/做网站建设公司
  • 网站建设首期款/搜狐酒业峰会
  • 东莞企创做网站怎么样/怎么seo网站排名
  • 徐州贾汪区建设局网站/网站怎么制作
  • 网站内容页做301/百度推广天天打骚扰电话
  • 洛谷千题详解 | P1009 [NOIP1998 普及组] 阶乘之和【C++、Java、Python、Pascal语言】
  • SSM+MySQL+JSP教务管理系统设计与实现(附源码下载地址)
  • 数商云采购管理系统:采购业务模式介绍,助力汽车零部件企业采购业务高效协同
  • YOLOv5 PyQt5 | PyQt5环境配置及组件介绍 | 1/3
  • C语言字符串从入门到进阶指南
  • Python小游戏——小鸟管道游戏【含完整源码】
  • java-php-python-航空订票管理系统计算机毕业设计
  • 卷积神经网络CNN(Convolutional Neural Network)
  • 面经综合总结
  • LeetCode刷题复盘笔记——51. N 皇后(一文搞懂回溯解决经典的N皇后问题上篇)
  • 数据库复习带答案
  • 【服务器数据恢复】EXT3文件系统的RAID5数据恢复案例