關(guān)鍵詞:編譯原理歷史變更 編譯工具 實踐性 課程教材龍書發(fā)展 一、編譯原理的歷史發(fā)展 第一個編譯程序的出現(xiàn)是在20世紀50年代早期,很難講出確切的時間,因為當初大量的實驗和實現(xiàn)工作是由不同的小組獨立完成的,多數(shù)早期的編譯工作是將算術(shù)公式翻譯成機器代碼。用現(xiàn)在的標準來衡量,當時的編譯程序能完成的工作十分初步,如只允許簡單的單目運算,數(shù)據(jù)元素的命名方式有很多限制。然而它們奠定了對高級語言編譯系統(tǒng)的研究和開發(fā)的基礎(chǔ)。20世紀50年代中期出現(xiàn)了FORTRAN等一批高級語言,相應(yīng)的一批編譯系統(tǒng)開發(fā)成功。隨著編譯技術(shù)的發(fā)展和社會對編譯程序需求的不斷增長,20世紀50年代末有人開始研究編譯程序的自動生成工具,提出并研制編譯程序的編譯程序。它的功能是以任一語言的詞法規(guī)則、語法規(guī)則和語義解釋出發(fā),自動產(chǎn)生該語言的編譯程序。目前很多自動生成工具已廣泛使用,如詞法分析程序的生成系統(tǒng)LEX,語法分析程序的生成系統(tǒng)YACC等。20世紀60年代起,不斷有人使用自展技術(shù)來構(gòu)造編譯程序。自展的主要特征是用被編譯的語言來書寫該語言自身的編譯程序。1971年,PASCAL的編譯程序用自展技術(shù)生成后,其影響就越來越大。 二、編譯原理工具的具體發(fā)展 隨著大規(guī)模集成電路、網(wǎng)絡(luò)通訊和其它數(shù)字信息技術(shù)的迅速發(fā)展,目前嵌入式系統(tǒng)己經(jīng)廣泛地滲透到科學研究、工程設(shè)計、軍事技術(shù)、各類產(chǎn)業(yè)和商業(yè)文化藝術(shù)等各方面,在人們?nèi)粘I钪械姆椒矫婷娴教幨乔度胧较到y(tǒng)設(shè)備的身影,如手機、PDA、智能家電以及汽車電子等。隨著國內(nèi)外各種嵌入式產(chǎn)品的進一步開發(fā)和推廣,嵌入式技術(shù)和人們的生活結(jié)合越來越緊密,人們?nèi)粘5墓ぷ?、學習和生活方式終將不可避免地逐步改變,嵌入式產(chǎn)品正在逐步形成時尚,在當今的信息社會中扮演越來越重要的角色。 嵌入式系統(tǒng)一般指的是非PC系統(tǒng),它包括完全植入嵌入式硬件內(nèi)部的為特定應(yīng)用設(shè)計的專用計算機系統(tǒng),以及相應(yīng)的硬件。嵌入式系統(tǒng)以應(yīng)用為中心的,它的軟硬件可以根據(jù)需求進行裁減,以此來適應(yīng)目標系統(tǒng)對外形尺寸、功能、可靠性、成本、功耗、外部接口等方面的嚴格要求。簡單地說,嵌入式系統(tǒng)集操作系統(tǒng)、應(yīng)用軟件與硬件于一體,具有軟件代碼小、高度自動化、響應(yīng)速度快等特點,因此特別適合要求實時和多任務(wù)的應(yīng)用。 編譯實現(xiàn)方式的發(fā)展主要分一下五類:手工、機器語言、匯編、系統(tǒng)程序設(shè)計語言、自動構(gòu)造工具lex yacc gcc。推動編譯技術(shù)發(fā)展的因素主要包括:語言范型(計算模式)、計算機體系結(jié)構(gòu)語言范型主要包括:命令式(imperative language) 、應(yīng)用式(applicative) 、基于規(guī)則的(rule-based)、面向?qū)ο蟮模╫bject-oriented)、并行計算(parallel computing)。 體系結(jié)構(gòu)主要包括:萬諾曼機體系結(jié)構(gòu)、并行體系結(jié)構(gòu)、嵌入系統(tǒng)。編譯程序執(zhí)行環(huán)境主要包括:批處理、交互環(huán)境、嵌入系統(tǒng)環(huán)境、并行編譯技術(shù)、交叉編譯?! 【幾g程序在一個機器(宿主機)上運行,產(chǎn)生另一個機器(目標機)的匯編語言。嵌入式系統(tǒng)中的應(yīng)用程序正是借助這樣的編譯程序生成。 目標處理器MIPSX是MIPS系列芯片的種,屬于RISC體系結(jié)構(gòu),來源于斯坦福大學的MIPS計劃。由于該系列CPU不是采用加州大學伯克利分校的RISC窗口技術(shù)而是采用消除流水線各級互鎖的微處理器MIPS(MicroprocessorWithout Interlocking Pipeline Stage)技術(shù),因此而得名。MIPS是將IBM公司對優(yōu)化編譯程序的研究和加州大學伯克利分校的大規(guī)模集成電路的思想結(jié)合起來的產(chǎn)品。 但是由于存在數(shù)據(jù)和指令轉(zhuǎn)移的相關(guān)性,這會引起流水線的停頓,降低流水線整體的執(zhí)行速率。為了調(diào)整這些相關(guān)性,又開發(fā)出了代碼重組技術(shù),其中一種是延遲轉(zhuǎn)移(delayed branch),另一種叫延遲裝入,提升了性能。 三、編譯原理課程教材和實踐性的發(fā)展 “編譯原理”課程分析編譯原理課程一般利用常用軟件如C,Pascal等來構(gòu)建編譯的各部分程序,編譯原理的構(gòu)成包括詞法分析,語法分析、語義分析、中間代碼生成、代碼優(yōu)化和目標代碼生成等。編譯原理課程的學習可以對程序設(shè)計語言的設(shè)計和實現(xiàn)有深刻的理解,還可以有助于快速理解定位和解決在程序編譯、測試與運行中出現(xiàn)的問題。編譯程序規(guī)模大。由于編譯原理是一個極其復(fù)雜的系統(tǒng),程序規(guī)模大,將它肢解開來一部分一部分地研究。理論知識抽象。要完整地構(gòu)造一個編譯系統(tǒng)并不是一件容易的事情,它不僅需要具有較完備的軟件知識,并需要掌握現(xiàn)有的軟件工具的使用,而且更重要的是要有豐富的實踐經(jīng)驗,了解硬件系統(tǒng)結(jié)構(gòu)和操作系統(tǒng)的功能。算法的理解和實現(xiàn)。編譯原理這門課包含許多理論知識和算法,這些理論的學習和理解都存在著一定的難度。其中理論知識包括:詞法分析器的構(gòu)造,語法中各種分析器(LR,LL,SLR,LALR等)實現(xiàn)與完成。 在編譯原理的不斷發(fā)展和完善過程中,一本本課程教材接踵而至,其中不乏非常優(yōu)秀的“名書”。編譯領(lǐng)域里程碑式的經(jīng)典著作——龍書,20年后終于出新版!這是一個延綿30年的故事,這是一部關(guān)于龍書的傳奇!最新版本,增添三章節(jié)內(nèi)容,使龍書地位更權(quán)威! 1977年,Alfred V. Aho 和Jeffrey D. Ullman 出版《Principles of Compiler Design 》,封面是一名騎士和一只恐龍,因此第一次被人稱為龍書,但因為那條龍是綠色的,所以稱為綠龍書。過了9年,1986年,原來的兩位作者加上Ravi Sethi, 升級了前一本書,書名改為《Compilers: Principles, Techniques and Tools》,封面依然沿用騎士和恐龍,那頭龍是紅色的,因此被叫做龍書二或者是紅龍書。又過了一個9年,又一個9年,編譯領(lǐng)域的巨無霸--龍書始終都沒有升級。終于在2006年年底,龍書升級了。作者又增加了Monica S. Lam,名字沿用《Compilers: Principles, Techniques and Tools》,封面依然保持恐龍和武士的設(shè)計,但這次的龍是紫色,因此叫做紫龍書。 本書全面、深入地探討了編譯器設(shè)計方面的重要主題,包括詞法分析、語法分析、語法制導定義和語法制導翻譯、運行時刻環(huán)境、目標代碼生成、代碼優(yōu)化技術(shù)、并行性檢測以及過程間分析技術(shù),并在相關(guān)章節(jié)中給出大量的實例。與上一版相比,本書進行了全面的修訂,涵蓋了編譯器開發(fā)方面的最新進展。每章中都提供了大量的系統(tǒng)及參考文獻。本書是編譯原理課程方面的經(jīng)典教材,內(nèi)容豐富,適合作為高等院校計算機及相關(guān)專業(yè)本科生及研究生的編譯原理課程的教材,也是廣大技術(shù)人員的極佳參考讀物。Alfred V. Aho是哥倫比亞大學的Lawrence Gussman計算機科學教授。 Aho教授多次獲獎,其中包括哥倫比亞校友會頒發(fā)的2003年度Great Teacher獎和電子與電器工程師協(xié)會的Jonh von Neumann獎?wù)隆K敲绹鴩夜こ淘涸菏?,以及ACM和IEEE的會員。Monica S. Lam是斯坦福大學的計算機科學教授。她曾經(jīng)是Tensilica 的首席科學家,并且是moka5的創(chuàng)建者和首席執(zhí)行官。她領(lǐng)導了 SUIF項目。該項目開發(fā)了最流行的研究性編譯器之一,并首創(chuàng)了很多在工業(yè)界得到應(yīng)用的編譯技術(shù)。Jeffery D.Ullman是Gradiance公司的首席執(zhí)行官和Standford大學的StanfordcW.Ascherman計算機科學(名譽退休)教授他的研究興趣包括數(shù)據(jù)庫理論、數(shù)據(jù)庫集成、數(shù)據(jù)挖掘和利用信息基礎(chǔ)軟件的教育技術(shù).他是美國國家工程院的院士,ACM的會員,并且是 Karlstrom獎和Knuth獎的獲得者。 四、總結(jié) 在編譯原理領(lǐng)域的技術(shù)人員和專家的共同努力下,編譯原理近幾年在各方面都有了迅猛的發(fā)展。特別是能在最前沿有所進步,這是頂尖科學工作者不懈努力的結(jié)果。在編譯工具方面,也有了一定的發(fā)展,由于編譯原理產(chǎn)生時間并不是很久,能有現(xiàn)在的發(fā)展應(yīng)該說是很不錯了。對于編譯課程,也在不斷進行改革,通過教育來培養(yǎng)更多編譯領(lǐng)域的人才。 參考文獻 [1]王一賓,基于面向?qū)ο蟮木幾g原理實驗的研究[J],安徽:安慶師范學院學報(自然科學版),2002. [2]劉欣欣,“編譯原理”雙語教學的實踐與探索[J].長春:長春師范學院學報.2005.02. [3] http://10.1.136.24/kns50/detail.aspx?QueryID=261&CurRec=13. [4]AlfredV.Aho.RaviSethi.JeffreyD.Ullman.compilers:Principles,Techniques,and Tools[M].Pearson Education出版集團。2002. [5]程虎,一個自動編譯系統(tǒng)ACS[J],浙江:軟件學報,1991.0. [6] http://www./article/tech-35105.htm. [7]馮鋼,基于GCC的嵌入式系統(tǒng)編譯器研究和開發(fā)浙江大學碩士論文,March 2004. [8]石教英,計算機體系結(jié)構(gòu) 浙江大學出版社 p175. |
|
來自: 賢人好客 > 《編譯原理與智能計算》