世界上第一个计算机程序是如何开发出来的?

世界上第一个程序是1842年写的,就在第一个可以称之为计算机的真机里。这段代码的作者是阿达奥古斯塔,她被命名为洛夫莱斯伯爵夫人,被称为阿达洛夫莱斯。作为世界上第一个计算机程序作者,她被广泛认为是历史上第一个程序员。

当阿达被称为程序员的时候,我们很容易忘记世界上第一个代码是在塞缪尔·莫尔斯第一次展示电话的时候产生的,阿姆斯塔上的奴隶造反了,美国在20世纪30年代,奥斯曼帝国和波斯帝国,穆斯林国家的奴隶在和埃及争夺中东。在那个时候,计算机这个词仍然意味着一个人做了100多年的计算工作。那是很久以前的事了。

世界上第一段代码是为查尔斯·巴贝奇的分析机器写的,虽然有可能,但它从未真正被造出来。AdaLovelace看到了巴贝奇机器的潜力,并提出了可编程计算机的想法。为了泰勒的科学回忆录,她翻译了一篇意大利数学家LuigiMenabrea题为《分析机器的概念图》的论文,并通过“译者注(她自己注释的)”理解了这篇论文,这篇论文主要写了查尔斯·巴贝奇分析机器能做什么。Note G开头提到了世界上第一个计算机程序,说明Lovelace意识到了巴贝奇的设计有多么深远,但她仍然保持着做科学的冷静。

"有必要防止夸大来自分析器的能量的想法."

Lovelace没有办法夸大一个包含现代计算机主要部件的设计的本质。巴贝奇拒绝发表这台分析器的许多内容,这使得洛夫莱斯的评论对以后的发展产生了重要影响,最重大的影响是促使艾伦·图灵产生了通用程序存储计算机的想法。阿达没有看到这个。她36岁去世,上面提到的笔记成为她唯一的出版物。如果她能多生活工作几年,电脑会不会不一样?

让我们回到这个问题:如果巴贝奇有足够的资源造一个分析器,让洛夫莱斯在上面运行程序,那么世界上第一个计算机程序有什么用?这个程序允许巴贝奇分析仪计算伯努利数序列。然后她描述了如何用巴贝奇分析仪的大量穿孔卡片作为输入来实现这个程序。在她的实现方法中,Lovelace设置了伯努利数序列的第一个数(B0=1,B1=-),然后从B2(第一个不规则的伯努利数)开始计算整个序列,她在这里将B2标记为B1。

在现代重写的Javascript版本的Ada中,大量穿孔卡上的堆栈可能是这样的。这个重写的版本并不是Ada代码在Babbage analyzer上的模拟,而是Ada使用的算法的另一种实现。

对了,到目前为止还没有人发现过Ada的伯努利数计算代码有任何bug。她虽然发明了编程,但显然没有发明bug。

注:AdaLovelaceDay是一个庆祝女性在科学、技术、工程和数学领域取得成就的国际节日。

最早的程序是直接用二进制机器代码编写的,没有编译器。

用读卡器把编译好的代码当机器读,直接执行。

然后是汇编语言,通过二进制机器码实现汇编的编译和连接。

然后用汇编语言改进优化汇编语言;

然后是高级语言,用汇编语言编译。

逐步实现高级语言的编译。

19世纪以前

首先,机械计算机时代的先驱

在西欧,中世纪到文艺复兴时期的社会大变革极大地推动了自然科学技术的发展,人们长期被神权压制的创造力得到了空前的释放。其中,制造一台能帮人计算的机器是最耀眼的思想火花之一。此后,一个又一个科学家不懈努力,将这思想的火花化为指引人类走向自由王国的火炬。但受限于当时的整体科技水平,大部分都失败了。这也是拓荒者同样的命运:他们往往看不到丰硕的果实。后人在享受这份甜蜜的时候,应该能尝到一些汗水和泪水。

1614:苏格兰人约翰·耐普尔(1550-1617)发表了一篇论文,他在论文中提到他发明了一种巧妙的装置,可以计算四则运算和平方根运算。

