第一个计算机语言编程程序是怎么做出来的?

很久以前,在电子计算机诞生之前,计算机这个角色是由(女)人来扮演的。大多数计算都是由人类女性手工完成的,这些女人被称之为「computers」。

第一个计算机语言编程程序是怎么做出来的?

在之后是真空管。这些真空管有一个有趣的特性:用三个针脚可以控制真空管两端节点的电流。这使得真空管在处理模拟信号方面是可行的,真空管可以控制机器和传输模拟信号。

第一个计算机语言编程程序是怎么做出来的?

数学家已经意识到,如果能够使用布尔运算,理论上就可以创建执行这些运算的机器。

然后,人们使用这种理论构建了一些机械式计算机,但是由于机械计算机的速度太慢而且成本高昂,所以没有真正的应用。

在这之后,人们意识到,真空管可以当做门,来执行布尔运算。电子计算机变得可行,而这样就开始了电脑的时代。

现在,电子门的工作方式是由开关驱动。假设你在一个电路中连接一堆门,你当然也可以添加一些门,于是乎你得到一个加法器。每个加法器有一堆开关代表着将要添加的第一个数字,另一对开关代表着要添加第二个数字。打开某些开关,并关闭其他开关以输入两个数字,输出将显示两个数字的总和[1]。

原始 CPU 就是许多这样的电路的集合。

每个电路需要一些二进制的输入,通过二进制指令代码来选择要激活的电路。在早期,人们通过切换开关来操作。

因此,早期的计算机通过翻转开关进行编程

请注意,此时计算机已开始编程,但没有出现编程语言。

顺便说一下,在操作那些开关的人都是被称为「computer」的女人。所以,这些女人都是最最最最早的程序员。

接下来是固态晶体管,其提供与真空管相同的功能,但它们更小,更便宜并且持续更长时间。所以电脑变得越来越便宜,越来越广泛。

由于操作员(程序员)不得不坐在终端前,打开闭合开关,非常不方便,所以后来又发明出了穿孔打卡的方式,能够更简单方便地切换开关。

第一个计算机语言编程程序是怎么做出来的?

所以,打孔的卡上面有很多排线,每条线都有可以打的孔。这些线和开关相互匹配。

现在开始,不在天天操作那些乏味的开关了,改为程序员们去打孔了。

每一条线都代表着不同的指令。有个机器,可以连接到计算机读取这些指令。

就这样,我们可以在打孔卡上面写程序啦。这减少了相当多的工作,写一个卡片能使用相当久,也避免了重复造轮子。

因此,当程序员开始在卡片上写这些程序时,人们开始构建程序库(libraries)。随着时间的推移,大部分的程序渐渐的有了一些规则手册来指导编写。虽然比之前手动开关方便了太多,但还是很繁琐。

这时候,天才格雷斯·霍珀(Grace Hopper)姐姐,想出了一个很棒的点子。

第一个计算机语言编程程序是怎么做出来的?

她的想法是革命性的飞跃。

她最大的贡献是发明了世界上第一个编译器 (Compiler),名字叫做 A-0。当时是没有任何组合语言及程序语言存在的,所有的程序设计人员都要把程序翻译成机器码,01101010110 这样的形式,在纸上打孔,再送到机器里去读。

Grace 产生了一种想法,她想设计一种程序,让人可以用类似英文的语法,把想做的事写下来,然后用这个程序把英文翻译成机器的语法,交给机器去执行。这个想法就是今日的 Compiler (编译器)。

A-0 的原理是:编译程序把穿孔卡加载到计算机中。然后编写的程序将被送入计算机。计算机会吐出另一组包含机器代码的卡片。第二组卡片将被装入计算机,计算机就可以执行这段新的程序了。

再说个趣事,知道为什么叫做「编译」么?正常来说,应该叫做翻译吧?正常来说,compiling 这个词意味着有序的放置收藏,例如编译音乐集。但是编译和二进制代码有什么关系呢?

因为啊,Grace 姐姐把它描述为收集子程序的机器代码[2],逻辑上类似于你编译音乐收藏。

编程语言因为编译器而迎来了曙光。虽然只是科技史上的一小步,但是真的是革命性的,改变了人类对于编程的思考方式。它创造了抽象的思维方式。这意味着他们可以在更高的层次上思考。这改变了人们对如何编写程序的想法。

第一个计算机语言编程程序是怎么做出来的?

A-0 编译器是大量编程语言的开始,大多数现代编程语言都可以追溯到 A-0。

这是编程语言的始祖。

另外给出一个很多人都想知道的答案

先有鸡还是先有鸡蛋?计算机语言发展史给出的答案

先有第一只鸡还是先有第一只鸡蛋?这是个悖论。没有鸡哪儿来的鸡蛋呢?同样,没有鸡蛋怎么孵出鸡呢?计算机语言中其实也有类似的现象。以C语言和它的编译器gcc为例。C语言的编译器是用C语言写的,这样看来应该先有C语言。可是如果没有C语言编译器,C语言也没法运行。这里C语言就好像鸡蛋,而C语言编译器就好像是鸡。鸡孵化鸡蛋,C语言编译器编译C语言。在C语言这个范畴里,先有C语言还是先有C语言编译器也是一个悖论。可是跳出这个圈子问题就迎刃而解了。因为第一个C语言编译器可以用其它语言实现。C语言及其编译器的发展历史可以概述如下:首先是用汇编语言产生了第一个C语言编译器,于是我们可以使用K&R的C语言。后来用K&R C写出了ANSI C87标准的C语言编译,然后用C87语言写出了支持C99标准的C语言编译。根据这个过程类推,我们可以猜测鸡的进化过程大概是这样的:首先是原始鸟类下了一个基因变异的蛋,然后从这只蛋里孵出了第一只原始鸡。然后鸡生蛋,蛋孵化出鸡。其中每次鸡生蛋的时候都有小量的基因变异,最终形成了现在的鸡这个物种。至于先有鸡还是先有鸡蛋,就要看我们是否把那个原始鸟类下的变异蛋叫鸡蛋了

来源:SoftCloud

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月3日
下一篇 2021年4月3日

相关推荐