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

世界上第一个计算机程序是怎样开发出来的?,第1张

世界上第一个程序是1842年写的,恰好在第一个能被称为计算机的真正机器。这段代码的作者是AdaAugusta,被封为Lovelace女伯爵,就是大家所知道的AdaLovelace。作为世界上第一个计算机程序的作者,她被广泛地认为是有史以来第一位程序员。

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

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

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

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

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

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

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

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

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

将编好的代码通过读卡机读如机器,直接执行。

然后出现的是汇编语言,通过二进制的机器代码来实现汇编的编译连接工作,

然后在用汇编语言完善优化汇编语言;

接着才是高级语言,使用汇编语言编译

逐渐实现高级语言编译高级语言

19世纪之前

一、机械计算机时代的拓荒者

在西欧,由中世纪进入文艺复兴时期的社会大变革,大大促进了自然科学技术的发展,人们长期被神权压抑的创造力得到空前释放。其中制造一台能帮助人进行计算的机器,就是最耀眼的思想火花之一。从那时起,一个又一个科学家为把这一思想火花变成引导人类进入自由王国的火炬而不懈努力。但限于当时的科技总体水平,大都失败了,这就是拓荒者的共同命运:往往见不到丰硕的果实。后人在享用这甜美的时候,应该能从中品出一些汗水与泪水的滋味

1614:苏格兰人JohnNapier(1550-1617)发表了一篇论文,其中提到他发明了一种可以计算四则运算和方根运算的精巧装置。

1623:WilhelmSchickard(1592-1635)制作了一个能进行六位以内数加减法,并能通过铃声输出答案的'计算钟'。通过转动齿轮来进行 *** 作。

1625:WilliamOughtred(1575-1660)发明计算尺

1642:法国数学家Pascal在WILLIAMOughtred计算尺的基础上将计算尺加以改进,能进行八位计算。并且还卖出了许多,成为一种时髦的商品。

1668:英国人SamuelMorl和(1625-1695)制作了一个非十进制的加法装置,适宜计算钱币。

1671:德国数学家GottfriedLeibniz设计了一架可以进行乘法,最终答案可以最大达到16位。

1775:英国Charles制作成功了一台与Leibniz's的计算机类似的机器。但更先进一些。

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

1801:Joseph-MaireJacuard开发了一台能用穿孔卡片控制的自动织布机。

1820:法国人CharlesXavierThomasdeColmar(1785-1870),制作成功第一台成品计算机,非常的可靠,可以放在桌面上,在后来的90多年间一直在市场上出售。

1822:英国人CharlesBabbage(1792-1871)设计了差分机和分析机,其中设计的理论非常的超前,类似于百年后的电子计算机,特别是利用卡片输入程序和数据的设计被后人所采用。

1832:Babbage和JosephClement制成了一个差分机的成品,开始可以进行6位数的运算。后来发展到20位、30位,尺寸将近一个房子那么大。结果以穿孔的形式输出。但限于当时的制造技术,他们的设计难以制成。

1834:斯德哥尔摩的GeorgeScheutz用木头做了一台差分机。

1834:Babbage设想制造一台通用的分析机,在只读存储器(穿孔卡片)中存储程序和数据,Babbage在以后的时间继续他的研究工作,并于1840年将 *** 作数提高到了40位,并基本实现了控制中心(CPU)和存储程序的设想,而且程序可以根据条件进行跳转,能在几秒内作出一般的加法,几分钟内作出乘除法。

1842:Babbage的差分机项目因为研制费用昂贵,被政府取消。但他自己仍花费大量的时间和精力于他的分析机研究。

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

1847:Babbage花两年时间设计了一台较简易的、31位的差分机,但没有人感兴趣并支持他造出这台机器。但后来伦敦科学博物馆用现代技术复制出这台机器后发现,它确实能准确的工作。

1848:英国数学家GeorgeBoole创立二进制代数学。提前差不多一个世纪为现代二进制计算机铺平了道路。

1853:令Babbage感到高兴的是,Scheutzes制造成功了真正意义上的比例差分机,能进行15位数的运算。象Babbage所设想的那样输出结果。后来伦敦的BrianDonkin又造出了更可靠的第二台。

1858:第一台制表机被Albany的Dudley天文台买走。第二台被英国政府买走。但天文台并没有将其充分利用,后来被送进了博物馆。而第二台却被幸运的使用了很长时间。

1871:Babbage制造了分析机的部分部件和印表机。

1878:纽约的西班牙人RamonVerea,制造成功桌面计算器。比前面提到的都要快。但他对将其推向市场不感兴趣,只是想表明,西班牙人可以比美国人做的更好。

