編譯原理語法分析上機(jī)實(shí)驗(yàn)讀書工程匯報(bào)_第1頁
編譯原理語法分析上機(jī)實(shí)驗(yàn)讀書工程匯報(bào)_第2頁
編譯原理語法分析上機(jī)實(shí)驗(yàn)讀書工程匯報(bào)_第3頁
編譯原理語法分析上機(jī)實(shí)驗(yàn)讀書工程匯報(bào)_第4頁
編譯原理語法分析上機(jī)實(shí)驗(yàn)讀書工程匯報(bào)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

第頁編譯原理語法分析上機(jī)實(shí)驗(yàn)讀書工程匯報(bào)

此次編譯原理課程設(shè)計(jì)的編譯器的實(shí)現(xiàn)是基于VC++6.0編譯環(huán)境下實(shí)現(xiàn)的。

對于VC++6.0,它是Microsoft公司推出的開發(fā)Win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不僅具有程序框架自動(dòng)生成、靈活方便的類管理、代碼編寫和界面設(shè)計(jì)集成交互操作、可開發(fā)多種程序等優(yōu)點(diǎn)。

VC++6.0不僅是一個(gè)C++編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境。VisualC++6.0明顯縮短程式編輯、編譯及連結(jié)花費(fèi)的時(shí)間,在大型軟件計(jì)劃上尤其顯著。

二、基本理論闡述、當(dāng)前理論

1.什么是編譯程序

語言翻譯程序把一種語言(稱作源語言)書寫的程序翻譯成另一種語言(稱作目標(biāo)語言)的等價(jià)程序。

2.高級語言程序的處理過程

3.編譯過程

三、小型編譯器系統(tǒng)架構(gòu)(最重要)

1).詞法分析:

詞法分析是編譯過程的第一個(gè)階段。這個(gè)階段的任務(wù)是從左到右一個(gè)字符一個(gè)字符地讀入源程序,對構(gòu)成源程序的字符流開展掃描和分解,從而識別出一個(gè)個(gè)單詞(也稱單詞符號或符號)。這里所謂的單詞是指邏輯上嚴(yán)密相連的一組字符,這些字符具有集體含義。比方標(biāo)識符是由字母字符開頭,后跟字母、數(shù)字字符的字符序列組成的一種單詞。保存字(關(guān)鍵字或基本字)是一種單詞,此外還有算符、界符等等。

2).語法分析:

語法分析是編譯過程的第二過程。語法分析的任務(wù)是在詞法分析的根底上將單詞序列分解成各類語法短語;如“程序”、“語句”、“表達(dá)式”等。一般這種語法短語,也稱語法單位,可表示成語法樹。

詞法分析和語法分析本質(zhì)上都是對源程序的構(gòu)造開展分析。但詞法分析的

任務(wù)僅對源程序開展線性掃描即可完成,比方識別標(biāo)識符,因?yàn)闃?biāo)識符的構(gòu)造是字母打頭的字母和數(shù)字串,這只要順序掃描輸入流,遇到既不是字母又不是數(shù)字字符時(shí),將前面所發(fā)現(xiàn)的所有字母和數(shù)字組合在一起而構(gòu)成單詞標(biāo)識符。但這種線性掃描則不能用于識別遞歸定義的語法成分,比方就不能用此方法去匹配表達(dá)式中的括號。

目前,已存在許多語法分析的方法。但就產(chǎn)生語法樹的方向而言,可大致把他們分為自底向上和自頂向下兩大類。

3)中間代碼生成:

在開展了上述的語法分析和語義分析階段的工作之后,有的編譯程序?qū)⒃闯绦蜃兂梢环N內(nèi)部表示形式,這種內(nèi)部表示形式叫做中間語言或中間代碼。所謂“中間代碼”是一種構(gòu)造簡單、含義明確的記號系統(tǒng)可以設(shè)計(jì)為多種多樣的形式,重要的`設(shè)計(jì)原則為兩點(diǎn):一是容易生成;二是容易將它翻譯成目標(biāo)代碼。很多編譯程序采用了一種近似‘三地址指令’的“四元式”中間代碼,這種四元式的形式為:(運(yùn)算符,運(yùn)算對象1,運(yùn)算對象2,結(jié)果);

4).目標(biāo)代碼生成:

這一階段的任務(wù)是把中間代碼變換成特定機(jī)器上的絕對指令代碼或可重定位的指令或匯編指令代碼。這是編譯的最后階段,它的工作與硬件系統(tǒng)構(gòu)造和指令含義有關(guān),這個(gè)階段的工作很復(fù)雜,涉及到硬件系統(tǒng)功能部件的應(yīng)用、機(jī)器指令的選擇、各種數(shù)據(jù)類型變量的存儲空間分配以及存放器和后援存放器的調(diào)度等。

此外,本程序不涉及語義分析,代碼優(yōu)化等代碼優(yōu)化階段。

本次課程設(shè)計(jì)設(shè)計(jì)出的小型編譯器,適用范圍比較小,局限性較高,綜合度不算強(qiáng)。語言不是很嚴(yán)謹(jǐn),有待改良。

四、小型編譯器主要功能模塊與實(shí)現(xiàn)

第一部分:語法分析程序;

(1).功能介紹

輸入LL(1)文法的字符串,LL(1)程序可以分析其匹配過程。輸入一個(gè)字符串,算符優(yōu)先程序可以分析其規(guī)約移進(jìn)的過程。

(2).相關(guān)理論

語法分析對輸入串的處理(進(jìn)棧與出棧,歸約和承受)是獨(dú)立于語法分析之外單獨(dú)的一部分,但是其只能分析有限的輸入串,無法完全任意識別。相關(guān)理論

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論