1623:wilhelms chickard(1592-1635)做了一个可以加减六位数以内数字的‘计算钟’,可以通过响铃输出答案。转动齿轮进行操作。

1625:威廉·穆图雷德(1575-1660)发明了计算尺。

1642:法国数学家帕斯卡在WILLIAMOughtred计算尺的基础上改进了计算尺,可以进行八位计算。而且还卖了很多,成为一种时尚商品。

1668:英国人SamuelMorl和(1625-1695)做了一个非十进制加法装置,适用于硬币的计数。

1671:德国数学家GottfriedLeibniz设计了一个可以乘法的机器,最终答案最多可以达到16位数。

1775:英国的查尔斯成功地制造了一台类似于莱布尼茨计算机的机器。但是更高级。

1776:德国人MathieusHahn成功制作了一个乘法器。

1801:Joseph-maire jacuard开发了一种可以用穿孔卡片控制的自动织布机。

1820:法国人查尔斯·泽维尔·托马斯·德科马尔(1785-1870)成功生产出第一台成品电脑,非常可靠,可以放在桌面上,在市场上销售了90多年。

1822:英国人查尔斯·巴贝奇(1792-1871)设计了一台差分机和一台分析机,其中的设计理论非常先进,类似于一百年后的电子计算机,尤其是使用卡片输入程序和数据的设计被后人采用。

1832:Babbage和JosephClement做了一个差分扩展的成品,一开始可以进行6位运算。后来发展到二三十人,规模差不多有一栋房子那么大。结果以穿孔的形式输出。但由于当时的制造技术,他们的设计很难做出。

1834:斯德哥尔摩的GeorgeScheutz用木头做了一个与众不同的延伸。

1834:巴贝奇构思建造一个通用分析器,将程序和数据存储在只读存储器(穿孔卡)中。巴贝奇在未来继续他的研究工作,在1840中,操作数增加到40位,基本实现了控制中心(CPU)和存储程序的想法,程序可以根据条件并在几秒钟内跳转。

1842:巴贝奇的差分机项目因为开发成本高被政府取消了。但他还是花了很多时间和精力在他的分析机器上。

1843:Scheutz和他的儿子EdvardScheutz建造了一个差分扩展,瑞典政府同意继续支持他们的研究工作。

1847:巴贝奇花了两年时间设计了一个相对简单的31位差分扩展,但是没有人有兴趣和支持他造这个机器。但是后来,伦敦科学博物馆用现代技术复制了这台机器,发现它确实工作准确。

1848:英国数学家乔治·布尔创立了二进制代数。几乎提前一个世纪为现代二进制计算机铺平了道路。

1853:令巴贝奇欣喜的是,Scheutzes成功制造了一个实数比例差分扩展,可以进行15位数的运算。输出巴贝奇想象的结果。后来,伦敦的BrianDonkin建造了更可靠的第二个。

1858:第一家制表商被奥尔巴尼的杜德利天文台收购。第二个是英国政府买的。但天文台没有充分利用,后来被送进了博物馆。但是第二个很幸运用了很久。

1871:巴贝奇制造了分析仪和打印机的一些零件。

1878:来自纽约的西班牙人RamonVerea制作了一个成功的台式计算器。比上面提到的任何东西都要快。但是他对把它投放市场不感兴趣。他只是想证明西班牙人比美国人做得更好。

1879:一个调查委员会开始研究分析仪的可行性,最后他们得出结论,分析仪根本无法工作。巴贝奇这时已经死了。调查之后,人们完全忘记了他的分析机器。除了HowardAiken。

1885:这一时期出现了更多的计算机。如美国、俄罗斯、瑞典等。他们开始使用带槽的圆筒,而不是容易损坏的齿轮。

1886:芝加哥的Dorre Felt(1862-1930)做了第一个用按键操作的计算器,速度非常快。当钥匙被举起的时候,结果出来了。

1889:Felt推出桌面打印计算器。