1879:一个调查委员会开始研究分析机是否可行,最后他们的结论是:分析机根本不可能工作。此时Babbage已经去世了。调查之后,人们将他的分析机彻底遗忘了。但HowardAiken例外。

1885:这时期更多的计算机涌现出来。如美国、俄国、瑞典等。他们开始用有槽的圆柱代替易出故障的齿轮。

1886:芝加哥的DorrE.Felt(1862-1930),制造了第一台用按键 *** 作的计算器,而且速度非常快,按键抬起,结果也就出来了。

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

1890:1890美国人口普查。1880年的普查人工用了7年的时间进行统计。这意味着1890年的统计将会超过10年。美国人口普查部门希望能得到一台机器帮助提高普查的效率。HermanHollerith,建立制表机公司的那个人,后来他的公司发展成了IBM公司。借鉴了Babbage的发明,用穿孔卡片存储数据,并设计了机器。结果仅仅用了6个周就得出了准确的数据(62622250人)。HermanHollerith大发其财。

1892:圣多美和普林西比的WilliamS.Burroughs(1857-1898),制作成功了一台比Felt的功能更强的机器,真正开创了办公自动化工业。

1896:HermanHollerith创办了IBM公司的前身。1900~1910

1906:HenryBabbage,CharlesBabbage的儿子,在R.W.Munro的支持下,完成了父亲设计的分析机,但也仅能证明它能工作,而没有将其作为产品推出。

二、电子计算机最初的日子里

在这之前的计算机,都是基于机械运行方式,尽管有个别产品开始引入一些电学内容,却都是从属与机械的,还没有进入计算机的灵活:逻辑运算领域。而在这之后,随着电子技术的飞速发展,计算机就开始了由机械向电子时代的过渡,电子越来越成为计算机的主体,机械越来越成为从属,二者的地位发生了变化,计算机也开始了质的转变。下面就是这一过渡时期的主要事件:

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

1920~1930

1924年2月:IBM,一个具有划时代意义的公司成立

1930~1940

1935:IBM推出IBM601机。这是一台能在一秒钟算出乘法的穿孔卡片计算机。这台机器无论在自然科学还是在商业意义上都具有重要的地位。大约造了1500台。

1937:英国剑桥大学的AlanM.Turing(1912-1954)出版了他的论文,并提出了被后人称之为'图灵机'的数学模型。

1937:BELL试验室的GeorgeStibitz展示了用继电器表示二进制的装置。尽管仅仅是个展示品,但却是第一台二进制电子计算机。

1938:ClaudeE.Shannon发表了用继电器进行逻辑表示的论文。

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

19391月1日:加利福尼亚的DavidHewlet和WilliamPackard在他们的车库里造出了Hewlett-Packard计算机。名字是两人用投硬币的方式决定的。包括两人名字的一部分。

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

1939:二次世界大战的开始,军事需要大大促进了计算机技术的发展。

1939:Zuse和Schreyer开始在他们的Z1计算机的基础上发展Z2计算机。并用继电器改进它的存储和计算单元。但这个项目因为Zuse服兵役被中断了一年。

1939/1940:Schreyer利用真空管完成了一个10位的加法器,并使用了氖灯做存储装置。

1940~1950

1940年1月:Bell实验室的SamuelWilliams和Stibitz制造成功了一个能进行复杂运算的计算机。大量使用了继电器,并借鉴了一些电话技术,采用了先进的编码技术。

1941夏季:Atanasoff和学生Berry完成了能解线性代数方程的计算机,取名叫'ABC'(Atanasoff-BerryComputer),用电容作存储器,用穿孔卡片作辅助存储器,那些孔实际上是'烧'上的。时钟频率是60HZ,完成一次加法运算用时一秒。

1941年12月:德国Zuse制作完成了Z3计算机的研制。这是第一台可编程的电子计算机。可处理7位指数、14位小数。使用了大量的真空管。每秒种能作3到4次加法运算。一次乘法需要3到5秒。

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

1943年1月:MarkI,自动顺序控制计算机在美国研制成功。整个机器有51英尺长,重5吨,75万个零部件,使用了3304个继电器,60个开关作为机械只读存储器。程序存储在纸带上,数据可以来自纸带或卡片阅读器。被用来为美国海军计算d道火力表。

1943年4月:MaxNewman、Wynn-Williams和他们的研究小组研制成功'HeathRobinson',这是一台密码破译机,严格说不是一台计算机。但是其使用了一些逻辑部件和真空管,其光学装置每秒钟能读入2000个字符。同样具有划时代的意义。

1943年9月:Williams和Stibitz完成了'RelayInterpolator',后来命名为'ModelIIRelayCalculator'。这是一台可编程计算机。同样使用纸带输入程序和数据。其运行更可靠,每个数用7个继电器表示,可进行浮点运算。

