微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 世界上第一个计算机程序是干嘛用的?

世界上第一个计算机程序是干嘛用的?

时间:10-02 整理:3721RD 点击:

是否好奇过世界上第一个计算机程序是干嘛用的?


    世界上第一个程序是1842年写的,恰好在第一个能被称为计算机(你看到它不会认为它是计算机)的真正机器。这段代码的作者是 Ada Augusta,被封为Lovelace女伯爵,就是我们所知道的Ada Lovelace。作为世界上第一个计算机程序的作者,她被广泛地认为 是有史以来第一位程序员。


    当我们把Ada称为一位程序员的时候,很容易忘记世界上第一段代码产生的年代就是塞缪尔·莫尔斯首次展示电话、阿姆斯达号上的黑奴在反抗和 美国正处于三十年代、奥斯曼帝国和波斯帝国时期、穆斯林国家的奴隶正和埃及争夺中东地区的年代。计算机这个词在那时候仍然表示一个人做了100多年的计算 工作的意思。那都是很久以前的事情了。

       世界上第一段代码是为查尔斯·巴贝奇的分析机写的,这个机器从来没有真正建成过,虽然有这个可能。Ada Lovelace看到了巴贝奇机 器的潜力,产生了可编程的计算机的念头。她为泰勒的科学回忆录翻译了一位意大利数学家Luigi Menabrea的名为“分析机的概念图”的论文,并通 过“翻译者的附注(她自己注释的)”把这篇论文弄懂了,那个注释里主要写了查尔斯·巴贝奇分析机都能干些什么。在附注G的开篇,就提到了世界上第一个计算 机程序,举例说明了Lovelace意识到巴贝奇的设计是多么的意义深远,但还保持着她做科学的平静。


     “防止夸大源于分析机的能量的想法是有必要的。”


        Lovelace在她根本没有办法夸大一个包含现代计算机的主要部分的设计的本质。巴贝奇拒绝公布这台分析机的很多内容,使得 Lovelace的注释对未来的发展起到了重要影响,最显著的影响便是促使阿兰·图灵产生通用程序存储计算机的想法。这一点Ada并没有看到,她36岁去 世,前面提到的注释成了她唯一的出版物。如果她再能多活几年多工作几年,计算机会不会又是另一个样子呢?


    让我们回到这个问题上来:如果巴贝奇有足够的资源建好分析机并能让Lovelace在上面跑程序的话,世界上第一个计算机程序是干嘛用的 呢?这个程序让巴贝奇分析机计算了伯努利数字序列。接着她描述了怎么把大量的巴贝奇分析机的穿孔卡片作为输入实现这个程序。在她的实现方法中 Lovelace设定了伯努利数序列的第一个数字(B0=1,B1=-),然后开始从B2(第一个非正规伯努利数)开始计算整个序列,她把这里的B2标记 为B1。

    现代重写的Javascript版本的Ada的大量穿孔卡片上的堆栈看起来可能是这个样子。这个重写的版本不是Ada的代码在巴贝奇分析机上的模拟,只是Ada曾经使用过的算法的另一种实现。

    顺便提一下,到目前为止从没有人能从Ada的伯努利数计算代码里发现任何bug。尽管她发明了编程,但她显然并没有发明bug。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top