1890:1890美国人口普查。1880的人口普查用了7年时间才统计出来。这意味着1890的统计将超过10年。美国人口普查部门希望获得一台机器来帮助提高人口普查的效率。HermanHollerith是制表公司的创始人,后来他的公司发展成了IBM。借鉴巴贝奇的发明,本文用穿孔卡片存储数据,并设计了一种机器。结果仅用了六周时间就得到准确的数据(62622250人)。HermanHollerith发了大财。

1892:圣多美和普林西比的Williams Burroughs(1857-1898)成功做出了一台功能比毛毡还多的机器,真正开启了办公自动化行业。

1896:HermanHollerith创立了IBM的前身。1900~1910

1906:查尔斯·巴贝奇的儿子亨利·巴贝奇(Henry Babbage)在R·w·芒罗(R.W.Munro)的支持下,完成了父亲设计的分析仪,但只证明了它可以工作,而没有将其作为产品推出。

第二,在电子计算机的早期,

在此之前,计算机都是基于机械运行模式。虽然有些产品开始引入一些电气内容,但都是从属的、机械的,没有进入计算机灵活的领域:逻辑运算。之后,随着电子技术的飞速发展,计算机开始了从机械时代向电子时代的过渡。电子学越来越成为计算机的主题,而机械越来越处于从属地位。他们的地位发生了变化,计算机也开始了质变。以下是这一过渡时期的主要事件:

1906:美国的LeeDeForest发明了电子管。在此之前,建造一台数字电子计算机是不可能的。这为电子计算机的发展奠定了基础。

1920~1930

2月1924:划时代公司IBM成立。

1930~1940

1935:IBM推出IBM601。这是一台穿孔卡片计算机,能在一秒钟内计算乘法。这台机器在自然科学和商业中都起着重要的作用。建成约1500套。

1937:剑桥大学的阿拉姆·图灵(1912-1954)发表了他的论文,提出了一个被后人称为‘图灵机’的数学模型。

1937:贝尔实验室的GeorgeStibitz演示了用继电器表示二进制的装置。虽然只是显示器,但它是第一台二进制电子计算机。

1938:克劳迪。香农发表了一篇关于继电器逻辑表示的论文。

1938:柏林的KonradZuse和他的助手们完成了一台机械可编程二进制形式的计算机,其理论基础是布尔代数。后来被命名为Z1。它的功能更强大,用类似电影胶片的东西作为存储介质。能运算七位指数和16位小数。你可以用键盘输入数字,用灯泡显示结果。

193965438+10月1:加州的DavidHewlet和WilliamPackard在他们的车库里建造了惠普电脑。这个名字是两个人通过抛硬币决定的。包括他们的部分姓名。

1939 165438+10月:美国JohnV。Atanasoff和他的学生CliffordBerry完成了16位加法器,这是第一台真空管计算机。

1939:二战初期,军事需求极大地推动了计算机技术的发展。

1939:Zuse和Schreyer基于他们的Z1计算机开始开发Z2计算机。并用继电器改进其存储和计算单元。但是这个项目因为祖泽的兵役中断了一年。

1939/1940:Schreyer用真空管完成了一个10位加法器,用氖灯作为存储器件。

1940~1950

1940 65438+10月:贝尔实验室的SamuelWilliams和Stibitz成功建造了一台可以进行复杂运算的计算机。大量使用继电器,并借鉴了一些电话技术,采用了先进的编码技术。

1941夏天:阿塔纳索夫和学生贝里完成了一台可以解线性代数方程组的计算机,命名为‘ABC’(阿塔纳索夫-贝里计算机),以电容器作为存储器,穿孔卡作为辅助存储器。那些洞实际上是“烧”出来的。时钟频率为60HZ,完成一次加法运算需要一秒钟。

1941年65438+2月:Z3电脑由德国Zuse公司开发。这是第一台可编程电子计算机。它可以处理7位数的指数和14位数的小数。使用了大量的真空管。一秒钟可以加三四次。一次乘法需要3到5秒。

从1943:1943到1959的计算机通常称为第一代计算机。使用真空管,所有程序都用机器代码编写,使用穿孔卡片。典型的机器是UNIVAC。

