發明編譯器
㈠ 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.