开发语言小传之一:最早的编程语言——机器语言

现在普遍认同的说法是1946214日,世界上第一台现代电子计算机,俗称电脑,埃尼阿克(ENIAC)在美国宾夕法尼亚大学诞生。它使用了17468个真空电子管,7200个晶体二极管、1500个继电器、10000个电容器,还有大约五百万个手工焊接头。 耗电174千瓦,占地170平方米,重达30吨,每秒钟可进行5000次加法运算。据说当时每次埃尼阿克计算机开动起来,计算机所在的费城全城的电压都会降低!

当时还没有任何计算机开发语言,怎么让机器“理解”人的要求,然后计算结果反馈给人,是一件非常麻烦的事情。尽管它能执行复杂的操作序列,可以包含循环、分支和子程序,但是这个机器没有存储器,只能理解机器语言(二进制),可想而知,给它编程会有多麻烦!把一个数学计算问题变成一个输入,让它能够“理解”、“计算”,通常要花好几周的时间。当把问题搞清楚了以后,操作各种开关、连接各种电缆,然后通过打孔卡片输入,又要花掉好几天时间。然后,还要进行验证和测试,通过机器的单步执行来协助测试。

当时,做这种“程序员”工作的主要是六位女士,她们1997年入选国际科技名人堂。下图为她们的工作场景:

 图片引自网络:http://www.columbia.edu/cu/computinghistory/eniac.html

至于埃尼阿克(ENIAC)的编程原理与方法,有兴趣的话,可以参看下面网址:

http://www.myhpi.de/~schapran/eniac/modulo/

现在我们许多程序员自嘲自己是码农、做体力活的,第一代程序员,那6位女士,可真是干体力活!

埃尼阿克(ENIAC)的第一次测试运行是计算氢弹相关数据,输入、输出数据是一百万张卡片!

每秒5000次加法计算的速度,拿到现在来说只能是玩具级别的,还是低档的玩具!可相对于人工计算,已经是相当惊人的了。比如对于圆周率的计算,英国人W.香克斯在1873年计算到小数点后707位,后人念他,在他的墓志上,刻了707个数。由此可以想象他投入了多少时间和精力才做到这一步。而使用ENIAC进行计算,仅用了40秒就达到了这个记录,还发现香克斯的计算中,第528位是错误的。

值得一提的是,当时做计算处理器(CPU)的,是电子管。而电子管除了体积大、发热大等缺点外,最大问题是容易坏掉。而埃尼阿克(ENIAC)最长无电子管损坏记录才100多个小时!

你可能感兴趣的:(开发语言小传之一:最早的编程语言——机器语言)