1943 65438+10月:MarkI,自动顺序控制计算机在美国研制成功。整机长51英尺,重5吨,有75万个零件。它使用3304个继电器和60个开关作为机械只读存储器。程序存储在纸带上,数据可以来自纸带或读卡器。用于计算美国海军的弹道射表。

1943年4月:MaxNewman、Wynn-Williams和他们的研究团队成功开发了‘heath Robinson’,这是一个密码破译器,严格来说不是计算机。但它使用了一些逻辑元件和真空管,其光学装置每秒可读取2000个字符。也具有划时代的意义。

1943年9月:威廉姆斯和斯蒂比茨完成了‘relay interpolator’,后来被命名为‘ModelIIRelayCalculator’。这是一台可编程计算机。也用纸带输入程序和数据。其运算更可靠,每个数用7个继电器表示,可进行浮点运算。

1943 65438+2月:英国推出最早的可编程计算机,包括2400个真空管,为的是破译德国密码,每秒可翻译约5000个字符,但使用不久就被销毁了。据说翻译俄语时出了差错。

1946: ENIAC(电子数字积分器和计算机):第一台真正的数字电子计算机。1943开工,1946竣工。领导是约翰。Mauchly和J.PresperEckert .它重30吨,18000管,功率25千瓦。主要用于计算弹道,研发氢弹。

第三,晶体管计算机的发展

真空管时代的计算机虽已进入现代计算机的范畴,但体积大、能耗高、故障多、价格高,极大地制约了它的推广应用。直到发明了晶体管,电子计算机才找到了腾飞的起点。

1947:威廉姆。肖克利,约翰巴丁和沃尔特。贝尔实验室的布拉顿发明了晶体管,开创了电子时代的新纪元。

1949:EDSAC:剑桥大学的威尔克斯和他的团队建造了一台存储程序的计算机。I/O设备仍然是纸带。

1949: EDVAC(电子离散变量计算机):第一台使用磁带的计算机。这是一个突破,程序可以多次存储在上面。这台机器是由JohnvonNeumann提出的。

1949:‘未来的计算机不会超过1.5吨。’这是当时科学杂志做出的大胆预测。

1950~1960

1950:软盘是东京帝国大学的YoshiroNakamats发明的。它的销售权被IBM获得。开创存储新时代。

1950:英国数学家、计算机先驱阿兰图灵说:计算机将具有人类的智能。如果一个人对着机器说话,他分不清是机器还是人在对着被提问和回答的问题说话,那么机器就具备了人类的智能。

1951:Gracemurrayhopper完成了高级语言编译器。

1951:旋风:美国空军第一个计算机控制的实时防御系统已经开发出来。

1951:un ivac-1:第一个商用计算机系统。设计师:J.PresperEckert和JohnMauchly。它被美国人口普查局用于人口普查,标志着计算机的应用进入了商业应用的新时代。

1952: EDVAC(电子离散变量计算机):由VonNeumann设计完成。名称:电子离散变量计算机。

1953:此时,世界上大约有100台计算机在运行。

1953:磁芯存储器已经开发出来了。

1954:IBM的JohnBackus和他的研究团队开始开发FORTRAN(FORmulaTRANslation),于1957完成。它是一种适合科学研究的高级计算机语言。

1956:第一届人工智能大会在达特茅斯学院召开。

1957:IBM成功研发出第一台点阵打印机。

1957:FORTRAN高级语言开发成功。

第四,集成电路,展翅高飞的现代计算机。

虽然晶体管的使用大大缩小了计算机的体积,降低了价格,减少了故障。但离人们的要求还很远,各行各业对电脑的需求很大。生产更强大、更轻便、更便宜的机器已经成为当务之急,集成电路的发明就像“及时雨”一样。它的高集成度不仅减小了体积,而且加快了速度,减少了故障。人们开始制造革命性的微处理器。经过多年的积累,计算机技术终于走上了硅铺就的高速公路。

1958 9月12:在罗伯特·诺伊斯(英特尔创始人)的领导下,集成电路被发明出来。不久之后,微处理器问世了。但由于发明微处理器时借鉴了日本公司的技术,日本没有得到应有的利益,所以不承认其专利。日本用了30年才承认,让日本企业从中得到一些利润。但是到2001,这个专利就失效了。

