從功能上說編譯程序是一個翻譯程序_第1頁
從功能上說編譯程序是一個翻譯程序_第2頁
從功能上說編譯程序是一個翻譯程序_第3頁
從功能上說編譯程序是一個翻譯程序_第4頁
從功能上說編譯程序是一個翻譯程序_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第1章概述從功能上說編譯程序是一個翻譯程序,將高級語言的程序翻譯成低級語言的程序。以源程序在編譯過程中的不同表示形式初步理解編譯各階段的工作。不會有很多人會從事設(shè)計和編寫編譯程序的工作的,但編譯技術(shù)會應(yīng)用在很多領(lǐng)域。有關(guān)術(shù)語:源語言,源程序,目標(biāo)語言,目標(biāo)程序,語言轉(zhuǎn)換系統(tǒng),編譯程序的T型圖表示。第3章文法和語言本章出現(xiàn)的概念較多,應(yīng)重點理解文法,推導(dǎo),句型句子及語言的定義等概念.文法作為程序語言的語法的描述工具,它用規(guī)則只能陳述的是:語言的所有句子以什麼樣的符號串能出現(xiàn).請記住文法和語言的形式定義中的“形式”的含義-只涉及語言的語法不涉及語言的語義.本章內(nèi)容是形式語言理論的一部分.形式語言理論是對符號串集合的表示法、結(jié)構(gòu)及其特性的研究。是程序設(shè)計語言語法分析研究的基礎(chǔ)。已知文法G[A],寫出它定義的語言描述

G[A]:A→0B|1C

B→1|1A|0BB

C→0|0A|1CC答案:G[A]定義的語言由0、1符號串組成,串中0和1的個數(shù)相同.構(gòu)造一文法,其定義的語言是由算符+,*,(,)和運(yùn)算對象a構(gòu)成的算術(shù)表達(dá)式的集合.答案1:G[E]:

E→E+T|T

T→T*F|F

F→(E)|a

答案2:G[E]:E→E+E|E*E|(E)|a第4章詞法分析詞法分析程序是編譯第一階段的工作,它讀入字符流的源程序,按照詞法規(guī)則識別單詞,交由語法分析程序接下去。本章講述了詞法分析程序設(shè)計原則,并介紹了正規(guī)式和有窮動機(jī)分別作為正規(guī)集描述和識別機(jī)制。詞法分析程序的設(shè)計技術(shù)可應(yīng)用于其它領(lǐng)域,比如查詢語言以及信息檢索系統(tǒng)等。詞法分析程序的自動構(gòu)造工具也廣泛應(yīng)用于許多方面,如用以生成一個程序,可識別印刷電路板中的缺陷,又如開關(guān)線路設(shè)計和文本編輯的自動生成等。第5章自頂向下語法分析方法確定的自頂向下分析方法雖對文法有一定的限制,但由于實現(xiàn)方法簡單、直觀,便于手工構(gòu)造或自動生成語法分析器,因而仍是目前常用的方法之一。要求能夠?qū)σ粋€給定的文法判斷是否是LL(1)文法;能構(gòu)造預(yù)測分析表;能用預(yù)測分析方法判斷給定的輸入符號串是否是該文法的句子;對某些非LL(1)文法做等價變換后可能變成LL(1)文法。

第6章算符優(yōu)先分析語法分析是編譯程序的核心部分。語法分析的作用是識別由詞法分析給出的單詞符號序列是否是給定文法的正確句子(程序),目前語法分析常用的方法有自頂向下(自上而下)分析(見第5章)和自底向上(自下而上)分析兩大類。而自底向上分析又可分為算符優(yōu)先分析和LR分析(見第7章),它們的分析都是移進(jìn)-歸約過程,是自頂向下最右推導(dǎo)的逆過程,但LR分析是規(guī)范歸約,算符優(yōu)先分析不是規(guī)范歸約。它們的區(qū)別在于識別可歸約串的原則不同。LR分析是按規(guī)范句型的句柄為可歸約串,算符優(yōu)先分析是以句型的最左素短語為可歸約串,這樣算符優(yōu)先分析去掉了單非終結(jié)符的歸約(即一個非終結(jié)符到另一個非終結(jié)符的歸約),因此,算符優(yōu)先分析法比LR分析(規(guī)范歸約)法的歸約速度快。算符優(yōu)先分析的缺點是對文法有一定的限制,在實際應(yīng)用中往往只用于算數(shù)表達(dá)式的歸約。由于算符優(yōu)先分析不是規(guī)范歸約,所以可能把不是文法的句子錯誤的歸約成功。

