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

正文內容

編譯原理論文(文件)

2024-11-14 22:32 上一頁面

下一頁面
 

【正文】 機專業(yè)的一門重要課程,正如教材第一章的引論所述,“編譯程序是現代計算機系統(tǒng)的基本組成部分之一”。此外,這門課程的課時被安排得很少,一周只有一次,這樣很不利于我們對這門重要課程的理解和掌握。對計算機語言世界的知識積累,像滾雪球一樣越滾越大。通過對相關編譯問題的具體分析,讓我體會最深的是一種“自動計算”的思想,同時完成編譯試驗后,更是感到了一種“自動計算”的快樂。我們設計的系統(tǒng)在完成了實驗基本要求的前提下,進行了一部分的擴展。以下是我們的主要代碼:進制的識別:結果展示:二、語法分析子系統(tǒng)根據選擇的語法分析方法進行描述我們使用了遞歸子程序發(fā),并且對原有的產生式進行了改寫,改寫后的結果如下: P→LP1|L L→SS→id=E|{P}|if C then S | if C then S1else S2 | while C do S1 C→E1C’C’→E2|E→int8E’| int10E’| int16E’| idE’|T E’→+T|T||+TE’|TE’T→int8T’| int10T’| int16T’| idT’|F T’→*F|/F|*FT’|/FT’F→(E)|int8|int10|int16|id簡化的語法圖: S的語法圖:C的語法圖:E的語法圖:T的語法圖:F的語法圖:流程圖:語法分析子系統(tǒng)的主要數據結構與算法我們采用了自動生成技術,同樣在這里也是展示主要的核心功能代碼,全部的代碼展示在壓縮包中:我們在設計時,實現了產生式對應的字符串同時標識產生式定義的int值 輔助程序:生成語法樹的程序:: 三、三地址碼生成器算法的基本思想:我們增加了聲明變量類型、類型賦值判定和聲明的變量被引用時作用域的判斷。有時候我們上課聽講,課下復習寫作業(yè)的時候,其實看似掌握了所學內容,但實際上并沒有親身體會的操作很難讓我們深刻的理解其中的相關意義。影響詞法分析的效率的主要因素是各個狀態(tài)的分支如何規(guī)劃。五、源程序詞法分析器: 輸入結果:輸出結果:語義分析結果:輸入:第二組數據的輸入:輸出:三地址碼的輸入:第二組數據的輸入:輸出:第五篇:編譯原理課程設計課 程 設 計 報 告設計題目:一個簡單文法的編譯器前端的設計與實現班級: 計算機1206 組長學號:201239 組長姓名:閆智宣 指導教師:李曉華 設計時間:2014年12月[在此處鍵入]設計分工組長學號及姓名: 20123974閆智宣分工:語法分析,四元式生成,目標代碼優(yōu)化及生成 組員1學號及姓名:20123977廖峭 分工:詞法分析,錯誤處理 組員2學號及姓名:20123959郭天龍分工:符號表生成,語義動作插入,操作界面[在此處鍵入]摘要編譯原理課程設計是通過C語言編譯器相關子系統(tǒng)的設計,進一步加深對編譯器構造的理解;第一部分詞法分析,設計各單詞的狀態(tài)轉換圖,并為不同的單詞設計種別碼,制作掃描器識別一個個單詞,返回值為識別碼的序號,返回Token序列。若語法正確,則用語法制導翻譯法進行語義翻譯;生成并打印出語法樹;若語法錯誤,要求指出出錯性質和出錯位置(行號)。[在此處鍵入]編譯器是將C語言翻譯為匯編語言代碼的計算機程序。 要求:(1)設計詞法分析器設計各單詞的狀態(tài)轉換圖,并為不同的單詞設計種別碼。(2)語法分析要求用學習過的自底向上或自頂向下的分析方法等,實現對表達式、各種說明語句、控制語句進行語法分析。工程分為幾個文件:,Four_Yuan,cs,)。在處理過程中,Token類的對象作為Lexical類的一個成員變量,配合Grammer類進行語法分析。它們的關系是這樣的:Grammer類的一個成員變量temp首先對源程序刪除注釋,然后進行詞法分析獲取所有Token,并將獲取的Token存儲在Token對象的tokenList(List類型)中。詞法分析階段的代碼被封裝成一個類——Lexical,Token中主要是Lexical類的聲明代碼。⑴ 關鍵字表的初值。Token定義Token定義:Token類型(TokenType): 語法分析模塊語法分析是編譯過程的一個邏輯階段。 數據結構在此處鍵入] 四元式模塊四元式為中間代碼,編譯程序進行完語義分析后,先生成中間代碼作為過渡,此時中間代碼與目標代碼已經比較相似 數據結構[ 在此處鍵入]在語法分析中嵌入相應的語義動作,生成四元式 數據結構[[在此處鍵入] GEQ(+)()(*)(/)(+,i1,i2,t)PUSH(i)ASSI(=)(=,t,_,POP)LABER(i)(lb,_,_,i)GOTO(i)(gt,_,_,i)IF(if)(if,a,_,_)EL(el)(el,_,_,_)IE(ie)(ie,_,_,_)WH()(wh,_,_,_)DO()(do,a,_,_)WE(we)(we,_,_,_) 錯誤處理模塊 保存運行時發(fā)現的錯誤,儲存行號已經詳細信息并輸出。 目標代碼模塊目標代碼生成把優(yōu)化后的中間代碼變換成目標代碼,此處的目標代碼為匯編代碼,采用單寄存器生成目標代碼 數據結構[在此處鍵入]對于一個基本塊有如下流程圖W:操作符,B:第一操作數,C:第二操作數,R:寄存器網上找一段話抄上 [在此處鍵入]測試打開文件測試保存文件如果沒打開文件,直接敲代碼,點保存時會彈出另存為窗口[在此處鍵入]測試錯誤檢測,程序缺少main函數的類型,錯誤列表中顯示第一行函數缺少錯誤類型。[在此處鍵入]測試優(yōu)化,輸入課件中的代碼,結果與課件一樣。理論知識的了解224。自己著手寫詞法分析的時候還不清楚詞法分析的任務內容,還不知道詞法分析的結果是什么,詞法分析出錯的情況和類型有哪些,也總是將詞法分析和語法分析混在一起,不明白哪些錯誤在詞法分析中報,哪些錯誤在語法分析中判斷,后來經過查書、網上資料、請教同學等途徑逐步清晰了詞法分析的工作內容是從源代碼文件中獲取出Token,供語法分析使用。這只是詞法分析的原始代碼,在之后還進行了兩次徹底的改動。首先自己對遞歸向下分析法進行了學習,將書上的幾個遞歸向下分析的偽代碼看過之后,自己對遞歸向下的分析方法的原理有了初步的認識,大概知道了根據文法怎么分析,但是對于如何編寫代碼卻還在此處鍵入]是難以下手,于是就對照TINY語言的文法看了幾遍書后面的TINY語言的遞歸向下分析的語法分析程序,這樣就基本知道了C語言的語法分析程序怎么寫。通過這次的編譯原理課程的學習和實踐,自己獲益良多。此外,對以前那些已掌握的知識有了溫習和動手鍛煉的機會。此外,對于文檔的編寫和美化自己也獲得了許多有用的經驗。由于以前編寫代碼都是使用JAVA語言,所以C/C++很多內容都忘記了,通過本次的實踐,自己又重新拾起了以前的知識。語法分析主要能根據遞歸向下的分析思想和C文法對詞法分析獲取的Token進行語法分析,能夠構造出語法樹,能夠判別語法分析過程中是否出錯以及出錯位置和錯誤類型。由于在編寫代碼的過程中需要確定分析是否正確或選擇多個文法中的某一個文法進行分析,有時必須探測需要的或下一個Token的類型,在這種情況下需要求First集合,在推導中若存在empty,又需要求Follow集合,所以這樣又需要我了解First集合和Follow集合,自己在程序中也根據求出的First集合和Follow集合進行判斷,以確定程序的走向。再后來寫報告的時候,發(fā)現分析出Token的那個DFA并不是最簡的,有很多多余的狀態(tài),完全可以用一個flag標志來標識,從而簡化代碼結構,于是又重寫了一次詞法分析函數scan()的代碼,將狀態(tài)縮減為5個,且不再用15來表示,而是像書上那樣分別取了名字(START、INNUM、INID、INDBSYM、DONE),同時為了簡化代碼將輸出Token到文件的部分從scan()中剝離開來,而在Lexical類中加了一個printToken()的函數
點擊復制文檔內容
語文相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1