在1959:1959和1964之间设计的计算机一般称为二代计算机。使用了大量的晶体管和印刷电路。计算机的体积越来越小,功能越来越多。它可以运行FORTRAN和COBOL,并接收英文字符命令。出现了大量的应用软件。

1959:GraceMurrayHopper开始开发COBOL(通用面向业务语言),1961完成。

1960~1970

1960:ALGOL:第一个结构化编程语言推出。

1961:IBM的KennthIverson介绍APL编程语言。

1963: PDP-8: DEC公司推出第一台小型计算机。

从1964:1964到1972的计算机一般称为第三代计算机。大量使用集成电路,典型型号为IBM360系列。

1964:IBM发布PL/1编程语言。

1964:发布IBM360首款系列兼容机。

1964:DEC发布PDB-8小型机。

1965:摩尔定律公布,处理器性能每年翻倍。后来,它的内容又变了。

1965:LoftiZadeh创立了模糊逻辑来处理近似问题。

1965:托马斯。Kurtz和JohnKemeny完成了Basic(beginnersallypuresisymbolicinstructioncode)语言的开发。它特别适合计算机教育和初学者,并已得到广泛推广。

1965:DouglasEnglebart提出了鼠标的想法,但没有进一步的研究。直到1983才被苹果电脑公司广泛采用。

1965:首台超级计算机CD6600研制成功。

1967:尼克劳斯沃斯开始开发PASCAL语言,完成于1971。

1968:罗伯特·诺伊斯和他的几个朋友创立了英特尔公司。

1968:SeymourPaper和他的研究团队在麻省理工学院开发了徽标语言。

1969:ARPANET项目启动,这是现代互联网的雏形。

1969年4月7日:推出第一个网络协议标准RFC。

1969:环境影响评价

1970~1980

1970:第一个RAM芯片是INTEL推出的,容量为1K。

1970:KenThomson和DennisRitchie开始开发UNIX操作系统。

1970:开发了第四种编程语言。

1970:互联网的雏形ARPANET(高级研究投影网络)基本完成。它开始向非军事部门开放,许多大学和商业部门开始接入它。

1971年1年1月65438+5日:MarcianE。霍夫在INTEL公司成功开发了第一个微处理器4004,它包含2300个晶体管,是4位系统,时钟频率为108KHz,每秒执行60000条指令。

在后面的日子里,列出了处理器发展的主要指标:

处理器的主频是每秒一百万条指令。

4004108KHz0.06

80802MHz0.5

680008MHz0.7

80868MHz0.8

6800016MHz1.3

6802016MHz2.6

8028612MHz2.7

6803016MHz3.9

386SX20MHz6

6803025MHz6.3

6803040MHz10

386DX33MHz10

486DX25MHz20

486DX2-5050MHz35

486DX4/100100MHz60

奔腾66MHz100

奔腾133MHz240

奔腾233MHzMMX435

奔腾Pro200MHz440

奔腾II233MHz560

奔腾II333MHz770

1971:PASCAL语言已经开发出来了。

1972:1972之后的计算机习惯上称为第四代计算机。基于大规模集成电路以及后来的超大规模集成电路。电脑功能更强大,体积更小。人们开始怀疑计算机能否继续缩小,尤其是发热量的问题能否解决。人们开始探索第五代计算机的发展。

1972:C语言开发完成。它的主要设计者是UNIX系统的开发者之一DennisRitche。这是一种非常强大的语言,尤其适用于开发系统软件。

1972:惠普发明了第一台手持计算器。

1972年4月1日:英特尔推出8008微处理器。

1972:ARPANET开始走向世界,互联网革命拉开序幕。

1973:街机游戏Pong发布,广受欢迎。发明家诺兰·布什内尔,后来雅达利的创始人。

1974:首款采用并行计算机架构的CLIP-4上市。

计算机技术逐渐辉煌。

在此之前,计算机技术主要集中在大型机和小型机的发展上,但随着超大规模集成,