算符優(yōu)先分析是移進(jìn)-歸約過程,移進(jìn)就是將一個終結(jié)符推進(jìn)棧,歸約就是將0個或多個符號(某個產(chǎn)生式的右部)從棧中彈出,將相應(yīng)產(chǎn)生式左部的非終結(jié)符壓入棧中。對一個輸入符號串,不斷地進(jìn)行移進(jìn)-歸約過程,若能歸約到文法的開始符號則為歸約成功。在歸約工作的每一步,都是從當(dāng)前棧頂符號串中尋找一個子串,看它是否能歸約到文法的某個非終結(jié)符號,該子串稱為“可歸約串”。因此,如何識別"可歸約串"是算符優(yōu)先分析的關(guān)鍵問題。要求:對一個給定的算符文法能構(gòu)造算符優(yōu)先關(guān)系分析表,并能判別所給文法是否為算符優(yōu)先文法。對一個給定的輸入串能應(yīng)用算符優(yōu)先關(guān)系分析表給出分析(歸約)步驟,并最終判斷所給輸入串是否為該文法的句子。分清規(guī)范句型的句柄和最左素短語的區(qū)別,進(jìn)而分清算符優(yōu)先歸約和規(guī)范歸約的區(qū)別。第7章LR分析法LR分析的特征是:約過程是規(guī)范的:符號棧中的符號是規(guī)范句型的前綴,且不含句柄以后的任何符號(活前綴)。分析決策依據(jù)棧頂狀態(tài)和現(xiàn)行輸入符號是什么來決定的。為構(gòu)造LR分析表,可先構(gòu)造識別活前綴和句柄的DFA。LR分析器的關(guān)鍵部分是分析表的構(gòu)造,對一個文法能判斷是否是LR類文法,能構(gòu)造相應(yīng)的LR分析表,并能對給定的輸入串進(jìn)行分析以決定該輸入串是否為所給文法的句子四種LR類型:LR(0)SLR(1)LALR(1)LR(1)功能逐個增強(qiáng)

四種LR類型的文法是真包含關(guān)系

四種LR類分析器的作用LR類型文法是無二義的某些二義性文法,人為地給出優(yōu)先性和結(jié)合性的規(guī)定,可能構(gòu)造出比相應(yīng)非二義性文法更優(yōu)越的LR分析器。第8章語法制導(dǎo)翻譯與中間代碼生成中間代碼是復(fù)雜性介于源程序語言和機(jī)器語言的一種表式形式。編譯程序中所使用的中間代碼有多種形式,常見的有逆波蘭記號、三元式和四元式等等。源程序翻譯成中間表示,要在保證源語言語句語義的條件下進(jìn)行源語句到目標(biāo)語句結(jié)構(gòu)上的變換。學(xué)習(xí)了本章應(yīng)能掌握一般語法成分,如條件語句,循環(huán)語句和簡單說明語句等結(jié)構(gòu)的翻譯。

語法制導(dǎo)翻譯指的是編譯實現(xiàn)的方法,分析過程和分析樹用于制導(dǎo)語義分析和源程序的翻譯,常用的辦法是擴(kuò)充慣用的文法,加上控制語義分析和翻譯的信息,這樣的文法稱為屬性文法。第11章代碼優(yōu)化代碼優(yōu)化是對程序?qū)嵤└鞣N等價變換,使得變換后的程序利于生成更有效的目標(biāo)代碼。編譯程序可以在中間代碼一級

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論