欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      編譯原理實(shí)驗(yàn)報(bào)告[合集]

      時(shí)間:2019-05-14 21:00:53下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《編譯原理實(shí)驗(yàn)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《編譯原理實(shí)驗(yàn)報(bào)告》。

      第一篇:編譯原理實(shí)驗(yàn)報(bào)告

      編譯原理實(shí)驗(yàn)報(bào)告

      報(bào)告完成日期 2018.5.30

      一. 組內(nèi)分工與貢獻(xiàn)介紹

      二. 系統(tǒng)功能概述;

      我們使用了自動(dòng)生成系統(tǒng)來完成我們的實(shí)驗(yàn)內(nèi)容。我們?cè)O(shè)計(jì)的系統(tǒng)在完成了實(shí)驗(yàn)基本要求的前提下,進(jìn)行了一部分的擴(kuò)展。增加了聲明變量類型、類型賦值判定和聲明的變量被引用時(shí)作用域的判斷。從而使得我們的實(shí)驗(yàn)結(jié)果呈現(xiàn)的更加清晰和易懂。

      三. 分系統(tǒng)報(bào)告;

      一、詞法分析子系統(tǒng)

      詞法的正規(guī)式:

      標(biāo)識(shí)符

      <字母>(<字母>|<數(shù)字字符>)* 十進(jìn)制整數(shù)

      0 |(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)* 八進(jìn)制整數(shù) 0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* 十六進(jìn)制整數(shù) 0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)* 運(yùn)算符和分隔符 +| * | / | > | < | = |(|)| <=|>=|==; 對(duì)于標(biāo)識(shí)符和關(guān)鍵字: A5—〉 B5C5 B5—〉a | b |??| y | z C5—〉(a | b |??| y | z |0|1|2|3|4|5|6|7|8|9)C5|ε 綜上正規(guī)文法為: S—〉I1|I2|I3|A4|A5 I1—〉0|A1 A1—〉B1C1|ε C1—〉E1D1|ε D1—〉E1C1|ε

      E1—〉0|1|2|3|4|5|6|7|8|9 B1—〉1|2|3|4|5|6|7|8|9 I2—〉0A2 A2—〉0|B2 B2—〉C2D2 D2—〉F2E2|ε E2—〉F2D2|ε

      C2—〉1|2|3|4|5|6|7 F2—〉0|1|2|3|4|5|6|7 I3—〉0xA3 A3—〉B3C3 B3—〉0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f C3—〉(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)|C3|ε

      A4—〉+ |-| * | / | > | < | = |(|)| <=|>=|==; A5—〉 B5C5 B5—〉a | b |??| y | z C5—〉(a | b |??| y | z |0|1|2|3|4|5|6|7|8|9)C5|ε

      狀態(tài)圖

      流程圖:

      詞法分析程序的主要數(shù)據(jù)結(jié)構(gòu)與算法

      考慮到報(bào)告的整潔性和整體觀感,此處我們僅展示主要的程序代碼和算法,具體的全部代碼將在整體的壓縮包中一并呈現(xiàn)

      另外我們考慮到后續(xù)實(shí)驗(yàn)中,如果在bison語法樹生成的時(shí)候推不出目標(biāo)的產(chǎn)生式時(shí),我們?cè)O(shè)計(jì)了報(bào)錯(cuò)提示,在這個(gè)詞的位置出現(xiàn)錯(cuò)誤提示,將記錄切割出來的詞在code.txt中保存,并記錄他們的位置。

      以下是我們的主要代碼:

      進(jìn)制的識(shí)別:

      結(jié)果展示:

      二、語法分析子系統(tǒng)

      根據(jù)選擇的語法分析方法進(jìn)行描述

      我們使用了遞歸子程序發(fā),并且對(duì)原有的產(chǎn)生式進(jìn)行了改寫,改寫后的結(jié)果如下: P→LP1|L L→S

      S→id=E|{P}|if C then S | if C then S

      1else 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)的主要數(shù)據(jù)結(jié)構(gòu)與算法

      我們采用了自動(dòng)生成技術(shù),同樣在這里也是展示主要的核心功能代碼,全部的代碼展示在壓縮包中:

      我們?cè)谠O(shè)計(jì)時(shí),實(shí)現(xiàn)了產(chǎn)生式對(duì)應(yīng)的字符串同時(shí)標(biāo)識(shí)產(chǎn)生式定義的int值 輔助程序:

      生成語法樹的程序:

      1.樹節(jié)點(diǎn):

      2.創(chuàng)建新節(jié)點(diǎn)

      3.創(chuàng)建實(shí)數(shù)類型新節(jié)點(diǎn)

      4.創(chuàng)建標(biāo)識(shí)符類型新節(jié)點(diǎn)

      5.輸出語法樹 三、三地址碼生成器

      算法的基本思想:

      我們?cè)黾恿寺暶髯兞款愋?、類型賦值判定和聲明的變量被引用時(shí)作用域的判斷。從而使得我們的實(shí)驗(yàn)結(jié)果呈現(xiàn)的更加清晰和易懂。

      在報(bào)錯(cuò)的時(shí)候,我們會(huì)呈現(xiàn)類型、作用域和賦值三種的問題的報(bào)錯(cuò)信息。

      流程圖:

      算法展示:

      四、實(shí)驗(yàn)體會(huì)

      這次實(shí)驗(yàn)其實(shí)總的來說是讓我們更加清晰的理解到了我們所學(xué)的內(nèi)容。有時(shí)候我們上課聽講,課下復(fù)習(xí)寫作業(yè)的時(shí)候,其實(shí)看似掌握了所學(xué)內(nèi)容,但實(shí)際上并沒有親身體會(huì)的操作很難讓我們深刻的理解其中的相關(guān)意義。通過這次實(shí)驗(yàn),我們能夠從根源處了解到了我們所學(xué)的內(nèi)容,并且基于我們理解之后的輸出。比如詞法分析不能采用空格來區(qū)分單詞,因?yàn)榇嬖诩訙p乘除等運(yùn)算符和分隔符,使用空格來區(qū)分可能會(huì)造成錯(cuò)誤的分解。又比如我們?cè)僭诔绦蛟O(shè)計(jì)中,常常體會(huì)到效率的重要性。影響詞法分析的效率的主要因素是各個(gè)狀態(tài)的分支如何規(guī)劃。如果每個(gè)進(jìn)來的單詞都能在最短的時(shí)間和最少的匹配次數(shù)內(nèi)找到其入口,則效率將得到很大程度上的提高。所以由此我們產(chǎn)生了聲明變量類型、賦值和作用域的想法,將其放在最后來進(jìn)行判斷,這樣可以提高整體的執(zhí)行效率。

      另外,這次小組成員彼此不在一個(gè)班級(jí),這樣從某一方面來說,也加強(qiáng)了我們互相快速熟識(shí)并團(tuán)結(jié)協(xié)作的能力,有了這種體驗(yàn),我想我們?cè)诮窈蟮纳钪校鎸?duì)這種情況的時(shí)候,將會(huì)變得更加有經(jīng)驗(yàn)。

      五、源程序

      詞法分析器: 輸入結(jié)果:

      輸出結(jié)果:

      語義分析結(jié)果:

      輸入:

      第二組數(shù)據(jù)的輸入:

      輸出:

      三地址碼的輸入:

      第二組數(shù)據(jù)的輸入:

      輸出:

      第二篇:編譯原理語法分析實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)2:語法分析

      1.實(shí)驗(yàn)題目和要求

      題目:語法分析程序的設(shè)計(jì)與實(shí)現(xiàn)。

      實(shí)驗(yàn)內(nèi)容:編寫語法分析程序,實(shí)現(xiàn)對(duì)算術(shù)表達(dá)式的語法分析。要求所分析算術(shù)表達(dá)式由如下的文法產(chǎn)生。

      E?E?T|E?T|TT?T*F|T/F|F F?id|(E)|num實(shí)驗(yàn)要求:在對(duì)輸入表達(dá)式進(jìn)行分析的過程中,輸出所采用的產(chǎn)生式。方法1:編寫遞歸調(diào)用程序?qū)崿F(xiàn)自頂向下的分析。方法2:編寫LL(1)語法分析程序,要求如下。

      (1)編程實(shí)現(xiàn)算法4.2,為給定文法自動(dòng)構(gòu)造預(yù)測分析表。(2)編程實(shí)現(xiàn)算法4.1,構(gòu)造LL(1)預(yù)測分析程序。

      方法3:編寫語法分析程序?qū)崿F(xiàn)自底向上的分析,要求如下。(1)構(gòu)造識(shí)別所有活前綴的DFA。(2)構(gòu)造LR分析表。

      (3)編程實(shí)現(xiàn)算法4.3,構(gòu)造LR分析程序。

      方法4:利用YACC自動(dòng)生成語法分析程序,調(diào)用LEX自動(dòng)生成的詞法分析程序。實(shí)現(xiàn)(采用方法1)

      1.1.步驟:

      1)對(duì)文法消除左遞歸

      E?TE'E'??TE'|?TE'|?T?FT'T'?*FT'|/FT'|?F?id|(E)|num

      2)畫出狀態(tài)轉(zhuǎn)換圖

      化簡得:

      3)源程序

      在程序中I表示id N表示num

      1.2.例子:

      a)例子1 輸入:I+(N*N)輸出:

      b)例子2 輸入:I-NN 輸出:

      第三篇:編譯原理--實(shí)驗(yàn)報(bào)告(小編推薦)

      吉林大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告

      計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)教學(xué)中心編制

      姓名,學(xué)號(hào):胡智超,53070108;陳玉娟,53070130;程明,53070109;張宇航,53070110

      2007 級(jí)1班 實(shí)驗(yàn)室:A209成績指導(dǎo)教師(簽字)(存檔)

      —————————————————————————————————————————————— ★ 實(shí)驗(yàn)課程名稱:

      ★ 實(shí)驗(yàn) 項(xiàng) 目:

      ★ 實(shí)驗(yàn) 儀 器:

      ★ 實(shí)驗(yàn) 要 求:

      ★ 實(shí)驗(yàn)步驟、分析設(shè)計(jì)與結(jié)果:

      第四篇:《編譯原理》課程(詞法分析)實(shí)驗(yàn)報(bào)告

      一.實(shí)驗(yàn)序號(hào):《編譯原理》第一次實(shí)驗(yàn)

      二.實(shí)驗(yàn)題目:詞法分析

      三.實(shí)驗(yàn)日期:2010.10

      四.實(shí)驗(yàn)環(huán)境(操作系統(tǒng),開發(fā)語言)

      操作系統(tǒng):Windows

      開發(fā)語言:C

      五.實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)要求)

      a)將標(biāo)識(shí)符的詞法改為“以大寫字母或小寫字母開頭,后面可以跟大寫字

      母或小寫字母或數(shù)字或下劃線”。

      b)將<條件>中的表示相等關(guān)系的單詞“=”改為“= =”

      c)將原來的無小數(shù)的數(shù)改為可以有小數(shù)的數(shù)

      六.實(shí)驗(yàn)步驟

      a)打開VC++,找到getsym()項(xiàng)目。

      int getsym()

      {...}

      在getsym()函數(shù)中設(shè)置斷點(diǎn),F(xiàn)10逐過程調(diào)試

      根據(jù)要求a修改為

      if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')

      往后面看,修改while(ch>='a' && ch<='z' || ch>='0' && ch<='9' ||ch>='A' && ch<='Z' || ch=='_');

      b)在檢測賦值符號(hào)的程序段中找到等號(hào) = 的判斷代碼,改變成為 = = 即

      可。

      c)在獲取整數(shù)數(shù)字的值的程序段后面添加判斷小數(shù)點(diǎn)的代碼。如果是,即

      讀取符號(hào)并且按照小數(shù)的要求將其縮小并且累加到總的符號(hào)串中。

      七.實(shí)驗(yàn)體會(huì)(包括收獲、心得體會(huì)、存在的問題及解決問題的方法、建議等)

      通過實(shí)驗(yàn),如果要修改代碼的話,首先應(yīng)該讀懂源碼,在修改之前了解到程序段的功能是什么,然后再在相應(yīng)的行進(jìn)行修改添加,再進(jìn)行合理的調(diào)試。如果問題太過困難可以查詢資料或與同學(xué)進(jìn)行討論

      八.實(shí)驗(yàn)結(jié)果(關(guān)鍵源程序)

      a)

      int getsym()

      {

      int i,j,k;

      while(ch==' '||ch==10||ch==9)/*忽略空格,換行和TAB*/{

      getchdo;

      }

      if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')/*名字或保留字以a..zA。Z開頭*/{

      k=0;

      do{

      if(k

      {

      a[k]=ch;

      k++;

      }

      getchdo;

      }while(ch>='a' && ch<='z' || ch>='0' && ch<='9' || ch>='A' && ch<='Z' || ch=='_');//

      if(ch>='0'&&ch<='9')/*檢測是否為數(shù)字,以0..9開頭*/{

      k=0;

      num=0;

      sym=number;

      do{

      //435

      num=10*num+ch-'0';

      k++;

      getchdo;

      }while(ch>='0' && ch<='9');

      if(ch=='.')

      {

      k++;

      sym=period;

      getchdo;

      sym=number;

      int div=10;

      do{num=num+(ch-'0')/div;

      k++;

      getchdo;

      div=div*10;

      }while(ch>='0'&&ch<='9');

      }

      b)

      else

      {

      if(ch=='>')//檢測大于或大于等于符號(hào){

      getchdo;

      if(ch=='=')//add by M

      {

      sym=geq;//構(gòu)成>=

      getchdo;

      }

      else

      {

      sym=gtr;//否則就是一個(gè)單獨(dú)的>號(hào)}

      }

      else

      {

      if(ch=='=')

      {

      getchdo;

      if(ch=='=')

      {

      sym=deq;

      getchdo;

      }

      else

      {

      sym=eql;

      }

      }

      c)else

      {if(ch == ’.’)

      {k=10;

      getchdo;

      do{num=num+(ch-'0')/k;

      k=k*10;

      getchdo;

      }while(ch>='0'&&ch<='9');}

      }

      第五篇:編譯原理 學(xué)習(xí)心得

      國際學(xué)院 0802 楊良燕 200819100227

      《編譯原理》課程學(xué)習(xí)心得

      《編譯原理》是計(jì)算機(jī)專業(yè)的一門重要課程,正如教材

      第一章的引論所述,“編譯程序是現(xiàn)代計(jì)算機(jī)系統(tǒng)的基本組成部分之一”?!耙粋€(gè)編譯程序就是一個(gè)語言翻譯程序,語言翻譯程序把一種語言(源語言)書寫的程序翻譯成另一種語言(目標(biāo)語言)的等價(jià)程序”。

      通過這一學(xué)期的學(xué)習(xí),我覺得編譯原理是一門理論性很強(qiáng)的課程,從文法和語言的概念到LL(1)文法和LR(0)文法的分析,幾乎都是對(duì)具體問題的抽象。因而,我們需要更多的時(shí)間來理解、掌握相關(guān)的知識(shí),當(dāng)然在這一過程中也存在很多問題,比如我們后期學(xué)習(xí)具體文法的分析方法時(shí),對(duì)于文法的概念不夠清晰,影響了上課的效率,知道老師再次給我們講解了文法等基礎(chǔ)的知識(shí)點(diǎn),我們才慢慢掌握后面所學(xué)的LL(1)文法等,也發(fā)現(xiàn)了知識(shí)點(diǎn)之間的關(guān)聯(lián)。此外,這門課程的課時(shí)被安排得很少,一周只有一次,這樣很不利于我們對(duì)這門重要課程的理解和掌握。但是我覺得我們很幸運(yùn),因?yàn)槔蠋熢谟邢薜恼n程中盡量將知識(shí)點(diǎn)以比較容易接受的方式給我們講解,教我們用簡單的方法理解記憶不同的知識(shí),對(duì)于我們提出的問題,無論課上或是課外,老師一直是不厭其煩,甚至利用課余時(shí)間為我們講解重要的難題。

      編譯原理這門課程不僅僅在于其本身的理論價(jià)值,更在于為我們解決問題提供的思維方式和方法。從LL(1)到LR(0),問題不斷被解決的同時(shí),又有一個(gè)個(gè)新的問題提了出來。對(duì)計(jì)算機(jī)語言世界的知識(shí)積累,像滾雪球一樣越滾越大。這個(gè)逐漸遞進(jìn),逐漸解決問題的過程對(duì)我來說是收獲很大的。整個(gè)過程好像踏著前人研究編譯理論的路線,不斷感覺他們遇到的問題,更重要的是他們解決問題的思路。編譯原理的課程帶給我的不只是如何去編譯程序這樣的理論知識(shí),相信更重要的是一種如何“自動(dòng)計(jì)算”的思路。通過對(duì)相關(guān)編譯問題的具體分析,讓我體會(huì)最深的是一種“自動(dòng)計(jì)算”的思想,同時(shí)完成編譯試驗(yàn)后,更是感到了一種“自動(dòng)計(jì)算”的快樂?!比欢颐靼鬃约弘m然對(duì)編譯有了一定的了解,我懂得了文法的分析,學(xué)會(huì)了構(gòu)造確定和非確定有限自動(dòng)機(jī),學(xué)會(huì)了LL(1)文法和LR(0)文法等,但是并沒有完全掌握,對(duì)于這些知識(shí)點(diǎn)的實(shí)質(zhì)性和其他方面,更是認(rèn)識(shí)不深。作為一名學(xué)習(xí)計(jì)算機(jī)科學(xué)與技術(shù)的學(xué)生,我明白編譯原理是軟件工程的基礎(chǔ),課程的結(jié)束并不意味著學(xué)習(xí)的結(jié)束,只有通過以后的學(xué)習(xí),才能更深入地了解編譯原理。

      下載編譯原理實(shí)驗(yàn)報(bào)告[合集]word格式文檔
      下載編譯原理實(shí)驗(yàn)報(bào)告[合集].doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        編譯原理課程設(shè)計(jì)

        課 程 設(shè) 計(jì) 報(bào) 告 設(shè)計(jì)題目:一個(gè)簡單文法的編譯器前端的設(shè)計(jì)與實(shí)現(xiàn) 班級(jí): 計(jì)算機(jī)1206 組長學(xué)號(hào):201239 組長姓名:閆智宣 指導(dǎo)教師:李曉華 設(shè)計(jì)時(shí)間:2014年12月 [在此處鍵入] 設(shè)......

        編譯原理教學(xué)大綱(范文模版)

        編譯原理教學(xué)大綱 一、課程的性質(zhì)、地位 本課程是計(jì)算機(jī)專業(yè)的重要專業(yè)課之一,是一門理論性和實(shí)踐性較強(qiáng)的課程。主要介紹程序設(shè)計(jì)語言編譯程序構(gòu)造的基本原理和基本實(shí)現(xiàn)方法......

        編譯原理論文

        編譯原理心得體會(huì) 編譯原理是計(jì)算機(jī)專業(yè)的一門重要專業(yè)課,旨在介紹編譯程序構(gòu)造的一般原理和基本方法,在計(jì)算機(jī)本科教學(xué)中占有十分重要的地位。 該課程理論性與實(shí)踐性都很強(qiáng),我......

        編譯原理課程設(shè)計(jì)報(bào)告

        武 漢 紡 織 大 學(xué) 編譯原理課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告學(xué)院:數(shù)學(xué)與計(jì)算機(jī) 專業(yè):計(jì)算機(jī) 姓名: 班級(jí): 學(xué)號(hào):1 編譯原理 編譯原理課設(shè)報(bào)告 一、 實(shí)驗(yàn)?zāi)康?加強(qiáng)對(duì)編譯程序的整體認(rèn)識(shí)和了解,鞏......

        編譯原理試題(2009-2010-1)

        《編譯原理》試題A 1.名詞解釋 短語 LL(1)文法 語法分析 無環(huán)路有向圖(DAG) 語法制導(dǎo)翻譯 2. Pascal語言無符號(hào)數(shù)的正規(guī)定義如下: num ? digit+ (.digit+)? (E(+|-)? digit+)?......

        編譯原理學(xué)習(xí)論文(推薦)

        編譯原理學(xué)習(xí)論文 班級(jí):09應(yīng)用(2)班姓名:彭文陽學(xué)號(hào):2009081215 大學(xué)課程為什么要開設(shè)編譯原理呢?這門課程關(guān)注的是編譯器方面的產(chǎn)生原理和技術(shù)問題,似乎和計(jì)算機(jī)的基礎(chǔ)領(lǐng)域不沾邊,......

        編譯原理課程設(shè)計(jì)設(shè)計(jì)任務(wù)書

        編譯原理課程設(shè)計(jì)任務(wù)書 1、目的 學(xué)生在學(xué)習(xí)《程序設(shè)計(jì)語言編譯原理》課程過程中,結(jié)合各章節(jié)的構(gòu)造編譯程序的基本理論,總共用10個(gè)課時(shí)完成課程設(shè)計(jì)。在基本實(shí)驗(yàn)完成的基礎(chǔ)上,......

        編譯原理課程設(shè)計(jì)心得體會(huì)

        經(jīng)過一個(gè)星期的編譯原理課程設(shè)計(jì),本人在劉貞老師的指導(dǎo)下,順利完成該課程設(shè)計(jì)。通過該課程設(shè)計(jì),收獲頗多。一、對(duì)實(shí)驗(yàn)原理有更深的理解通過該課程設(shè)計(jì),掌握了什么是編譯程序,編譯......