- 相關(guān)推薦
編譯原理語法分析上機(jī)實(shí)驗(yàn)讀書工程匯報
一、開發(fā)環(huán)境簡介
此次編譯原理課程設(shè)計的編譯器的實(shí)現(xiàn)是基于VC++6.0編譯環(huán)境下實(shí)現(xiàn)的。
對于VC++6.0,它是Microsoft公司推出的開發(fā)Win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不僅具有程序框架自動生成、靈活方便的類管理、代碼編寫和界面設(shè)計集成交互操作、可開發(fā)多種程序等優(yōu)點(diǎn)。
VC++6.0不僅是一個C++ 編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境。Visual C++6.0明顯縮短程式編輯、編譯及連結(jié)花費(fèi)的時間,在大型軟件計劃上尤其顯著。
二、基本理論闡述、當(dāng)前理論
1.什么是編譯程序
語言翻譯程序把一種語言(稱作源語言)書寫的程序翻譯成另一種語言(稱作目標(biāo)語言)的等價程序。
2.高級語言程序的處理過程
3.編譯過程
三、小型編譯器系統(tǒng)架構(gòu)(最重要)
1).詞法分析:
詞法分析是編譯過程的第一個階段。這個階段的任務(wù)是從左到右一個字符一個字符地讀入源程序,對構(gòu)成源程序的字符流進(jìn)行掃描和分解,從而識別出一個個單詞(也稱單詞符號或符號)。這里所謂的單詞是指邏輯上緊密相連的一組字符,這些字符具有集體含義。比如標(biāo)識符是由字母字符開頭,后跟字母、數(shù)字字符的字符序列組成的一種單詞。保留字(關(guān)鍵字或基本字)是一種單詞,此外還有算符、界符等等。
2).語法分析:
語法分析是編譯過程的第二過程。語法分析的任務(wù)是在詞法分析的基礎(chǔ)上將單詞序列分解成各類語法短語;如“程序”、“語句”、“表達(dá)式”等。一般這種語法短語,也稱語法單位,可表示成語法樹。
詞法分析和語法分析本質(zhì)上都是對源程序的結(jié)構(gòu)進(jìn)行分析。但詞法分析的
任務(wù)僅對源程序進(jìn)行線性掃描即可完成,比如識別標(biāo)識符,因?yàn)闃?biāo)識符的結(jié)構(gòu)是字母打頭的字母和數(shù)字串,這只要順序掃描輸入流,遇到既不是字母又不是數(shù)字字符時,將前面所發(fā)現(xiàn)的所有字母和數(shù)字組合在一起而構(gòu)成單詞標(biāo)識符。但這種線性掃描則不能用于識別遞歸定義的語法成分,比如就不能用此辦法去匹配表達(dá)式中的括號。
目前,已存在許多語法分析的方法。但就產(chǎn)生語法樹的方向而言,可大致把他們分為自底向上和自頂向下兩大類。
3)中間代碼生成:
在進(jìn)行了上述的語法分析和語義分析階段的工作之后,有的編譯程序?qū)⒃闯绦蜃兂梢环N內(nèi)部表示形式,這種內(nèi)部表示形式叫做中間語言或中間代碼。所謂“中間代碼”是一種結(jié)構(gòu)簡單、含義明確的記號系統(tǒng)可以設(shè)計為多種多樣的形式,重要的設(shè)計原則為兩點(diǎn):一是容易生成;二是容易將它翻譯成目標(biāo)代碼。很多編譯程序采用了一種近似‘三地址指令’的“四元式”中間代碼,這種四元式的形式為:(運(yùn)算符,運(yùn)算對象1,運(yùn)算對象2,結(jié)果);
4).目標(biāo)代碼生成:
這一階段的任務(wù)是把中間代碼變換成特定機(jī)器上的絕對指令代碼或可重定位的指令或匯編指令代碼。這是編譯的最后階段,它的工作與硬件系統(tǒng)結(jié)構(gòu)和指令含義有關(guān),這個階段的工作很復(fù)雜,涉及到硬件系統(tǒng)功能部件的應(yīng)用、機(jī)器指令的選擇、各種數(shù)據(jù)類型變量的存儲空間分配以及寄存器和后援寄存器的調(diào)度等。
此外,本程序不涉及語義分析,代碼優(yōu)化等代碼優(yōu)化階段。
本次課程設(shè)計設(shè)計出的小型編譯器,適用范圍比較小,局限性較高,綜合度不算強(qiáng)。語言不是很嚴(yán)謹(jǐn),有待改進(jìn)。
四、小型編譯器主要功能模塊與實(shí)現(xiàn)
第一部分:語法分析程序;
(1).功能介紹
輸入LL(1)文法的字符串,LL(1)程序可以分析其匹配過程。輸入一個字符串,算符優(yōu)先程序可以分析其規(guī)約移進(jìn)的過程。
(2).相關(guān)理論
語法分析對輸入串的處理(進(jìn)棧與出棧,歸約和接受)是獨(dú)立于語法分析之外單獨(dú)的一部分,但是其只能分析有限的輸入串,無法完全任意識別。 相關(guān)理論
將表達(dá)式文法的預(yù)測分析表用二維數(shù)組儲存,然后當(dāng)分析符號串依次掃描符號串中的字符,進(jìn)行匹配輸出即可。
(3)程序流程圖
LL(1)模擬程序?qū)崿F(xiàn)流程:
【編譯原理語法分析上機(jī)實(shí)驗(yàn)讀書工程匯報】相關(guān)文章:
編譯原理對職業(yè)生涯有怎樣的幫助?07-10
上機(jī)實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)報告要求06-30
計算機(jī)專業(yè)是否需要開設(shè)編譯原理課程07-03
計算機(jī)上機(jī)實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)報告要求07-03
C語言上機(jī)實(shí)驗(yàn)心得(通用10篇)10-28
電路原理實(shí)驗(yàn)的指導(dǎo)書07-02