发明编译器
㈠ 20. 第一个给计算机写程序的人是( )。
艾伦·麦席森·图灵
艾伦·麦席森·图灵,英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。1931年图灵进入剑桥大学国王学院,毕业后到美国普林斯顿大学攻读博士学位,第二次世界大战爆发后回到剑桥,后曾协助军方破解德国的着名密码系统Enigma,帮助盟军取得了二战的胜利。
1952年,英国政府对图灵的同性恋取向定罪,随后图灵接受化学阉割(雌激素注射)。1954年6月7日,图灵吃下含有氰化物的苹果中毒身亡,享年41岁。2013年12月24日,在英国司法大臣克里斯·格雷灵的要求下,英国女王伊丽莎白二世向图灵颁发了皇家赦免。
(1)发明编译器扩展阅读:
图灵不但以破译密码而名闻天下,他在人工智能和计算机等领域也作出了重要贡献,他常被认为是现代计算机科学的创始人。战争结束后,在曼彻斯特大学工作的他研制了“曼彻斯特马克一号”———着名的现代计算机之一。1999年,他被《时代》杂志评选为20世纪100个最重要的人物之一。
㈡ C语言是什么时候发明的
查看文章 C语言家族的发展史2007-05-18 10:15 1972年--,作为C语言的先驱B语言在贝尔实验室诞生。B语言速度快,易维护,适用于从系统层到应用层各种各样的开发。设计此语言的开发组很快赢得立即被解雇的待遇,因为其开发行为不适合一个电话公司雇员应有的行为。整个项目被移交到了一个叫Dennis家伙的手里,他将此语言改变得不易理解,难于维护,只适用于系统开发。他在指针系统里进行设计,以保证对每个超过五百行的程序提供一个指针给操作系统。这就是C语言。1982年--97%的C程序调用都限于缓冲处理过度的开发。C程序员开始认识到,不管何时都可将变量初始化并放到内存中实在是个糟糕的方法。但是强迫合理地初始化变量将会破坏现有97%的C程序,于是大家便一直将就忍耐,无动于衷。1984年--操作系统中指针乱指的数量能够开始显着的增长了。1985年——一种带有面向对象特性的C变种语言,称之为“带类的C”,准备走进市场。但是,“带类的C”这个名字太清晰易懂,对于外人来说都不敢理解,于是商业化后的版本就将其改了个名,叫C++1986年——C语言太流行了,于是产业分析师强烈推荐在商业开发中应用它。他们说,用C写的应用程序将会多么轻便灵活地用于各种各样的系统。据猜测可能是很多分析师是吃了迷魂药。1988年——产业分析师们的药性终于消失了。当迷魂药性一过,他们才注意到商业应用程序用C写完后,其生产周期变成了原来的5倍长,但还是没达到轻便灵活的目的。他们开始停止推荐用C写应用程序。但一部分人仍然转而吸食“可卡因”,推荐用C++写应用程序,因为“其面向对象特性会导致代码重用”。1990年——此时,所有的C编译器都已经变成了C++编译器了。但是大部分C++程序员不使用C++任何面向对象的特性,这就是说,实际情况是带有指针的雍肿的代码结构在操作系统中现在用C++编译器编译了。
麻烦采纳,谢谢!
㈢ 最早的C语言编译器是什么做的
汇编。这真的是最早最早的。
准确的来说,这和编译器的开发有关,不用说太细,很麻烦怕你不懂。你现在假设第一个编译器是用会变写出来的,它的功能很简单,就是解释简单一种类似于C语言的高级语言,但是这种所谓的高级语言还没有完全拥有C语言的所有特性。只有比较简单核心功能,比如能把文本文件的高级语言转换成机器代码并且执行。
有了这个原型之后,就可以用这个编译器来解释简单C程序,就可以用C重写编写一个新的编译器,这样就有更多的C的功能。于是,从此之后就用现有的编译器解释更复杂的语言,用更复杂的语言写出更好的编译器,然后不断这样迭代。这确实是编译器的演变。
然后最后一个问题就是当一个新的CPU发明过后,怎么办,需要重写又从汇编开始写编译器吗?答案是不用。假设你有一个CPU A执行一些代码,你用汇编写了一个基础的C编译器,然后用C写出了更复杂的编译器,接受更复杂的C功能,然后不断循环演化。现在你有了CPU B,CPU B和CPU A执行两套完全不同的代码,那如何让CPU B的机器也可以变异C语言呢?因为现在A上面已经可以运行非常复杂的C语言程序了,所以你可以在A上面开发一个编译器把C语言程序转化为CPU B的执行代码。然后用这个程序,直接编译你的C语言编译器,再把这个程序转换到有B命令集的电脑上面,这样你就开发出了B电脑需要的C语言编译器。
所以除非你真的是活在非常早起的人类。否在现在的编译器基本上都利用这种原理直接编译已经用C语言或者其它高级语言写好的代码来产生新的编译器就行了。理论上可以只使用C语言来开发C的编译器,不过处于一些历史原因和底层效率等因素的考量,部分代码还是使用汇编来实现的。
我举得不过是一个例子,不一定是真实的C语言编译的进化,何况有这么多不同的C语言编译器,每一个的发展历史都有小的不同。但是基本上都是利用了这种编译器编译新的编译器的思想来实现了。而这样回溯回去,最早的编译器只能使用汇编来些。而其实最早的汇编语言的编译器就只能使用机器语言来写了。不过都是先处理简单的转换任务,有了这个核心功能过后,就可以写程序转换更复杂的语法。然后越来越复杂。就有了各种各样的高级语言编译器了。
㈣ 编程的语言沿革
1946
Konrad Zuse,一位德国工程师,他躲藏在巴伐利亚附近的阿尔卑斯山上时,独立开发了Plankalkul。他把该项成果应用在其它的事物中,比如国际象棋。
1949
Short Code ,第一种真正在电子计算设备上使用的计算机语言,尽管他是一个纯手工编译的的语言。
1951
Grace Hopper,为Remington Rand工作,是在第一个着名的编译器——A-o上开始设计工作。当Rand在1957年发布这个语言时,它被称为MATH-MATIC。
1952
Alick E. Glennie ,他利用自己在曼彻斯特大学的课余时间,发明了一个名为AUTOCODE的编程系统,一个未能成型的编译器。
1957
FORTRAN——数学公式转换系统(FORmula TRANslating,FORTRAN名字的由来)——出现。开发队伍的领导者是John Backus,并且他还为ALGOL的开发和巴柯斯范式(BNF)做出了贡献。
1958
FORTRAN II出现,它能够处理子程序和连接汇编语言。由M.I.T的John McCarthy在LISP-LISt Processing上开始设计工作。原始ALGOL规范出现。该规范并未描述数据的输入输出方式;这些问题都留给独立的实现者。
20世纪六十年代末
Pascal 由瑞士Niklaus Wirth教授于设计并创立,具有简洁的语法,结构化的程序结构,是结构化编程语言,在许多学校的计算机语言课上教授的都是Pascal语言。
创建COBOL
1959
LISP1.5出现。COBOL在数据系统和语言大会(Conference on Data System and Languages)上被创建了。
编译器出现
1960
ALGOL 60 ,第一种结构化语言出现。它是结构化语言家族树中的根节点,并最终产生Pascal这样的语言。ALGOL成为六十年代中期至末期欧洲最为流行的语言。
六十年代早期,Kenneth Iverson开始语言方面的工作,最终产生了APL-A编程语言。它使用专门的字符集,为了正确地使用,你还需要兼容APL的I/O设备。
1962
APL被写入Iverson的《A Programming Language》一书中。
FORTRAN IV出现。
SNOBOL这个以“首字母拼词命名”的产品,在工作的初期就取得了绝对的成功,SNOBOL——面向字符串符号(StriNg Oriented symBOlic Language)语言。它衍生了其他一些以首字母拼词命名的产品:FASBOL,一个SNOBOL编译器(1971年),还有SPITBOL——Speedy ImplemenTation of snoBOL——同样在1971年。
1963
ALGOL 60进行修正。
PL/1的工作开始。
1964
APL360被实现。
在达特茅斯大学,John G.Kemeny和Thomas E.Kurtz教授发明了BASIC。最初的实现是一个编译器。第一个BASIC程序在1964年五月一日下午四点运行。PL/1发布。
1965
SNOBOL3出现。
1966
FORTRAN 66出现。
LISP 2出现。
在Bolt,Beranek和Newman开始了LOGO的工作。小组的头是Wally Fuerzeig,而且还包括Seymour Papert。LOGO中最着名的便是“龟作图”。
1967
SNOBOL4,功能获得极大加强的SNOBOL,出现了。
1968
ALGOL 68,相对于ALGOL 60它是个怪物。一些规范委员会的成员——包括C.A.R.Hoare和Niklaus Wirth——却赞同该计划。事实证明ALGOL 68是难以实现的。
ALTRAN,一个FORTRAN的变种出现。
COBOL被ANSI正式定义规范。
Niklaus Wirth开始Pascal方面的工作。
1969
500人参加在纽约Armonk的IBM总部召开的APL会议。APL的分发需求如此之大,该活动此后被人们称为“The March on Armonk”。
程序编写
1970
70年代早期,Charles Moore在他的语言Forth中写下了第一个有意义的程序。
Prolog方面的工作大约在此时开始了。
同样是在70年代早期的某一天,Xerox PARC由Alan Kay领导,开始了Smalltalk的设计工作。早期版本包括Smalltalk-72,Smalltalk-74和Smalltalk-76。
Pascal在CDC 6000-series电脑上的一个实现出现了。
Icon,SNOBOL4的一个后代产品问世。
1972
Konrad Zuse写的关于Plankalkul(见1946年)手稿终于出版了。
Dennis Ritchie设计了C。但是最终的参考手册却是在1974年发布的。
Prolog的第一个实现——Alain Colmerauer和Phillip Roussel的功劳。
1974
另一个COBOL的ANSI规范出现。
1975
Tiny BASIC,由Bob Albrecht和Dennis Allison设计(由Dick Whipple和John Arnold实现),运行在2KB内存的微型计算机上。一台4KB的机器是较为合适的,它将有2KB的内存应用于这个程序上。
Bill Gates和Paul Allen编写的一个BASIC版本以抽取每份拷贝版税的形式销售给MITS(Micro Instrumentation and Telemetry Systems)。MITS生产Altair,这是一种8080结构的微型计算机。
Scheme,一个LISP的“方言”,由G.L. Steele和G.J. Sussman设计。
Pascal用户手册和报告出版,Jensen和Wirth编写。许多人至今都认为它是Pascal方面权威的参考书籍。
B.W. Kerninghan描述了RATFOR——RATional FORTRAN。它是预处理程序,并且允许在FORTRAN中使用类C的控制结构。RATFOR被应用到了Kernighan和Plauger的“Software Tools”中,它出现在1976年。
PostScript
1976
Design System Language出现,它被认为是PostScript的先驱。
1977
MUMPS的ANSI标准出现——麻省总医院多用途程序设计系统(Massachusetts General Hospital Utility Multi-Programming System)。MUMPS最初被用来处理医疗记录,它只能识别字符串类型。随后被重新命名为M。
设计竞赛将导致Ada的产生。由Jean Ichbiah带领的Honeywell Bull队伍,即将赢得比赛。
Kim Harris和其他人建立了FIG,一个FORTH兴趣小组。他们开发了FIG-FORTH,售价大约为20美元。
70年代晚期的某天,Kenneth Bowles设计出了UCSD Pascal,它使得Pascal可以用在PDP-11和基于Z80 的电脑上。
Niklaus Wirth开始设计Mola,它Mola-2的先行者,Pascal的继承者。
语言程序
1978
AWK——一个文本处理语言,以它设计者Aho、Weinberger和Kernighan的名字命名。
FORTRAN 77的ANSI标准出现。
1980
Smalltalk-80出现。
Mola-2出现。
Franz LISP出现。
Bjarne Stroustrup开发了一个语言集——被总称为“C With Classes”——它成为C++的滋生土壤。
1981
Effort开始成为一个LISP的“公共方言”,常被人称作Common LISP。
日本开始第五代电脑系统工程。主要语言是Prolog。
1982
ISO Pascal出现。
PostScript出现。
1983
Smalltalk-80公布:它由Goldberg等人完成。
Ada出现。他的名字来自Lovelace女伯爵Augusta Ada Byron,她是英国诗人拜伦的女儿。因其在巴贝奇分析机上设计了解伯努利方程的一个程序,而被誉为第一位女程序员。在1983年,国防部指导的全新“任务评定”应用程序是使用该语言编写的。
1983年的后期和1984年早期,微软和Digital Research共同发布第一个微型计算机的C编译器。
七月,第一个C++实现露面。该名称是由Rick Mascitti取的。
11月,Borland的Turbo Pascal的“冲击”犹如一场核风暴,这得益于《BYTE》杂志的广告。
1984
APL2的参考手册面世。APL2是APL的扩展,它允许嵌套数组。
1985
Forth控制着潜水器定位泰坦尼克号的残骸。
Vanilla SNOBOL4之微机版发布。
Methods,PC上的面向行(line-oriented)的Smalltalk出现。
微机版本
1986
Smalltalk/V露面——第一个广泛应用于微机的Smalltalk版本。
Apple公司为Mac机器发布Object Pascal。
Borland发布Turbo Prolog。
Charles Duff发布Actor,一个开发微软Windows应用程序的面向对象语言。
Eiffel,另外一个面向对象语言出现。
C++露面。
1987
Turbo Pascal 4.0发布。
1988
CLOS规范——公共LISP对象系统(Common LISP Object System)——发表。
Niklaus Wirth完成Oberon,这是他继Mola-2的后续行动。
1989
ANSI C规范公布。
C++2.0形成了一个参考手册的初稿。2.0版本增加了诸如多继承和成员指针等特性。
1990
C++2.1,B.Stroustrup等作者的《Annotated C++ Reference Manual》一书出版。这个版本增加了模板和异常处理特性。
FORTRAN 90包含了众多新元素比如case语句和派生类型。
Kenneth Iverson和Roger Hui在APL 90会议上提出了J语言。
1991
Visual Basic在COMDEX春展会上获得《BYTE》杂志颁发的最佳表现奖。
1992
Dylan——以Dylan Thomas命名——由Apple公司发布的一个类似Scheme的面向对象语言。
1993
ANSI发布X3J4.1技术报告——面向对象的COBOL提议初稿。真正的标准预计在1997年完成。
1994
微软将Visual Basic for Application整合到Excel中。
1995
二月,ISO接受Ada语言1995修订版。它被称为Ada95,其中包括OOP特性和支持实时系统。
1996
第一个ANSI C++标准预发布。
㈤ C#和java发明人是谁
java是由java之父James Gosling
James Gosling
Sun副总裁及Sun研究院院士
40年前,一个寒冷的冬天,在加拿大一个村庄里,Gosling家的第一个男孩哇哇落地了。家人给他起了名字,叫James。谁也没有袭陵想到的是,长大之后,他成为了一个改变计算机语言的天才。
James Gosling从小就喜欢技术,爱鼓捣东西。12岁的时候,他用报废的电话机和电视机中的部件做了一台电子游戏机。附近农民的康拜因(联合收割机)出了问题也常常找他修理。14岁的时候,中学组织到附近大学参观,他记住了大学计算中心的门锁密码,从此开始偷偷地溜进计算中心,学习计算机编程。一年后,大学的天文系招他当了一名临时编程员,编写计算机程序来分析卫星天文数据。
80年代初,James Gosling获得博士学位后到IBM工作,设计IBM第一代工作站。当时,IBM的领导层并不看重工作站项李圆目。失望之余,James Gosling跳槽到了Sun公司。他花了五年功夫领导开发的和OS2很类似的Sun NeWs窗口系统,尽管得到技术界的好评,却未能变成流行的产品。当时他还第一个用C实现的EMACS的所见即所得文本编辑器COSMACS。
在当今这个竞争激烈的软件开发时代,软件设计师一直在试图预测未来软件或者技术的发展趋势。在1990年,Sun公司成立了一个软件设计团队,其中除了James Gosling,还有Patrick Naughton和Mike Sheridan等人,他们合作的项目称为“绿色计划”。他们认为计算机技术发展拍扰戚的一个趋势是数字家电之间的通讯。James开始负责为设备和用户之间的交流创建一种能够实现网络交互的语言。随着大量的时间和金钱投入到“绿色计划”,他们创建了一种语言。这种语言一开始被叫做“Oak”,这个名字得自于Gosling想名字时看到了窗外的一棵橡树。但后来被改为了“Java”。并于1992年9月3日开始应用于Sun工作站的远程遥控。
1994年底,James Gosling参加了在硅谷召开的“技术、教育和设计大会”。他报着试一试的心情向与会者演示了Java的功能。他点击了网页上的一个静止的分子结构图标,一条命令通过互联网送到了几百英里外的网站,下载了一段Java小程序,在本地工作站上开始执行。在几秒钟时间里,原本静止的网页上,一个分子图像以三维动画的方式转了起来。
“哇!”James Gosling听到了全场观众的赞叹声。
不久后,硅谷最大的报纸《圣荷西信使报》在头版刊登了一篇专文,“为什么Sun认为一杯热咖啡能让你鼓足精神”。从文章见报开始,负责Java市场人员的电话响个不停。不久,全美的主要报刊杂志都刊登了Java的报道。
Java出名了!
到了2000年,Java已经成为世界上最流行的电脑语言。绿色小组当初设计Java是为了面向数字家庭,支持各种家电设备。他们没有想到的是,Java支持的计算模式,实际上就是互联网的模式。
对于Java语言的巨大成功,没有人比James Gosling 更加谦逊:“我从来没有想到Java技术将会这么火。当我的老板问我它将达到多少次下载时,我说 10,000 次。而他认为我太过乐观了。”
詹姆斯·戈士林现任Sun公司副总裁及Sun研究院院士。
戈士林先生以“Java 技术之父”而闻名于世。他是Java 技术的创始人,他亲手设计了Java语言,并开发了Java编译器和Java虚拟机,使Java成为了世界上最流行的开发语言。Java支持的计算模式,已经成为了互联网的标准编程模式以及分布式企业级应用的事实标准。目前,戈士林 先生积极致力于研究软件开发工具,使它们功能更为强大,更容易为开发人员所使用,能够快速地开发应用。
戈士林 先生曾创建了卫星数据拦截系统、Unix的多处理器版本、编译器、邮件系统和视窗管理器等。他还创建了着名的WYSIWYG (“所见即所得”)测试编译器。在Sun,他的早期活动是领导了NeWS (网络扩展视窗系统)项目,并任该项目的首席工程师。
2000年,安德尔思海斯博格,就是发明pascal语言的那个人,borland的创始人之一,神话般的人物,他一个人做了这些 pascal object pascal delphi vj++ c# .net framework
安德斯·海尔斯伯格 Delphi和.NET之父:安德斯·海尔斯(Anders Hejlsberg)
安德斯·海尔斯伯格(Anders Hejlsberg,1960.11~),丹麦人,Turbo Pascal编译器的主要作者,Delphi和.NET之父
安德斯·海尔斯伯格曾在丹麦技术大学学习工程,当时他在丹麦拥有个叫Poly Data的公司,他编写了Pascal编译器核心,最初叫作Compass Pascal,后来叫Poly Pascal。Anders把该编译器核心授权给了美国Borland公司。安德斯·海尔斯伯格作为雇员加入Borland公司,并且是后来所有Pascal版本与Delphi前3个版本的架构师。Philippe Kahn为Pascal添加了用户界面与编辑器。
Anders Hejlsberg曾在丹麦科技大学学习工程学。Anders Hejlsberg第一次登上软件界历史舞台是在80年代早期,因为他为MS-DOS和CP/M设计了一个Pascal编译器。当时,还是一个小公司的Borland很快雇用了他,并买下了他的编译器,改称Turbo Pascal。在Borland,Hejlsberg继续开发Turbo Pascal,并最终带领他的小组设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi语言。
1996年,Anders Hejlsberg在Delphi3发布前离开Borland去了MS。
在此之前,MS曾多次企图挖走Anders,但都没有成功。据信anders去MS(主要)不是钱的问题,虽然MS的开价也相当有吸引力: 130万美元年薪外加股票期权和分红,总计超过300万美元。更主要的原因是Anders和Delphi开发组的其他成员在修改编译器的问题上发生了争执;还有,据Borland内部人讲,Anders认为自己不再是“不可缺少的人”。
Anders在Delphi3中几乎没有做什么工作,Chuck Jazdzewski扮演了一个更重要的角色。(--Anders Ohlsson) Anders在Borland时把所有精力都放在了Pascal产品上,也需要新的挑战,这时Bill Gates的亲自邀请,许诺给与挑战的机会,Anders加入了Microsoft就势在必行。
Microsoft 用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了 Hejlsberg 之后,Borland 曾提出通过不正当手段吸收新成员的控告。Borland 还曾声称 — 提供了很少的细节来支持指控 — Hejlsberg 正在开发“Delphi for Java”。这场诉讼虽然最终以 Borland 的胜利而收场;但Anders 已经在为Microsoft工作了。
1996年Anders来到微软后,直接主抓Visual J++的研发工作,并在1999年被授予“distinguished engineer”(卓越工程师),在微软仅有16人获得这样的荣誉。
后来微软希望通过开发最新的软件开发语言来赢得软件开发者的拥戴,在微软公司把视窗操作系统和软件向网络迁移的新市场战略中,C#语言是最重要的环节。微软动用了最好的资源。Anders担任了C#语言的首席设计师,同时也是微软.NET战略构架的重要参与决策者。考虑一下Anders的经历,就不会奇怪微软将此重任交给他了。毕竟C#也不是他对软件开发方式重大变革的首次。现在经过几年时间的埋头苦干,C#已成为微软反击Java语言的最有力武器。
鉴于他为软件开发做出的巨大贡献,Anders在《Dr.Dobb's》杂志的2001年西部会议上被授予“Prestigious Excellence in Programming Award”,《Dr.Dobb's》杂志的主编Jonathan Erickson说:“这一荣誉,我们每年只颁给那些在软件开发领域做出非凡贡献的人员,Anders开发的C#和他整个职业生涯中为软件开发所做出的巨大贡献有目共睹,他无愧于这一荣誉!”
比尔盖茨也高度评价说:“我们为Anders获得这一荣誉感到无比自豪,Anders在C#创建中所做的努力将会改变现在的软件开发方式,并将在以后的十年继续产生影响。”
“程序员是最好的职业”,Anders说:“每两年,CPU的速度要加倍,内存容量是原来的四倍,但是我们的大脑还是原来的大小,很显然,将需要更多的程序原来补充这些。”
注:海尔斯伯格曾在微软博物馆视频上表明他是1960年生的,但很多其它资料显示,他是1961年生的。2006年,在巴塞罗那微软技术教育大会(TechED)上,安德斯再次确认他生于1960年。
㈥ 请问编写软件的第一个语言程序是如何诞生的
早期的计算机软件都是用汇编语言直接编写的,这种状况持续了数年。当人们发现为不同类型的CPU编写可重用软件的开销要明显高于编写编译器时,人们发明了高级编程语言。由于早期的计算机的内存很少,当大家实现编译器时,遇到了许多前源技术难题。
大约在20世纪50年代末期,与机器无关的编程语言被首次提出。随后,人们开发了几种实验性质的编译器。第一个编译器是由Grace Hopper于1952年为A-0语言编写的。通常认为,1957年由IBM的约翰·巴科斯领导的FORTRAN团队介绍了第一个完整的编译器。1960年,COBOL成为一种较早的能在多种架构下被编译的语言。
高级语言在许多领域流行起来。由于新的编程语言支持的功能越来越多,计算机的架构越来越复杂,这使得编译器也越来越复杂。
早期的编译器是用汇编语言编写的。首个能编译自己源程序的编译器启悔简是在1962年由麻省理工学院的Hart和Levin制作的。从20世纪70年代起,实现能编译自己源程序的编译器变得越来越可行,不过还是用Pascal和C语言来实现编译器更加流行。制作某种语言的第一个能编译器,要么需要用其它语言来编写,要么就像Hart和Levin制作Lisp编译器那样,悄裤用解释器来运行编译器。
引自 : 维基网络
㈦ 电脑编程的基础知识——编译器和连接器
我从没见过(不过应该有)任何一本C++教材有讲过何谓编译器(Compiler)及连接器(Linker)(倒是在很老的C教材中见过),现在都通过一个类似VC这样的编程环境隐藏了大量东西,将这些封装起来。在此,对它们的理解是非常重要的,本系列后面将大量运用到这两个词汇,其决定了能否理解如声明、定义、外部变量、头文件等非常重要的关键。
前面已经说明了电脑编程就是一个“翻译”过程,要把用户的程序翻译成CPU指令,其实也就是机器代码。所谓的机器代码就是用CPU指令书写的程序,被称作低级语言。而程序员的工作就是编写出机器代码。由于机器代码完全是一些数字组成(CPU感知的一切都是数字,即使是指令,也只是1代表加法、2代表减法这一类的数字和工作的映射),人要记住1是代表加法、2是代表减法将比较困难,并且还要记住第3块内存中放的是圆周率,而第4块内存中放的是有效位数。所以发明了汇编语言,用一些符号表示加法而不再用1了,如用ADD表示加法等。
由于使用了汇编语言,人更容易记住了,但是电脑无法理解(其只知道1是加颂隐法,不知道ADD是加法,因为电脑只能看见数字),所以必须有个东西将汇编代码翻译成机器代码,也就是所谓的编译器。即编译器是将一种语言翻译成另一种语言的程序。即使使用了汇编语言,但由于其几乎只是将CPU指令中的数字映射成符号以帮助记忆而已,还是使用的空迹电脑的思考方式进行思考的,不够接近人类的思考习惯,故而出现了纷繁复杂的各种电脑编程语言,如:PASCAL、BASIC、C等,其被称作高级语言,因为比较接近人的思考模式(尤其C++的类的概念的推出),而汇编语言则被称作低级语言(C曾被称作高级的低级语言),因为它们不是很符合人类的思考模式,人类书野亏厅写起来比较困难。由于CPU同样不认识这些PASCAL、BASIC等语言定义的符号,所以也同样必须有一个编译器把这些语言编写的代码转成机器代码。对于这里将要讲到的C++语言,则是C++语言编译器(以后的编译器均指C++语言编译器)。
因此,这里所谓的编译器就是将我们书写的C++源代码转换成机器代码。由于编译器执行一个转换过程,所以其可以对我们编写的代码进行一些优化,也就是说其相当于是一个CPU指令程序员,将我们提供的程序翻译成机器代码,不过它的工作要简单一些了,因为从人类的思考方式转成电脑的思考方式这一过程已经由程序员完成了,而编译器只是进行翻译罢了(最多进行一些优化)。
还有一种编译器被称作翻译器(Translator),其和编译器的区别就是其是动态的而编译器是静态的。如前面的BASIC的编译器在早期版本就被称为翻译器,因为其是在运行时期即时进行翻译工作的,而不像编译器一次性将所有代码翻成机器代码。对于这里的“动态”、“静态”和“运行时期”等名词,不用刻意去理解它,随着后续文章的阅读就会了解了。
编译器把编译后(即翻译好的)的代码以一定格式(对于VC,就是COFF通用对象文件格式,扩展名为.obj)存放在文件中,然后再由连接器将编译好的机器代码按一定格式在Windows操作系统下就是Portable Executable File Format--PE文件格式)存储在文件中,以便以后操作系统执行程序时能按照那个格式找到应该执行的第一条指令或其他东西,如资源等。至于为什么中间还要加一个连接器以及其它细节,在后续文章中将会进一步说明。
㈧ 电脑发明编程或程序是哪一位
电脑发明编程或程序是哪一位?
英国着名诗人拜伦的女儿Ada Lovelace曾设计了巴贝奇分析机上解伯努利方程的一个程序.她甚至还建立了循环和子程序的概念.由于她在程序设计上的开创性工作,Ada Lovelace被称为世界上第一位程序员.美国国防部开发的ADA语言就是为纪念这位世界上的第一位程序员而命名的.还有一个女的,美国的,也是第一程序员,还是美国海军少将军衔呢.计算机软件的第一夫人--格雷斯?霍波 格雷斯?霍波是杰出的女数学家和计算机语言领域的带头人 1949年,霍波离开哈佛,加盟由第一台电子计算机ENIAC发明人埃克特和莫齐利开办的电脑公司,为第一台储存程序的商业电子计算机UNIVAC编写软件.这期间,她开发出了世界上第一个将高级符号语言转变为机器语言的编译器ADA(1952年),第一个处理数学计算的编译器A?2(1953年),第一个自动翻译英语的数据处理语言的编译器B?O(也叫Flow-Matic.1957年).这是第一个用于商业数据处理的类似英语的语言.后来以Flow-Matic为基础开发COBOL语言,于1959年问世,它是第一批高级程序设计语言之一,广泛用于大型机和小型机电脑的高级商业程序设计.COBOL文本诞生后,霍波又率先实现了COBOL的第一个编译器,因此,有人把霍波叫做“COBOL之母”.据20世纪80年代初的统计,全美国在运行中的程序有80%是用COBOL语言编写的,由此可见这个语言对计算机应用发展所起的作用.在电脑软件的进展中,格雷斯?霍波女士做出了很大的贡献.她的努力使电脑在商用化和产业化方面取得长足的进步.
㈨ 第一个 C 语言编译器是怎样编写的
第一个C语言编译器
是先制定了简单的C语法后,用B语言写的
这个是C语言的前身。
当时B语言已经比较成熟 只不过 没有C强大
于是 发明了C语言
之所以叫C,其实也是因为在B基础上加一。
后续的C编译器 就都是用C写的了。
㈩ 请问,编译软件最早是由谁发明出来的
Grave of Grace
后记
Grace Hopper是个非常amazing的人 (常被称为Amazing Grace),崇拜她的人相当多。虽然她的事迹很多,但是还有很多有类似事迹的人并没有像她这样受到众人的崇拜。由其中一点我们可以看出来:从1947年开始 (二战结束后第二年),她获得了第一个荣誉博士学位 (宾州大学),从那以后,她先后被40多所大学授予荣誉博士学位,其中包括芝加哥大学、华盛顿大学、马里兰大学等知名学府。各种妇女社会团体和学术组织都曾授予Grace各种称号和奖励。1991年,布什总统在白宫授予她的“美国国家技术奖” (National Medal of Technology) 是其中的最高奖项,她也是至今惟一获此殊荣的美国女性。她的名言有很多,她自己最喜欢的,也是她最喜欢对所谓的“年轻人”说的 (在她年老时,她所谓的年轻人就是“年龄不到我的一半的人就叫做年轻人”),这句话是:
“A ship in port is safe, but that is not what ships are built for.”
语录
下面Grace的语录中有几句比较有意思的话。
From then on, when anything went wrong with a computer, we said it had bugs in it.
The most dangerous phrase in the language is, “We’ve always done it this way.”
Humans are allergic to change. They love to say, “We’ve always done it this way.” I try to fight that. That’s why I have a clock on my wall that runs counter-clockwise.
Leadership is a two-way street, loyalty up and loyalty down. Respect for one’s superiors; care for one’s crew.
One accurate measurement is worth a thousand expert opinions.
Someday, on the corporate balance sheet, there will be an entry which reads, “Information”; For in most cases, the information is more valuable than the hardware which processes it.
We’re flooding people with information. We need to feed it through a processor. A human must turn information into intelligence or knowledge. We’ve tended to forget that no computer will ever ask a new question.
To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
They told me computers could only do arithmetic.
In pioneer days they used oxen for heavy pulling, and when one ox couldn’t budge a log, they didn’t try to grow a larger ox. We shouldn’t be trying for bigger computers, but for more systems of computers.
Life was simple before World War II. After that, we had systems.
We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington.
At any given moment, there is always a line representing what your boss will believe. If you step over it, you will not get your budget. Go as close to that line as you can.
I seem to do a lot of retiring.
I handed my passport to the immigration officer, and he looked at it and looked at me and said, “What are you?”
参考
维基网络:
http://en.wikipedia.org/wiki/Grace_Hopper
国立中央大学数学系:
http://li.math.ncu.e.tw/bcc16/pool/3.06.shtml
耶鲁大学计算机系:
http://cs-www.cs.yale.e/homes/tap/Files/hopper-story.html
计算机先驱:
http://202.207.0.245:9001/jisuanjifazhanshi/xianqu/18.htm
This entry was posted in网络3Cand taggedcompiler,debug,Grace Murray Hopper,传记,发明,编译器,起源. Bookmark thepermalink.Post a commentor leave a trackback:Trackback URL.