1943年12月:最早的可编程计算机在英国推出,包括2400个真空管,目的是为了破译德国的密码,每秒能翻译大约5000个字符,但使用完后不久就遭到了毁坏。据说是因为在翻译俄语的时候出现了错误。

1946:ENIAC(ElectronicNumericalIntegrator和Computer):第一台真正意义上的数字电子计算机。开始研制于1943年,完成于1946年。负责人是JohnW.Mauchly和J.PresperEckert。重30吨,18000个电子管,功率25千瓦。主要用于计算d道和氢d的研制。

三、晶体管计算机的发展

真空管时代的计算机尽管已经步入了现代计算机的范畴,但其体积之大、能耗之高、故障之多、价格之贵大大制约了它的普及应用。直到晶体管被发明出来,电子计算机才找到了腾飞的起点,一发而不可收

1947:Bell实验室的WilliamB.Shockley、JohnBardeen和WalterH.Brattain.发明了晶体管,开辟了电子时代新纪元。

1949:EDSAC:剑桥大学的Wilkes和他的小组建成了一台存储程序的计算机。输入输出设备仍是纸带。

1949:EDVAC(electronicdiscretevariablecomputer):第一台使用磁带的计算机。这是一个突破,可以多次在其上存储程序。这台机器是JohnvonNeumann提议建造的。

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

1950~1960

1950:软磁盘由东京帝国大学的YoshiroNakamats发明。其销售权由IBM公司获得。开创存储时代新纪元。

1950:英国数学家和计算机先驱AlanTuring说:计算机将会具有人的智慧,如果一个人和一台机器对话,对于提出和回答的问题,这个人不能区别到底对话的是机器还是人,那么这台机器就具有了人的智能。

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

1951:Whirlwind:美国空军的第一个计算机控制实时防御系统研制完成。

1951:UNIVAC-1:第一台商用计算机系统。设计者:J.PresperEckert和JohnMauchly。被美国人口普查部门用于人口普查,标志着计算机的应用进入了一个新的、商业应用的时代。

1952:EDVAC(ElectronicDiscreteVariableComputer):由VonNeumann领导设计并完成。取名:电子离散变量计算机。

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

1953:磁芯存储器被开发出来。

1954:IBM的JohnBackus和他的研究小组开始开发FORTRAN(FORmulaTRANslation),1957年完成。是一种适合科学研究使用的计算机高级语言。

1956:第一次有关人工智能的会议在Dartmouth学院召开。

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

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

四、集成电路,现代计算机插上腾飞的翅膀

尽管晶体管的采用大大缩小了计算机的体积、降低了其价格,减少了故障。但离人们的要求仍差很远,而且各行业对计算机也产生了较大的需求,生产更能更强、更轻便、更便宜的机器成了当务之急,而集成电路的发明正如\"及时雨\",当春乃发生。其高度的集成性,不仅仅使体积得以减小,更使速度加快,故障减少。人们开始制造革命性的微处理器。计算机技术经过多年的积累,终于驶上了用硅铺就的高速公路。

1958年9月12日:在RobertNoyce(INTEL公司的创始人)的领导下,发明了集成电路。不久又推出了微处理器。但因为在发明微处理器时借鉴了日本公司的技术,所以日本对其专利不承认,因为日本没有得到应有的利益。过了30年,日本才承认,这样日本公司可以从中得到一部分利润了。但到2001年,这个专利也就失效了。

1959:1959年到1964年间设计的计算机一般被称为第二代计算机。大量采用了晶体管和印刷电路。计算机体积不断缩小,功能不断增强,可以运行FORTRAN和COBOL,接收英文字符命令。出现大量应用软件。

1959:GraceMurrayHopper开始开发COBOL(COmmonBusiness-OrientatedLanguage)语言,完成于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:ThomasE.Kurtz和JohnKemeny完成BASIC(BeginnersAllPurposeSymbolicInstructionCode)语言的开发。特别适合计算机教育和初学者使用,得到了广泛的推广。

1965:DouglasEnglebart提出鼠标器的设想,但没有进一步的研究。直到1983年被苹果电脑公司大量采用。

1965:第一台超级计算机CD6600开发成功。

1967:NiklausWirth开始开发PASCAL语言,1971年完成。

1968:RobertNoyce和他的几个朋友创办了INTEL公司。

1968:SeymourPaper和他的研究小组在MIT开发了LOGO语言。

1969:ARPANET计划开始启动,这是现代INTERNET的雏形。

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

