freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

(黑龍江大學(xué))編譯原理讀書工程推薦閱讀(已修改)

2025-11-05 00:20 本頁面
 

【正文】 第一篇:(黑龍江大學(xué))編譯原理讀書工程黑龍江大學(xué)“編譯原理課程設(shè)計(jì)”讀書報(bào)告學(xué)院 年級 專業(yè) 學(xué)號 姓名 報(bào)告日期 成績計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 2011級計(jì)算機(jī)科學(xué)技術(shù)專業(yè) 20114872 李軍 黑龍江大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院一、開發(fā)環(huán)境簡介“編譯原理”課程是計(jì)算機(jī)專業(yè)中一門重要的專業(yè)理論課,是一門理論性和實(shí)踐性都很強(qiáng)的課程。為配合《編譯原理》課程的教學(xué),培養(yǎng)學(xué)生的實(shí)際工作能力,加深對課堂教學(xué)內(nèi)容的理解,通過設(shè)計(jì)一個(gè)小型編譯器,更深刻地領(lǐng)會其基本概念、基本工作原理和實(shí)現(xiàn)方法,從而具有初步開發(fā)系統(tǒng)軟件和應(yīng)用軟件的實(shí)際能力,特開設(shè)此課程設(shè)計(jì)。通過小型編譯器的設(shè)計(jì)與實(shí)現(xiàn),使學(xué)生系統(tǒng)地掌握編譯程序的總體結(jié)構(gòu)以及詞法分析程序、語法分析程序、語義分析程序、代碼生成程序;掌握結(jié)構(gòu)化設(shè)計(jì)方法;了解大型軟件的設(shè)計(jì)技術(shù)。開發(fā)環(huán)境:visual c++ 開發(fā)語言:c語言 開發(fā)人:李軍指導(dǎo)教師:付立平老師二、基本理論闡述、當(dāng)前理論或?qū)嵺`應(yīng)用現(xiàn)狀編譯器: 高級計(jì)算機(jī)語言便于人編寫,閱讀,維護(hù)。低階機(jī)器語言是計(jì)算機(jī)能直接解讀、運(yùn)行的。編譯器將源程序(Source program)作為輸入,翻譯產(chǎn)生使用目標(biāo)語言(Target language)的等價(jià)程序。源代碼一般為高級語言(Highlevel language),如Pascal、C、C++、C、Java等,而目標(biāo)語言則是匯編語言或目標(biāo)機(jī)器的目標(biāo)代碼(Object code),有時(shí)也稱作機(jī)器代碼(Machine code)。工作原理: 編譯是從源代碼(通常為高級語言)到能直接被計(jì)算機(jī)或虛擬機(jī)執(zhí)行的目標(biāo)代碼(通常為低級語言或機(jī)器語言)的翻譯過程。然而,也存在從低級語言到高級語言的編譯器,這類編譯器中用來從由高級語言生成的低級語言代碼重新生成高級語言代碼的又被叫做反編譯器。也有從一種高級語言生成另一種高級語言的編譯器,或者生成一種需要進(jìn)一步處理的的中間代碼的編譯器(又叫級聯(lián))。典型的編譯器輸出是由包含入口點(diǎn)的名字和地址,以及外部調(diào)用(到不在這個(gè)目標(biāo)文件中的函數(shù)調(diào)用)的機(jī)器代碼所組成的目標(biāo)文件。一組目標(biāo)文件,不必是同一編譯器產(chǎn)生,但使用的編譯器必需采用同樣的輸出格式,可以鏈接在一起并生成可以由用戶直接執(zhí)行的EXE, 所以我們電腦上的文件都是經(jīng)過編譯后的文件。高級語言程序處理過程:三、小型編譯器系統(tǒng)架構(gòu),它實(shí)現(xiàn)了一個(gè)庫,在這個(gè)庫上,可以很容易的實(shí)現(xiàn)不同的編譯相關(guān)的程序,當(dāng)然,。構(gòu)造識別符號串的自動(dòng)機(jī)、詞法分析程序的構(gòu)造、語法分析程序的構(gòu)造、中間語言的生成程序、編譯程序的代碼生成。四、小型編譯器主要功能模塊與實(shí)現(xiàn)(1)功能介紹 用戶提供源代碼,使用編譯器進(jìn)行編譯,先用詞法分析程序構(gòu)造出符號表,然后利用語法分析程序分析橘子的語法,接著根據(jù)文法分析程序分法,在語法制導(dǎo)翻譯和中間代碼生成中,采用逆波蘭式生成四元式再轉(zhuǎn)化為匯編代碼。詞法分析:定義:詞法分析器的功能輸入源程序,按照構(gòu)詞規(guī)則分解成一系列單詞符號。單詞是語言中具有獨(dú)立意義的最小單位,包括關(guān)鍵字、標(biāo)識符、運(yùn)算符、界符和常量等(1)關(guān)鍵字 是由程序語言定義的具有固定意義的標(biāo)識符。例如,Pascal 中的begin,end,if,while都是保留字。這些字通常不用作一般標(biāo)識符。(2)標(biāo)識符 用來表示各種名字,如變量名,數(shù)組名,過程名等等。(3)常數(shù) 常數(shù)的類型一般有整型、實(shí)型、布爾型、文字型等。(4)運(yùn)算符 如+、*、/等等。(5)界符 如逗號、分號、括號、等等。輸出:詞法分析器所輸出單詞符號常常表示成如下的二元式:(單詞種別,單詞符號的屬性值)單詞種別通常用整數(shù)編碼。標(biāo)識符一般統(tǒng)歸為一種。常數(shù)則宜按類型(整、實(shí)、布爾等)分種。關(guān)鍵字可將其全體視為一種。運(yùn)算符可采用一符一種的方法。界符一般用一符一種的方法。對于每個(gè)單詞符號,除了給出了種別編碼之外,還應(yīng)給出有關(guān)單詞符號的屬性信息。單詞符號的屬性是指單詞符號的特性或特征。示例:比如如下的代碼段: while(i=j)i經(jīng)詞法分析器處理后,它將被轉(zhuǎn)為如下的單詞符號序列: =, _ 詞法分析分析器作為一個(gè)獨(dú)立子程序詞法分析是編譯過程中的一個(gè)階段,在語法分析前進(jìn)行。詞法分析作為一遍,可以簡化設(shè)計(jì),改進(jìn)編譯效率,增加編譯系統(tǒng)的可移植性。也可以和語法分析結(jié)合在一起作為一遍,由語法分析程序調(diào)用詞法分析程序來獲得當(dāng)前單詞供語法分析使用。語法分析:對任何輸入串w試圖從文法的開始符號出發(fā),按與最左推導(dǎo)對應(yīng)的順序,構(gòu)造w的語法分析樹如果構(gòu)造成功,則w為相應(yīng)文法的一個(gè)句子;否則w就不是文法句子文法分析:(3)算法描述 ①詞法分析:根據(jù)輸入的句子從頭開始掃描,獨(dú)到一個(gè)字符后,判斷它的類型,并更改相應(yīng)的狀態(tài),下一次讀入時(shí),根據(jù)當(dāng)前的狀態(tài)和輸入的字符的類型進(jìn)行狀態(tài)的轉(zhuǎn)換和對次的添加。狀態(tài)機(jī)在一定程度上反映了此法的一些規(guī)則,如不能一數(shù)字開頭命名變量。全局變量:ch字符變量:存放當(dāng)前讀進(jìn)的源程序字符 token字符數(shù)組:存放構(gòu)成單詞符號的字符串 調(diào)用函數(shù)getch()讀字符函數(shù):每調(diào)用一次從輸入緩沖區(qū)中讀進(jìn)源程序的下一個(gè)字符放在ch中,并把讀字符指針指向下一個(gè)字符getbc()讀空白字符:每次調(diào)用時(shí),檢查ch中的字符是否為空白字符;若是空白字符,則反復(fù)調(diào)用getbc(),直至ch中進(jìn)入一個(gè)非空白字符為止 concat()字符串連接函數(shù):把當(dāng)前ch中的字符與token中的字符串連接。letter(ch)字母字符判定函數(shù):判定 ch 中的字符是否為字母,并返回true 或 false。degit(ch)數(shù)字字符判定函數(shù):判定 ch 中的字符是否為數(shù)字,返回true 或 false。reserve()關(guān)鍵字判斷函數(shù):對token中的字符串查關(guān)鍵字表;若它是一個(gè)關(guān)鍵字, 則回送它的編碼;否則,回送標(biāo)識符的種別碼。語法分析:算符優(yōu)先文法的描述: 只規(guī)定算符之間的優(yōu)先關(guān)系,也就是說只考慮終結(jié)符之間的優(yōu)先關(guān)系。由于算富有先分析不考慮非終結(jié)符之間的優(yōu)先關(guān)系,在規(guī)約過程中只要找到最左素短語就可以規(guī)約。如給定一個(gè)文法G[S]:SE EE+T ET TT*F TF FP/F FP P(E)Pi利用算符優(yōu)先文法分析過程處理如下:1)計(jì)算給定文法中任意兩個(gè)終結(jié)符對(a,b)之間的優(yōu)先關(guān)系,首先計(jì)算兩個(gè)集合FIRSTVT(B)={b|Bb?或BCb?} LASTVT(B)={a|B?a或B?aC}語法制導(dǎo)翻譯和中間代碼生成: 定義語義函數(shù)和語義變量 語義函數(shù)emit 格式:emit(T=arg1 OP arg2)功能:生成一個(gè)三地址語句,并送到輸出文件中 語義函數(shù)newtemp 格式:newtemp()功能:產(chǎn)生一個(gè)新的臨時(shí)變量名字,如TT2等,并回送新的臨時(shí)變量名的整數(shù)碼注意:對臨時(shí)變量有兩種不同的處理方法(1)送到符號表(2)不進(jìn)符號表,臨時(shí)變量單詞值部分用整數(shù)碼表示 語義過程Lookup 格式:Lookup()功能:。如在,則返回其指針;否則,返回NULL 語義變量: 存放非終結(jié)符E值的變量名在符號表中的入口地址或臨時(shí)變量名的整數(shù)碼(4)程序流程圖 詞法分析:語法分析: ‘’’S’入棧,當(dāng)前終結(jié)符送a上托棧頂符號放入X若產(chǎn)生式為Xx1x2x3..xn,按逆序入棧YNX inVT?YYX=a?讀入下一符號M[X,a]是產(chǎn)生式嗎NX=’’?YN出錯(cuò)出錯(cuò)X=a?Y結(jié)束預(yù)測分析程序框圖文法分析:語法制導(dǎo)翻譯和中間代碼生成: 開始讀入字符輸入表達(dá)式進(jìn)行掃描分詞判斷是字母還是數(shù)字還是運(yùn)算符判斷語句是否合法運(yùn)算符,判斷運(yùn)算符的種類若為雙目運(yùn)算符則入符號棧,單目則出棧,修改狀態(tài)位,若為(直接入棧,為)則一直出棧直到(為止根據(jù)變量在符號表中的位置來判斷它的屬性和值如果當(dāng)前字符為 09的數(shù)字,則將其添加到結(jié)果(后綴表達(dá)式)串中。再次掃描輸入串如果當(dāng)前我字符為 +,,*,/中的任何一個(gè),如果當(dāng)前字符的優(yōu)先級高于棧頂運(yùn)算符的優(yōu)先級,則直接 將其壓入棧中。當(dāng)前字符的優(yōu)先級小于等于棧頂運(yùn)算符的優(yōu)先級,則將棧中所有優(yōu)先級大于等于 當(dāng)前運(yùn)算符的運(yùn)算符彈棧,并添加到結(jié)果串中,(5)測試用例與實(shí)驗(yàn)結(jié)果 020311 0405五、讀書工程心得總結(jié)這是我這學(xué)期收獲最大的一門課,在付老師的帶領(lǐng)下,我完整地了解了編譯器的整個(gè)流程和架構(gòu)!通過老師的幫助和自身的努力,以上便是我對這門課的答卷,我深知,自己能力有限,不可能達(dá)到完美!但至少我知道,我努力的方向,并且為此不懈奮斗者!希望這段程序,能成為我大學(xué)最美好的回憶!六、參考文獻(xiàn),(第二版)[M].清華大學(xué)出版社,2012,11: 著,馮博琴 馮嵐等譯。編譯原理及實(shí)踐[M].機(jī)械工業(yè)出版社。2009,04.第二篇:《編譯原理課程設(shè)計(jì)》讀書工程方案“編譯原理課程設(shè)計(jì)”讀書工程環(huán)節(jié)方案一、目的與要求“編譯原理”是計(jì)算機(jī)科學(xué)技術(shù)專業(yè)與軟件工程專業(yè)的必修課程,是一門理論性和實(shí)踐性都很強(qiáng)的課程。為了配合《編譯原理》課程的教學(xué)更全面的理解理論知識,提高實(shí)踐能力,計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)以及軟件工程專業(yè)開設(shè)了實(shí)踐類必修課程“編譯原理課程設(shè)計(jì)”。通過設(shè)計(jì)一個(gè)小型編譯器,更深刻地領(lǐng)會編譯程序的基本概念、基本原理和實(shí)現(xiàn)方法,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1