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

正文內(nèi)容

編譯課設(shè)報告--pl0編譯器的中間代碼生成_-全文預(yù)覽

2025-03-04 09:14 上一頁面

下一頁面
  

【正文】 代碼,由于采用語法制導(dǎo)翻譯,要將代碼生成函數(shù)加到語法分析程序中的正確位置,以及符號表的填充,還有層次等數(shù)值的改變,對目標機運行機制的理解,都是課設(shè)里的極大難點,如果指令生成錯誤,造成內(nèi)存分 配不當(dāng)?shù)儒e誤,程序執(zhí)行就會失敗。其中,我們使用了 JAVA 語言的控件設(shè)計系統(tǒng)界面,將生成的中間代碼、符號表和錯誤分析部分很好的顯示在系統(tǒng)主界面上,讓用戶使用起來更方便。首先對編譯有了進一步的深刻理解,通過對遞歸下降法應(yīng)用,讓我對數(shù)據(jù)結(jié)構(gòu)的設(shè)計思想有了很深的認識,同時我們對詞法分析、語法分析的原理和過程都有了進一步的鞏固,使用 JAVA 平臺開發(fā)也讓我們的編程水平也起到了鍛煉的作用,鞏固了平時所學(xué)的知識,真正做到了學(xué)以致用。讓我們值得慶幸的是,王老師講課的方式讓我們比較感興趣,在思路上不會莫名其妙的走神,感覺一學(xué)期下來,確實是每節(jié)課都聽得挺認真的,因此還算是比較順利的學(xué)習(xí)完了編譯這門難課。對于功能的實現(xiàn)過程,我們認真閱讀了課本教材的第二章,才明確了 PL/0 編譯器的實現(xiàn)的具體步驟和設(shè)計算法。 總之 ,這次課程設(shè)計加深了我對編譯過程的理解,不管是整體還是細節(jié)都有了更深入的體會,有些章節(jié)學(xué)的比較淺的,在這次課設(shè)中也強化了知識,如活動記錄、符號表等。在這次實驗中,也只是用高級語言編寫了PL/0 簡單語言的編譯器,在完成實驗的過程中,我對編譯原理有了 進一步的了解,更提高了動手編程能力,是一次經(jīng)驗和知識的積累。 但是,我深知編譯原理的博大精深。因此我們做的小編譯器一定要給出出錯位置和出錯原因,這樣,編程過程中就可以節(jié)省很多時間。就這樣,在老師的帶領(lǐng)和悉心教導(dǎo)下,我們漸漸找到了學(xué)習(xí)編譯原理的規(guī)律,也找到了學(xué)習(xí)方法,通過自己一點一點的摸索中一路走了過來,順利地完成了這門課的理論學(xué)習(xí)環(huán)節(jié)。 學(xué)習(xí)編譯技術(shù)課程的體會和對本門課程的評價 上編譯原理這門課前就聽說這是一門比較難懂難學(xué)的課,老師課上也強調(diào)過一定要認真聽講,不然自己回去看書是很難看明白的。但是之后我們會盡量完善該編譯器的這些功能。在仔細研究過給出的關(guān)于 PL0 編譯器的 PPT 以及一些參考代碼后,終于有了大致的了解。同時,課程設(shè)計過程中對語法分析時,需要很好的數(shù)據(jù)結(jié)構(gòu)的設(shè)計,也讓我們認識到了數(shù)據(jù)結(jié)構(gòu)的重要性。 圖 52 錯誤程序測試結(jié)果 結(jié)論和展望 結(jié)論 本次課設(shè)我們做的是 PL/0 語言編譯器的中間代碼生成部分,對于做一個完整的編譯器來說,這也算得上是比較重要的一部分已經(jīng)完成了,接下來給出目標代碼即可。 while m=n do begin call pr。 read(n。 i:=i+22345 end。 while im do begin x:=m。 procedure mod。 輸入如程序 52 所示。 m:=m+2 end。 while n=2 do begin write(2)。 if f=true then begin write(m)。 y:=i。 x:=xx/y*y。 var x,y,m,n,pf。 5 測試方法和測試結(jié)果 測試用例 1 測試目的: 通過 文件(本身詞法語法是正確的)來進行檢測,在沒有詞法語法的前提下 是否能夠 正確的分析 PL/0 程序,并且生成正確的中間代碼,符號表的內(nèi)容是否正確。 // 第三個參數(shù):操作數(shù) 2 String result = 。 int t。// 層次 int adr。// 該詞所在的行 } 符號類,存放于符號表中 class nameClass{ String name = null。 開發(fā)環(huán)境 在 JAVA 開發(fā)環(huán)境下實現(xiàn) PL/0 中間代碼(四元式)生成編譯器。 下表為一些主要函數(shù)方法的功能及其組織結(jié)構(gòu)。并確定其屬 性(如保留字、標識符、運算符、界限符和常量等)。 getsym 類為編譯器 的詞法分析類和 block 類為編譯器的語法分析類,為整個程序的核心所在。 過程說明部分 ::= 過程首部 分程序 {。 PL/0 文法的描述 在計算機科學(xué)中,文法是編譯原理的基礎(chǔ),是描述一門程序設(shè)計語言和實現(xiàn)其編譯器的方法。 其編譯過程采用一趟掃描方式,以語法分析類為核心,詞法分析和代碼生成類都作為一個獨立的類,當(dāng)語法分析需要讀單詞時就調(diào)用詞法分析程序,而當(dāng)語法分析正確需要生成相應(yīng)的目標代碼時,則調(diào)用代碼生成程序。本程序中,通過出錯處理子程序,也進行了語法的錯誤的記錄,并且輸出了出錯的行號和出錯原因。 本 次課設(shè)開發(fā)平臺即為 JAVA。 課程設(shè)計的要求 要求用遞歸子程序法 /或預(yù)測分析法實現(xiàn)對表達式、各種說明語句、控制語句進行語法分析。設(shè)計的題目要求具有一定的規(guī)模,應(yīng)涵蓋本課程內(nèi)容和實際應(yīng)用相關(guān)的主要技術(shù),同時 使大家將理論與實際應(yīng)用結(jié)合起來,受到軟件設(shè) 計等開發(fā)過程的全面訓(xùn)練,從而提高軟件開發(fā)的能力。 2 系統(tǒng)描述 PL/0 的編譯程序和目標程序的解釋執(zhí)行程序都是用 JAVA 語言書寫的,因此 PL/0 語言 可在配備 J
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1