1969:EIA(ElectronicIndustriesAssocia

1970~1980

1970:第一块RAM芯片由INTEL推出,容量1K。

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

1970:Forth编程语言开发完成。

1970:Internet的雏形ARPAnet(AdvancedResearchProjectsAgencynetwork)基本完成。开始向非军用部门开放,许多大学和商业部门开始接入。

1971年11月15日:MarcianE.Hoff在INTEL公司开发成功第一块微处理器4004,含2300个晶体管,是个4位系统,时钟频率108KHz,每秒执行6万条指令。

在后来的日子里,处理器发展主要指标一览:

处理器主频每秒百万条指令

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

Pentium66MHz100

Pentium133MHz240

Pentium233MHzMMX435

PentiumPro200MHz440

PentiumII233MHz560

PentiumII333MHz770

1971:PASCAL语言开发完成。

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

1972:C语言的开发完成。其主要设计者是UNIX系统的开发者之一DennisRitche。这是一个非常强大的语言,开发系统软件,特别受人喜爱。

1972:Hewlett-Packard发明了第一个手持计算器。

1972年4月1日:INTEL推出8008微处理器。

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

1973:街机游戏Pong发布,得到广泛的欢迎。发明者NolanBushnell,后来Atari的创立者。

1974:第一个具有并行计算机体系结构的CLIP-4推出。

五、计算机技术渐入辉煌

在这之前,计算机技术主要集中在大型机和小型机领域发展,但随着超大规模集

1、序幕(1945年9月—1946年6月)

1945年下半年,国共两方军队围绕受降问题发生了激烈冲突,在山西上党、绥远、察哈尔等地,北上的国民党军队与当地或先到达的中共军队之间发生激战。10月,接收东北的国民党军队乘美国运输舰到达大连时被苏联军队拒绝登陆,后转到葫芦岛仍无法登陆只得转在秦皇岛登陆。

2、第一阶段——战略防御(1946年6月—1947年6月)

1946年6月26日,停战有效期刚过,国、共两党的军队在中原地区(湖北、河南交界)爆发了大规模的武装冲突,长达三年多的全国内战就此开始。国民党军队仍称国民革命军,共产党军队则更名为中国人民解放军。这一时期被中国共产党称为战略防御时期。

3、第二阶段——战略反攻(1947年6月—1948年9月)

国民政府的8个月的全面进攻并没有收到预想中的效果,解放军主力依然存在。这样国民政府便做出新的战略方案:重点进攻陕北与山东共产党根据地。

4、第三阶段——战略决战(1948年9月—1949年12月)

三大战役:辽沈战役(辽西会战 )、淮海战役(徐蚌会战)和平津战役(平津会战)。至此,解放战争的大规模作战行动结束。中国大陆几乎全部归属中国人民解放军。国共内战大势底定。国民党政权经广州、重庆、成都直至于12月7日迁往台北,解放军开始集结东南沿海,预备进攻台湾。

5、第四阶段——战略追歼(1949年12月—1955年2月)

随着国共内战大势底定,大规模的军事会战已经不可能再出现,战争的规模趋于中小型。略重大的战役只有西昌战役和昌都战役。

西南地区部分,由于中国国民党在中国大陆西南方残余的军事力量很难再有所为,中国人民解放军自进入成都后,便继续一路追击这些已经无法大规模组织战斗的军队。1950年10月解放西康后解放军挺近西藏地方,围歼昌都地区的藏军主力,为西藏和平解放奠定基础。

扩展资料

解放战争的历史背景

1945年8月6日,美国向日本广岛投下第1颗原子d,日本败局已经注定。苏联于8月8日对日宣战,进军中国东北,日本天皇8月15日宣布无条件停战。所以苏联红军未经大规模抵抗,迅速占领了中国东北全境、日本北方四岛和朝鲜半岛北部。9月2日日本正式向盟军投降。

中共中央指挥河北、山东所属小股部队于8月下旬向关内进发,9月下旬才分别开始从晋冀鲁豫等地或陆路,或水路,或武装,或徒手,陆续动身赶往热、察和东北,先后抵达十几万人。

蒋介石一方面以中国战区统帅的名义命令日军就地集中并固守待降,命令八路军等中共所属武装力量就地待命不得受降,同时命令其他国民党军队日夜兼程向日军占领区后方进军;另一方面又接连发出电报,邀请毛泽东到重庆谈判。

虽然中共中央政治局派主席毛泽东赴重庆谈判,首先提出谈判的程序、议案,双方并于1945年10月10日签署“政府与中共代表会谈纪要”(即“双十协定”),就和平建国的基本方针、政治民主化、国民大会、党派合作、军队国家化、解放区地方政府等12个问题阐明了国共双方的见解。

虽然国民党得到了美国的支持,但中共中央以扩张势力与地盘为首要考量,从未遵守国民党控制的中国战区统帅部的命令,反命令所指挥的八路军等中共武装力量积极向日军进攻。

参考资料

百度百科-解放战争


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11405868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存