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

网站建设4年前发布
156 0 0

对于一个小学生来说,就可以轻松地计算这样的算式  3+10*5,20230306135007934ca902257c233cbf59326da743a7d265ac77728,
,但是对一个程序员来说,如果你想从头儿写个程序,解析并执行这个算式,你会发现就很难了。,2023030613505983662aa213014cd13c485200e1955da94fd40c571,但是,算术表达式可以更复杂,需要一个通用的程序处理方法,能将任何算术表达式转换成正确的次序来执行。,2023030613500849f8b05501d76416d269894cb225433c02a431584,这个问题,也困住了60年前的 John Backus及其团队,他们后来发现了一种叫做Stack Evaluation的方法,解决了算式表达式的问题。,202303061350094635532587dea8a830a63844f596562229a79d604,所以,John Backus 团队开发的程序也叫做公式翻译(Formula Translation),简称Fortran。,2023030613500978799b328f24d74639a491614004cf6aba8f7e185,当然,Fortran不仅仅只能做公式翻译,它还引入了很多现代编程语言的特征,例如DO循环、IF语句,数组,子程序等。,2023030614135827235f86465e19dc86694725499fab240a2b4a386,尽管还很初级,但Fortran成功地满足了科学计算的需求,成为编程历史上的第一位巨头。,202303061350101477349758776a10d58952aa2bae903f7e58f0754,Fortran提供了定点数和浮点数,适合数值运算,但是不擅长处理文本,明显不适合商业用途。,此时,美国国防部想创建一个用作数据处理的、可以在各种计算机上运行的编程语言,于是便联系了格蕾丝·霍珀。,20230306135059d803e8c494bde612e5d3924fd1a6c38a048935987,20230306135012d913963825780e3a944460378eb3a59f77544b216,20230306135012e748cbc019597ac15ca7330624e8e183155409253,随后,美国国防部召集了一群人,组成了一个数据系统委员会,商量创建新语言。,2023030613501242a31c8957c5abe6eef153d72c03ac17e60d11784,20230306135013528fbf3477851de43ec489eb5a38b72245adf0508,数据系统委员会内部争吵不断,来自RCA公司的代表对主席尤其不满,他甚至做了一块墓碑,上面刻上了新语言的名字,邮寄到了五角大楼。,20230306135013d63872f87fe859b500b067cc001b2a330e8bd3544,这门语言就是COBOL(COmmon Business Oriented Language,面向通用商业语言)。,格蕾丝·霍珀(图中右下角穿军装的那位女士)对COBOL的诞生做出了杰出的贡献,也被誉为“COBOL 之母”。,COBOL放弃了算术符号,转而使用英语。,202303061350599529be273a5011df56b5327992c5e95181f38f605,COBOL为商业数据处理做了特殊设计,特别适合操作大批量的数据,以及具有循环处理周期的数据(如打印工资支票等)。,所以,COBOL在银行、金融、保险、会计等行业占据重要地位。时至今日还有 43% 的银行用着 COBOL 系统,90% 的 ATM 交易靠 COBOL 代码运行。,2023030613501457c48a68553199ed4f8661e85ca3ec421f1892622,不过,这门语言已经太过古老,没有多少人会了。,20230306135015d674e907246bb15b9bc523fe857d73b2766c22714,科学计算和商业处理都有了自己的语言,计算机的科学家们坐不住了。,1958年,美国和欧洲的计算机科学家们在瑞士举办了一次会议,决定创立一门新的语言。,2023030613501506202417490d1433f8f421f61092959415353a103,这门新语言就是ALGOL,ALGOL设计得非常优雅,首次提出了块结构(begin ... end),词法作用域,嵌套函数等概念,以及IF..THEN..ELSE ,WHILE等语法,为结构化编程奠定了基础。,2023030613501636ce37d81c73a444b90844c6cfff29a16d6747659,在ALGOL的报告中,第一次引入描述语言语法的BNF形式,成为很多编译器的基础。,2023030613501741f165a25748da68fe3141d7e64dc422857a66434,但是,由于ALGOL一开始的设计目标就是描述算法,连一个标准的I/O都没有定义,导致其在商业应用上受阻。,20230306135100a31b733911198e831e1036b814a8b8c8f8e53e275,2023030613501852ec05953b44fab6ead2586720228544a70413200,虽然在商业应用上没有成功,但ALGOL开创的思想,影响了我们现在所熟知的编程语言,成为很多编程语言的根。,20230306135101b32931f90da35152e3344209b95a01ba525e50184,Fortran,ALGOL, COBOL就是计算机早期的编程语言三巨头。,它们三个掀起了编程语言的第一波浪潮。,202303061350199342e6249de7f4a6ea83150267135d0f9cae61134,几十年过去了,三巨头早已陨落,只能在遗留系统中再找到它们了。,不过,作为编程语言早期的拓荒者,他们值得所有编程语言的尊敬。,在下一波浪潮中,个人电脑将会崛起,由个人——而不是委员会——创建的编程语言将会大行其道,我们下期再见。,​注:本文内容主要改编自这篇文章:https://www.i-programmer.info/history/computer-languages/472-part-2-the-1960s.html

© 版权声明

相关文章