久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

編譯原理 第一章 習(xí)題解答

時(shí)間:2019-05-14 18:41:06下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《編譯原理 第一章 習(xí)題解答》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《編譯原理 第一章 習(xí)題解答》。

第一篇:編譯原理 第一章 習(xí)題解答

第一章習(xí)題解答

2.編譯程序有哪些主要構(gòu)成成分?各自的主要功能是什么?

編譯程序的主要構(gòu)成成分有:詞法分析程序、語(yǔ)法分析程序、語(yǔ)義分析程序、中間代碼生成程序、代碼優(yōu)化程序、目標(biāo)代碼生成程序、表格管理程序及出錯(cuò)處理程序。(1)詞法分析程序:從左到右掃描源程序,識(shí)別單詞及其有關(guān)屬性;

(2)語(yǔ)法分析程序:分析源程序的結(jié)構(gòu), 判別它是否為相應(yīng)程序設(shè)計(jì)語(yǔ)言中的一個(gè)合法程序;

(3)語(yǔ)義分析程序:審查源程序有無(wú)語(yǔ)義錯(cuò)誤,為代碼生成階段收集類型信息;(4)中間代碼生成程序:將源程序變成一種內(nèi)部表示形式;

(5)代碼優(yōu)化程序:對(duì)前階段產(chǎn)生的中間代碼進(jìn)行變換或進(jìn)行改造,使生成的目標(biāo)代碼更為高效;

(6)目標(biāo)代碼生成程序:把中間代碼變換成特定機(jī)器上的絕對(duì)指令代碼或可重定位的指令代碼或匯編指令代碼;

(7)表格管理程序:保存編譯過(guò)程中的各種信息;

(8)出錯(cuò)處理程序:若編譯過(guò)程中發(fā)現(xiàn)源程序存在錯(cuò)誤,則報(bào)告錯(cuò)誤的性質(zhì)和錯(cuò)誤發(fā)生的地點(diǎn),有些還可以自動(dòng)校正錯(cuò)誤。

3.什么是解釋程序?它與編譯程序的主要不同是什么?

解釋程序接受某個(gè)語(yǔ)言的程序并立即運(yùn)行這個(gè)源程序。它的工作模式是一個(gè)個(gè)的獲取、分析并執(zhí)行源程序語(yǔ)句,一旦第一個(gè)語(yǔ)句分析結(jié)束,源程序便開始運(yùn)行并且生成結(jié)果,它特別適合程序員交互方式的工作情況。

而編譯程序是一個(gè)語(yǔ)言處理程序,它把一個(gè)高級(jí)語(yǔ)言程序翻譯成某個(gè)機(jī)器的匯編或二進(jìn)制代碼程序,這個(gè)二進(jìn)制代碼程序再機(jī)器上運(yùn)行以生成結(jié)果。

它們的主要不同在于:解釋程序是邊解釋邊執(zhí)行,解釋程序運(yùn)行結(jié)束即可得到該程序的運(yùn)行結(jié)果,而編譯程序只是把源程序翻譯成匯編或者二進(jìn)制程序,這個(gè)程序再執(zhí)行才能得到程序的運(yùn)行結(jié)果。(當(dāng)然還有其他不同,比如存儲(chǔ)組織方式不同)

第二篇:編譯原理課程設(shè)計(jì)

課 程 設(shè) 計(jì) 報(bào) 告

設(shè)計(jì)題目:一個(gè)簡(jiǎn)單文法的編譯器前端的設(shè)計(jì)與實(shí)現(xiàn)

級(jí): 計(jì)算機(jī)1206 組長(zhǎng)學(xué)號(hào):201239 組長(zhǎng)姓名:閆智宣 指導(dǎo)教師:李曉華 設(shè)計(jì)時(shí)間:2014年12月

[在此處鍵入]

設(shè)計(jì)分工

組長(zhǎng)學(xué)號(hào)及姓名: 20123974

閆智宣

分工:

語(yǔ)法分析,四元式生成,目標(biāo)代碼優(yōu)化及生成 組員1學(xué)號(hào)及姓名:20123977

廖峭 分工:

詞法分析,錯(cuò)誤處理 組員2學(xué)號(hào)及姓名:20123959

郭天龍

分工:

符號(hào)表生成,語(yǔ)義動(dòng)作插入,操作界面[在此處鍵入]

摘要

編譯原理課程設(shè)計(jì)是通過(guò)C語(yǔ)言編譯器相關(guān)子系統(tǒng)的設(shè)計(jì),進(jìn)一步加深對(duì)編譯器構(gòu)造的理解;第一部分詞法分析,設(shè)計(jì)各單詞的狀態(tài)轉(zhuǎn)換圖,并為不同的單詞設(shè)計(jì)種別碼,制作掃描器識(shí)別一個(gè)個(gè)單詞,返回值為識(shí)別碼的序號(hào),返回Token序列。將詞法分析器設(shè)計(jì)成供語(yǔ)法分析器調(diào)用的子程序。詞法分析器具備預(yù)處理功能。將不翻譯的注釋等符號(hào)先濾掉,只保留要翻譯的符號(hào)串,即要求設(shè)計(jì)一個(gè)供詞法分析調(diào)用的預(yù)處理子程序;第二部分,語(yǔ)法分析,用遞歸下降法,實(shí)現(xiàn)對(duì)表達(dá)式、各種說(shuō)明語(yǔ)句、控制語(yǔ)句進(jìn)行語(yǔ)法分析。若語(yǔ)法正確,則用語(yǔ)法制導(dǎo)翻譯法進(jìn)行語(yǔ)義翻譯;生成并打印出語(yǔ)法樹;若語(yǔ)法錯(cuò)誤,要求指出出錯(cuò)性質(zhì)和出錯(cuò)位置(行號(hào))。

我們還做了附加功能,即編譯后端,有中間代碼優(yōu)化,生成目標(biāo)代碼匯編語(yǔ)言。通過(guò)此次課程設(shè)計(jì),提高了我們的獨(dú)立分析問(wèn)題、解決問(wèn)題的能力,以及系統(tǒng)軟件設(shè)計(jì)的能力; 提高程序設(shè)計(jì)能力、程序調(diào)試能力,團(tuán)結(jié)協(xié)作能力

關(guān)鍵詞:詞法分析,語(yǔ)法分析,四元式生成,錯(cuò)誤處理,符號(hào)表生成,語(yǔ)義動(dòng)作插入,中間代碼優(yōu)化,生成目標(biāo)代碼 [在此處鍵入]

目錄

摘要

1.概述

2.課程設(shè)計(jì)任務(wù)及要求

2.1 設(shè)計(jì)任務(wù)

2.2 設(shè)計(jì)要求

3.算法及數(shù)據(jù)結(jié)構(gòu)

3.1算法的總體思想(流程)

3.2 詞法分析模塊

3.2.1 功能

3.2.2 數(shù)據(jù)結(jié)構(gòu)

3.2.3 算法

3.3 語(yǔ)法分析模塊

3.3.1功能

3.3.2 數(shù)據(jù)結(jié)構(gòu)

3.3.3算法

3.4 符號(hào)表模塊

3.4.1功能

3.4.2 數(shù)據(jù)結(jié)構(gòu)

3.4.3算法

3.5 四元式模塊

3.5.1功能

[在此處鍵入]

3.5.2 數(shù)據(jù)結(jié)構(gòu)

3.5.3算法

3.6 語(yǔ)義動(dòng)作分析模塊

3.6.1功能 3.6.2 數(shù)據(jù)結(jié)構(gòu)

3.6.3算法

3.7 錯(cuò)誤處理模塊

3.7.1功能

3.7.2 數(shù)據(jù)結(jié)構(gòu)

3.7.3算法

3.8 目標(biāo)代碼模塊

3.8.1功能

3.8.2 數(shù)據(jù)結(jié)構(gòu)

3.8.3算法

4.程序設(shè)計(jì)與實(shí)現(xiàn)

4.1 程序流程圖

4.2 程序說(shuō)明

4.3 實(shí)驗(yàn)結(jié)果

5.結(jié)論 6.參考文獻(xiàn)。7.收獲、體會(huì)和建議。

[在此處鍵入]

1.概述

編譯器是將C語(yǔ)言翻譯為匯編語(yǔ)言代碼的計(jì)算機(jī)程序。編譯器將源程序(source language)編寫的程序作為輸入,翻譯產(chǎn)生目標(biāo)語(yǔ)言(target language)機(jī)器代碼的等價(jià)程序。通常地,源程序?yàn)楦呒?jí)語(yǔ)言(high-level language),C語(yǔ)言程序,而目標(biāo)則是 機(jī)器語(yǔ)言的目標(biāo)代碼(object code),也就是可以在計(jì)算機(jī)硬件中運(yùn)行的機(jī)器代碼軟件程序。這一過(guò)程可以表示為:

源程序→編譯器 →目標(biāo)機(jī)器代碼程序

2.課程設(shè)計(jì)任務(wù)及要求

2.1設(shè)計(jì)任務(wù)

學(xué)生在學(xué)習(xí)《編譯原理》課程過(guò)程中,結(jié)合各章節(jié)的構(gòu)造編譯程序的基本理論,要求用C#語(yǔ)言描述及上機(jī)調(diào)試,實(shí)現(xiàn)一個(gè) C編譯程序(包括詞法分析,語(yǔ)法分析等重要子程序),使學(xué)生將理論與實(shí)際應(yīng)用結(jié)合起來(lái),受到軟件設(shè)計(jì)等開發(fā)過(guò)程的全面訓(xùn)練,從而提高學(xué)生軟件開發(fā)的能力。

2.2設(shè)計(jì)要求 要求:

(1)設(shè)計(jì)詞法分析器

設(shè)計(jì)各單詞的狀態(tài)轉(zhuǎn)換圖,并為不同的單詞設(shè)計(jì)種別碼。將詞法分析器設(shè)計(jì)成供語(yǔ)法分析器調(diào)用的子程序。功能包括:

a.具備預(yù)處理功能。將不翻譯的注釋等符號(hào)先濾掉,只保留要翻譯的符號(hào)串,即要求設(shè)計(jì)一個(gè)供詞法分析調(diào)用的預(yù)處理子程序;

b.能夠拼出語(yǔ)言中的各個(gè)單詞; [在此處鍵入]

c.返回(種別碼,屬性值,行號(hào))。

(2)語(yǔ)法分析

要求用學(xué)習(xí)過(guò)的自底向上或自頂向下的分析方法等,實(shí)現(xiàn)對(duì)表達(dá)式、各種說(shuō)明語(yǔ)句、控制語(yǔ)句進(jìn)行語(yǔ)法分析。若語(yǔ)法正確,則用語(yǔ)法制導(dǎo)翻譯法進(jìn)行語(yǔ)義翻譯;生成并打印出語(yǔ)法樹;若語(yǔ)法錯(cuò)誤,要求指出出錯(cuò)性質(zhì)和出錯(cuò)位置(行號(hào))。

3.算法及數(shù)據(jù)結(jié)構(gòu)

3.1算法的總體思想(流程)

本節(jié)主要分析程序的代碼結(jié)構(gòu)和代碼工程文件的劃分。(程序由幾個(gè)類組成: Token類和Variable類SymbolTable類ObjectCode類Lexical類Grammar類Four_Yuan類Action類ErrorItem類,分別為詞法分析和語(yǔ)法分析類。工程分為幾個(gè)文件:Form1.cs,Token.cs,Variable.cs,SymbolTable.cs,ObjectCode.cs,Lexical.cs,Grammar.cs,Four_Yuan,cs,Action.cs,ErrorItem.cs分別對(duì)應(yīng)Token類和Variable類SymbolTable類ObjectCode類Lexical類Grammar類Four_Yuan類Action類ErrorItem類的聲明和實(shí)現(xiàn)文件)。本程序采用C#語(yǔ)言以面向?qū)ο蟮乃枷刖帉?,程序分為幾部分:詞法分析(Lexical),語(yǔ)法分析(Grammer),目標(biāo)代碼生成(ObjectCode)。Lexical類主要的工作是詞法分析獲取Token。Grammer類的主要工作是根據(jù)Lexical類詞法分析之后的Token進(jìn)行語(yǔ)法分析,生成語(yǔ)法樹,最后并輸出語(yǔ)法樹。在處理過(guò)程中,Token類的對(duì)象作為L(zhǎng)exical類的一個(gè)成員變量,配合Grammer類進(jìn)行語(yǔ)法分析。

工程文件總體上是按照九個(gè)類的格局分為十個(gè)文件,分別是九個(gè)類的聲明文件和實(shí)現(xiàn)文件。十個(gè)文件為Form1.cs,Token.cs,Variable.cs,SymbolTable.cs,ObjectCode.cs,Lexical.cs,Grammar.cs,Four_Yuan,cs,Action.cs,ErrorItem.cs,他們分別是Lexical類聲明文件、Lexical類實(shí)現(xiàn)文件、Grammer類聲明文件、Grammer類實(shí)現(xiàn)文件。[在此處鍵入]

程序流程

在程序中,Lexical類的對(duì)象(Token)作為Grammer類中的一個(gè)成員變量,配合Grammer類進(jìn)行語(yǔ)法分析。它們的關(guān)系是這樣的:Grammer類的一個(gè)成員變量temp首先對(duì)源程序刪除注釋,然后進(jìn)行詞法分析獲取所有Token,并將獲取的Token存儲(chǔ)在Token對(duì)象的tokenList(List類型)中。然后Grammer類的語(yǔ)法分析程序就根據(jù)tokenList中的Token進(jìn)行語(yǔ)法分析,生成語(yǔ)法樹,最后打印語(yǔ)法樹。同時(shí),這也是程序的流程。[在此處鍵入]

3.2 詞法分析模塊 3.2.1功能

Lexical類主要的工作是詞法分析獲取Token序列。

3.2.2數(shù)據(jù)結(jié)構(gòu)

詞法分析階段的代碼被封裝成一個(gè)類——Lexical,Token中主要是Lexical類的聲明代碼,Lexical.cs中主要是Lexical類的實(shí)現(xiàn)代碼。Lexical類對(duì)外提供的函數(shù)主要有:

static public int RecogId(string str, int i),static public int RecogDig(string str,int i),static public int RecogOperator(string str, int i),static public int RecogBound(string str, int i),以上幾個(gè)函數(shù)構(gòu)成了詞法分析的骨架,在Lexical類中還有其他成員變量和函數(shù),主要作為這三個(gè)函數(shù)處理過(guò)程的中間步驟,為這三個(gè)函數(shù)服務(wù)。Lexical類的代碼結(jié)構(gòu)和主要的成員變量和函數(shù)及其含義如下圖所示:

3.2.3算法

算法的基本任務(wù)是從字符串表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào),其基本思想是[在此處鍵入]

根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類,拼出相應(yīng)的單詞符號(hào)。

主程序示意圖:

主程序示意圖如圖3-1所示。

⑴ 關(guān)鍵字表的初值。

關(guān)鍵字作為特殊標(biāo)識(shí)符處理,把它們預(yù)先安排在一張表格中(稱為關(guān)鍵字表),當(dāng)掃描程序識(shí)別出標(biāo)識(shí)符時(shí),查關(guān)鍵字表。如能查到匹配的單詞,則該單詞為關(guān)鍵字,否則為一般標(biāo)識(shí)符。

(2)程序中需要用到的主要變量為type和number 掃描子程序的算法思想:

首先設(shè)置3個(gè)變量: [在此處鍵入]

①token用來(lái)存放構(gòu)成單詞符號(hào)的字符串; ②number用來(lái)整型單詞;

③type用來(lái)存放單詞符號(hào)的種別碼。

Token定義

Token定義:

Token類型(TokenType):

3.3 語(yǔ)法分析模塊

3.3.1功能

語(yǔ)法分析是編譯過(guò)程的一個(gè)邏輯階段。語(yǔ)法分析的功能是在詞法分析的基礎(chǔ)上將單詞序列組合成各類語(yǔ)法短語(yǔ),如“程序”,“語(yǔ)句”,“表達(dá)式”等等.語(yǔ)法分析程序判斷源程序在結(jié)構(gòu)上是否正確.源程序的結(jié)構(gòu)由上下文無(wú)關(guān)文法描述.3.3.2 數(shù)據(jù)結(jié)構(gòu)

下圖為實(shí)現(xiàn)語(yǔ)法分析的類Grammar,屬性與方法的作用都已說(shuō)明 在此處鍵入]

3.3.3算法

1.文法

下面終結(jié)符與非終結(jié)符意義

B程序開始

Z 數(shù)據(jù)類型,如int,char,float等

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

S 語(yǔ)句

P 語(yǔ)句塊

E 加減算術(shù)表達(dá)式

D 逗號(hào)表達(dá)式

T 乘除算術(shù)表達(dá)式

C 關(guān)系表達(dá)式

L 邏輯表達(dá)式

Q 標(biāo)識(shí)符或圓括號(hào)

e 表示空

i 表示標(biāo)識(shí)符 a)函數(shù)文法

B----ZV()S

[

[在此處鍵入]

b)語(yǔ)句塊文法

P----SP|e

S----{P} c)語(yǔ)句文法

表達(dá)式語(yǔ)句文法

S----V=E

goto語(yǔ)句文法

S----i:S

S----goto i

if語(yǔ)句文法

S----if(E)S[else S]

while語(yǔ)句文法

S----while(E)S

聲明語(yǔ)句文法

S----ZVD

D----,VD|=ED|e d)表達(dá)式文法

E----T|E+T|E-T

T----F|T*F|T/F

C----C|CL|C==C|C<= L|C>=L

L----Q|L&&Q|L||Q

Q----i|(E)|!Q

2.遞歸下降程序流程圖

對(duì)應(yīng)于每個(gè)文法編寫如下遞歸下降子程序

主程序(B)[在此處鍵入] [在此處鍵入]

3.4 符號(hào)表模塊

3.4.1功能

進(jìn)行符號(hào)表的儲(chǔ)存,添加,更新,查找,保存標(biāo)識(shí)符活躍信息以及輸出。3.4.2 數(shù)據(jù)結(jié)構(gòu)

在此處鍵入]

3.4.3算法

3.5 四元式模塊

3.5.1功能

四元式為中間代碼,編譯程序進(jìn)行完語(yǔ)義分析后,先生成中間代碼作為過(guò)渡,此時(shí)中間代碼與目標(biāo)代碼已經(jīng)比較相似

3.5.2 數(shù)據(jù)結(jié)構(gòu)

[ 在此處鍵入]

3.5.3算法

3.6語(yǔ)義動(dòng)作分析模塊

3.6.1功能

在語(yǔ)法分析中嵌入相應(yīng)的語(yǔ)義動(dòng)作,生成四元式 3.6.2 數(shù)據(jù)結(jié)構(gòu)

[

[在此處鍵入]

3.6.3算法 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,_,_,_)

3.7 錯(cuò)誤處理模塊

3.7.1功能 保存運(yùn)行時(shí)發(fā)現(xiàn)的錯(cuò)誤,儲(chǔ)存行號(hào)已經(jīng)詳細(xì)信息并輸出。

3.7.2 數(shù)據(jù)結(jié)構(gòu)

3.7.3算法 [在此處鍵入]

public static void AddErrorMessage(int lineno,string content)函數(shù)用作在發(fā)現(xiàn)錯(cuò)誤時(shí)保存錯(cuò)誤信息以及行號(hào)。

public static string PrintErrorList()把所有發(fā)現(xiàn)的錯(cuò)誤格式化后統(tǒng)一輸出。

錯(cuò)誤信息在語(yǔ)法分析,語(yǔ)義分析,符號(hào)表檢錯(cuò)中添加。3.8 目標(biāo)代碼模塊

3.8.1功能

目標(biāo)代碼生成把優(yōu)化后的中間代碼變換成目標(biāo)代碼,此處的目標(biāo)代碼為匯編代碼,采用單寄存器生成目標(biāo)代碼 3.8.2 數(shù)據(jù)結(jié)構(gòu)[在此處鍵入]

3.8.3算法

對(duì)于一個(gè)基本塊有如下流程圖

W:操作符,B:第一操作數(shù),C:第二操作數(shù),R:寄存器

5.結(jié)論

網(wǎng)上找一段話抄上 [在此處鍵入]

6.測(cè)試

測(cè)試打開文件

測(cè)試保存文件

如果沒(méi)打開文件,直接敲代碼,點(diǎn)保存時(shí)會(huì)彈出另存為窗口[在此處鍵入]

測(cè)試錯(cuò)誤檢測(cè),程序缺少main函數(shù)的類型,錯(cuò)誤列表中顯示第一行函數(shù)缺少錯(cuò)誤類型。

測(cè)試錯(cuò)誤檢測(cè),程序缺少分號(hào),錯(cuò)誤列表中顯示該行缺少語(yǔ)句結(jié)束標(biāo)志';' 單擊錯(cuò)誤列表,會(huì)自動(dòng)選定錯(cuò)誤行

編譯成功,生成并顯示token串、符號(hào)表、四元式與目標(biāo)代碼 [在此處鍵入]

測(cè)試if與while語(yǔ)句,而且while嵌套在if當(dāng)中

測(cè)試goto語(yǔ)句,結(jié)果正確。[在此處鍵入]

測(cè)試優(yōu)化,輸入課件中的代碼,結(jié)果與課件一樣

6.參考文獻(xiàn)。

1、陳火旺.《程序設(shè)計(jì)語(yǔ)言編譯原理》(第3版).北京:國(guó)防工業(yè)出版社.2000.2、美 Alfred V.Aho Ravi Sethi Jeffrey D.Ullman著.李建中,姜守旭譯.《編譯原理》.24 [在此處鍵入]

北京:機(jī)械工業(yè)出版社.2003.3、美 Kenneth C.Louden著.馮博琴等譯.《編譯原理及實(shí)踐》.北京:機(jī)械工業(yè)出版社.2002.4、金成植著.《編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)》.北京:高等教育出版社.2002.7.收獲、體會(huì)和建議。

直接拷貝好歹也檢查一下錯(cuò)誤

對(duì)于編譯原理的這次課程設(shè)計(jì),自己經(jīng)歷了從剛開始的不懂?明白任務(wù)的要求和內(nèi)容?理論知識(shí)的了解?開始著手寫代碼?完成基本功能?根據(jù)DFA及自頂向下等理論修改完善代碼等這些過(guò)程。

自己著手寫詞法分析的時(shí)候還不清楚詞法分析的任務(wù)內(nèi)容,還不知道詞法分析的結(jié)果是什么,詞法分析出錯(cuò)的情況和類型有哪些,也總是將詞法分析和語(yǔ)法分析混在一起,不明白哪些錯(cuò)誤在詞法分析中報(bào),哪些錯(cuò)誤在語(yǔ)法分析中判斷,后來(lái)經(jīng)過(guò)查書、網(wǎng)上資料、請(qǐng)教同學(xué)等途徑逐步清晰了詞法分析的工作內(nèi)容是從源代碼文件中獲取出Token,供語(yǔ)法分析使用。在充分了解了語(yǔ)法分析需要哪些信息時(shí),我才真正了解了詞法分析的工作內(nèi)容和目標(biāo),才知道詞法分析需要完成哪些任務(wù)獲取到哪些信息。充分了解了詞法分析的任務(wù)之后,就開始理論知識(shí)的學(xué)習(xí)。經(jīng)過(guò)揣摩書上的例子,自己理解和掌握了怎么設(shè)計(jì)過(guò)濾注釋和分析程序中Token的DFA,于是開始根據(jù)設(shè)計(jì)好的DFA進(jìn)行編碼,最后經(jīng)過(guò)調(diào)試已經(jīng)可以正確地完成詞法階段的任務(wù)了。這只是詞法分析的原始代碼,在之后還進(jìn)行了兩次徹底的改動(dòng)。雖然之前寫的詞法分析的代碼已經(jīng)完成了詞法分析的需求,也是根據(jù)DFA的原理編寫的,但是在代碼結(jié)構(gòu)上卻難以體現(xiàn),在對(duì)書上的根據(jù)已知DFA寫代碼的例子進(jìn)行了詳細(xì)的研究之后,發(fā)現(xiàn)自己的代碼并沒(méi)有像書上那樣完全按照所依據(jù)的DFA各狀態(tài)轉(zhuǎn)移的關(guān)系進(jìn)行編寫,所以對(duì)代碼進(jìn)行了重寫,像書上一樣嚴(yán)格按照狀態(tài)之間轉(zhuǎn)移的方式進(jìn)行編寫,將狀態(tài)劃分成11個(gè)狀態(tài),狀態(tài)分別按1~11進(jìn)行標(biāo)注,程序也按照DFA來(lái)編寫,也實(shí)現(xiàn)了詞法分析的功能。再后來(lái)寫報(bào)告的時(shí)候,發(fā)現(xiàn)分析出Token的那個(gè)DFA并不是最簡(jiǎn)的,有很多多余的狀態(tài),完全可以用一個(gè)flag標(biāo)志來(lái)標(biāo)識(shí),從而簡(jiǎn)化代碼結(jié)構(gòu),于是又重寫了一次詞法分析函數(shù)scan()的代碼,將狀態(tài)縮減為5個(gè),且不再用1-5來(lái)表示,而是像書上那樣分別取了名字(START、INNUM、INID、INDBSYM、DONE),同時(shí)為了簡(jiǎn)化代碼將輸出Token到文件的部分從scan()中剝離開來(lái),而在Lexical類中加了一個(gè)printToken()的函數(shù),使scan()函數(shù)邏輯更加清晰,使讀者能夠容易地將代碼與DFA進(jìn)行查看比照。

在寫語(yǔ)法分析的時(shí)候,已經(jīng)對(duì)編譯器的語(yǔ)法分析的內(nèi)容有了一定的了解,所以直接進(jìn)行了理論的學(xué)習(xí)。首先自己對(duì)遞歸向下分析法進(jìn)行了學(xué)習(xí),將書上的幾個(gè)遞歸向下分析的偽代碼看過(guò)之后,自己對(duì)遞歸向下的分析方法的原理有了初步的認(rèn)識(shí),大概知道了根據(jù)文法怎么分析,但是對(duì)于如何編寫代碼卻還在此處鍵入]

是難以下手,于是就對(duì)照TINY語(yǔ)言的文法看了幾遍書后面的TINY語(yǔ)言的遞歸向下分析的語(yǔ)法分析程序,這樣就基本知道了C-語(yǔ)言的語(yǔ)法分析程序怎么寫。由于C-語(yǔ)言給出的文法有左遞歸存在,于是自己將存在左遞歸的文法改寫成EBNF的形式,并據(jù)此進(jìn)行代碼編寫。由于在編寫代碼的過(guò)程中需要確定分析是否正確或選擇多個(gè)文法中的某一個(gè)文法進(jìn)行分析,有時(shí)必須探測(cè)需要的或下一個(gè)Token的類型,在這種情況下需要求First集合,在推導(dǎo)中若存在empty,又需要求Follow集合,所以這樣又需要我了解First集合和Follow集合,自己在程序中也根據(jù)求出的First集合和Follow集合進(jìn)行判斷,以確定程序的走向。在編寫過(guò)程中,還有一類問(wèn)題,就是存在公共左因子,如文法expression→ var = expression | simple-expression,左因子為ID,在分析過(guò)程中,由于已經(jīng)取出了一個(gè)ID的Token,且生成了一個(gè)IdK的節(jié)點(diǎn),但是在當(dāng)前狀態(tài)無(wú)法確定是哪一個(gè)推導(dǎo),然而IdK節(jié)點(diǎn)已經(jīng)生成,又無(wú)法回退,并且是使用自頂向下的分析方法,已經(jīng)生成的IdK在程序上方無(wú)法使用,自己通過(guò)查閱資料等途徑的學(xué)習(xí)確定了在這種情形下的處理方式:將已經(jīng)生成的IdK節(jié)點(diǎn)傳到下方的處理程序,所以TreeNode * simple_expression(TreeNode * k)、TreeNode * additive_expression(TreeNode * k)等函數(shù)都被設(shè)計(jì)成有節(jié)點(diǎn)類型參數(shù)的函數(shù),目的就是將已經(jīng)生成的節(jié)點(diǎn)傳到下面的分析函數(shù)中去。

通過(guò)這次的編譯原理課程的學(xué)習(xí)和實(shí)踐,自己獲益良多。首先最基本的成果是完成了課程設(shè)計(jì)的任務(wù),實(shí)現(xiàn)了編譯器的詞法分析和語(yǔ)法分析階段的功能,詞法分析主要能過(guò)濾注釋、分析出語(yǔ)法分析階段需要的Token并滿足語(yǔ)法階段的所有要求,能夠判別詞法分析階段是否出錯(cuò)和出錯(cuò)類型和位置。語(yǔ)法分析主要能根據(jù)遞歸向下的分析思想和C-文法對(duì)詞法分析獲取的Token進(jìn)行語(yǔ)法分析,能夠構(gòu)造出語(yǔ)法樹,能夠判別語(yǔ)法分析過(guò)程中是否出錯(cuò)以及出錯(cuò)位置和錯(cuò)誤類型。

由于在編寫程序過(guò)程中,涉及到了正則表達(dá)式、DFA、提取公共左因子、消除左遞歸、EBNF、求First集合和Follow集合、遞歸向下分析方法以及編程語(yǔ)言方面的知識(shí),所以,通過(guò)本次的課程設(shè)計(jì)的實(shí)踐,使得自己對(duì)編譯原理這門課的許多知識(shí)點(diǎn)有了更加深刻和具體的理解,而不再只限制于做題。此外,對(duì)以前那些已掌握的知識(shí)有了溫習(xí)和動(dòng)手鍛煉的機(jī)會(huì)。如:以前在編譯原理課上雖然知道First集合和Follow集合怎么求的,卻不知道First集合和Follow集合到底是干什么的,通過(guò)編寫程序自己明白了他們的實(shí)際作用,使得自己不僅知其然還知其所以然,從而使得自己加深了對(duì)知識(shí)點(diǎn)的理解和掌握。由于以前編寫代碼都是使用JAVA語(yǔ)言,所以C/C++很多內(nèi)容都忘記了,通過(guò)本次的實(shí)踐,自己又重新拾起了以前的知識(shí)。此外,由于在做報(bào)告的時(shí)候,需要描繪DFA和程序流程圖,使得自己初步掌握了使用visio和word畫圖的能力。此外,對(duì)于文檔的編寫和美化自己也獲得了許多有用的經(jīng)驗(yàn)。[

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

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

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

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

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

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

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

第四篇:編譯原理論文

編譯原理心得體會(huì)

編譯原理是計(jì)算機(jī)專業(yè)的一門重要專業(yè)課,旨在介紹編譯程序構(gòu)造的一般原理和基本方法,在計(jì)算機(jī)本科教學(xué)中占有十分重要的地位。

該課程理論性與實(shí)踐性都很強(qiáng),我們?cè)趯W(xué)習(xí)是普遍感到內(nèi)容非常抽象,不易理解,內(nèi)容多且繁瑣,難以完整、全面地掌握編譯原理的有關(guān)知識(shí),更不用說(shuō)靈活運(yùn)用編譯原理知識(shí)從事相關(guān)設(shè)計(jì)或應(yīng)用于其他領(lǐng)域。雖然只有少數(shù)人從事編譯方面的工作,但是這門課在理論、技術(shù)、方法上都對(duì)我們提供了系統(tǒng)而有效的訓(xùn)練,有利于提高軟件人員的素質(zhì)和能力。

在我們學(xué)習(xí)編譯原理以前,都認(rèn)為編譯原理只能應(yīng)用在寫程序語(yǔ)言的編譯器上,覺(jué)得用處不大,學(xué)習(xí)興趣不高。而在后來(lái)的學(xué)習(xí)中,我們逐漸認(rèn)識(shí)到計(jì)算機(jī)專業(yè)的學(xué)生,除了要會(huì)編寫程序語(yǔ)言之外,還應(yīng)該了解它是如何被計(jì)算機(jī)所識(shí)別,這才是真正并且透徹地學(xué)習(xí)軟件。另外,編譯器中每一個(gè)模塊的編寫,都能對(duì)我們的編程能力的提高有很大幫助。在今后若從事軟件工程,這門課程也能夠?qū)帉懗绦蛴兴鶐椭?/p>

為了能夠系統(tǒng)掌握這門專業(yè)課,我們把編譯原理分為以下幾個(gè)模塊:①語(yǔ)言和文法;②詞法分析;③語(yǔ)法分析;④語(yǔ)義分析和中間代碼生成;⑤代碼優(yōu)化和目標(biāo)代碼生成。

在學(xué)習(xí)的開始,我們需要掌握什么是編譯,編譯分為哪些階段,編譯程序和解釋程序的區(qū)別等等。在做好了這些方面的準(zhǔn)備后,開始了系統(tǒng)的學(xué)習(xí)。

語(yǔ)言和文法部分的知識(shí)包括文法基本概念及文法的二義性?;靖拍钣形姆ǘx、推導(dǎo)、句型、句子等等。二義性文法是通過(guò)畫語(yǔ)法樹的方法來(lái)證明。

詞法分析中的重點(diǎn)是有窮自動(dòng)機(jī)DFA的生成以及DFA和正規(guī)式與正規(guī)文法的關(guān)系。還要熟練掌握NFA轉(zhuǎn)換為DFA的方法及DFA的化簡(jiǎn)。

語(yǔ)法分析包括自上而下和自下而上分析。自上而下分析著重掌握LL(1)文法,自下而上分析重點(diǎn)掌握算符優(yōu)先文法和LR(0)、SLR(1)文法。

語(yǔ)義分析重點(diǎn)是其功能,中間代碼生成和語(yǔ)法制導(dǎo)翻譯定義與方法。

最后,優(yōu)化分為局部?jī)?yōu)化和循環(huán)優(yōu)化,重點(diǎn)理解一些關(guān)鍵詞,如基本塊、流圖等,要學(xué)會(huì)自己畫出程序流圖。用DAG圖進(jìn)行局部?jī)?yōu)化是重點(diǎn)。

在學(xué)習(xí)文法時(shí),對(duì)文法的組成,用法都較為明了,而在真正做題時(shí)卻感到十分吃力。例如給出了一個(gè)語(yǔ)言,要求寫出它的上下文無(wú)關(guān)文法,就感到十分棘手,所以今后在這方面要加大練習(xí)量,以熟練掌握。

而在之后的詞法分析和語(yǔ)法分析中,我感到在看基本原理時(shí)十分困難,通常要長(zhǎng)時(shí)間鉆研才能夠有所了解,而一旦掌握了基本原理,做題時(shí)就感到十分順暢了。例如,在剛接觸到LR(0)文法時(shí),我用了大量的時(shí)間去學(xué)習(xí)它的原理,掌握之后,在列LR(0)分析表和寫分析過(guò)程時(shí),只要思路清晰,就會(huì)比較順暢,而且不會(huì)犯錯(cuò)。

下面是我認(rèn)為的比較有效的學(xué)習(xí)編譯原理的步驟:

1.先利用ANTLR之類的編譯器生成工具,做一個(gè)小程序(如上面提到的HTML文件轉(zhuǎn)化成純文本文件的程序),所需知識(shí)只是正則表達(dá)式的基本知識(shí)和生成工具本身的使用方法(可以看聯(lián)機(jī)幫助和網(wǎng)上教程(tutorial)來(lái)掌握).這樣做的好處是:

1)可以體會(huì)到編譯原理的實(shí)用性,提高學(xué)習(xí)興趣

2)入門容易,消除編譯原理學(xué)習(xí)的畏難情緒.3)獲得詞法分析器和語(yǔ)法分析器的感性認(rèn)識(shí),有利于加深對(duì)理論的理解.4)獲得編譯器自動(dòng)生成工具(compiler compiler)的使用經(jīng)驗(yàn),提高解決實(shí)際問(wèn)題的能力.(實(shí)際工作很多都不是手編而是利用工具的)

2.象ANTLR之類的工具是開源(open source)的,可研究其源碼,以便必要時(shí)自己手編分析程序.3.回過(guò)頭來(lái)看編譯原理教材.這時(shí)大概會(huì)發(fā)現(xiàn),很多理論很容易懂,剩下的只有上面說(shuō)的幾個(gè)難點(diǎn),多看幾遍,重點(diǎn)突破.4.結(jié)合教材所附源碼,進(jìn)一步加深對(duì)教材的理解。以上就是我對(duì)這門課的心得體會(huì)。

第五篇:編譯原理實(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)來(lái)完成我們的實(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語(yǔ)法樹生成的時(shí)候推不出目標(biāo)的產(chǎn)生式時(shí),我們?cè)O(shè)計(jì)了報(bào)錯(cuò)提示,在這個(gè)詞的位置出現(xiàn)錯(cuò)誤提示,將記錄切割出來(lái)的詞在code.txt中保存,并記錄他們的位置。

以下是我們的主要代碼:

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

結(jié)果展示:

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

根據(jù)選擇的語(yǔ)法分析方法進(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

簡(jiǎn)化的語(yǔ)法圖: S的語(yǔ)法圖:

C的語(yǔ)法圖:

E的語(yǔ)法圖:

T的語(yǔ)法圖:

F的語(yǔ)法圖:

流程圖:

語(yǔ)法分析子系統(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值 輔助程序:

生成語(yǔ)法樹的程序:

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.輸出語(yǔ)法樹 三、三地址碼生成器

算法的基本思想:

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

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

流程圖:

算法展示:

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

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

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

五、源程序

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

輸出結(jié)果:

語(yǔ)義分析結(jié)果:

輸入:

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

輸出:

三地址碼的輸入:

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

輸出:

下載編譯原理 第一章 習(xí)題解答word格式文檔
下載編譯原理 第一章 習(xí)題解答.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ì)簡(jiǎn)介

    編譯原理實(shí)踐課程 編譯原理課程是計(jì)算機(jī)專業(yè)必修的一門重要的專業(yè)基礎(chǔ)課程,也是計(jì)算機(jī)系統(tǒng)軟件中非常重要的一個(gè)分支,經(jīng)過(guò)多年建設(shè)取得了豐碩的教學(xué)成果:2003年被評(píng)為“吉林大......

    《編譯原理課程設(shè)計(jì)》教學(xué)大綱

    《編譯原理課程設(shè)計(jì)》教學(xué)大綱 課程名稱: 課程編號(hào): 適用專業(yè): 總 學(xué) 分: 總 周 時(shí): 主 撰 人: 撰寫日期: 一、目的與任務(wù) 通過(guò)程序設(shè)計(jì)上機(jī)調(diào)試程序?qū)崿F(xiàn)算法,學(xué)習(xí)編譯程序調(diào)試技巧......

    合肥工業(yè)大學(xué)編譯原理課程設(shè)計(jì)

    關(guān)于《編譯原理》課程設(shè)計(jì)的有關(guān)說(shuō)明 《編譯原理》是計(jì)算機(jī)專業(yè)的一門重要的專業(yè)課程,其中包含大量軟件設(shè)計(jì)思想。大家通過(guò)課程設(shè)計(jì),實(shí)現(xiàn)一些重要的算法,或設(shè)計(jì)一個(gè)完整的編譯......

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

    黃岡師范學(xué)院 《編譯原理課程設(shè)計(jì)》教案 (2011·春) 授 課 教 師: 張 瑞 紅 授 課 班 級(jí): 計(jì)科2008級(jí) 授 課 時(shí) 間: 2010-2011 二 課題一 有限自動(dòng)機(jī)的運(yùn)行 一、設(shè)計(jì)題目:有限......

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

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

    編譯原理課程-教學(xué)計(jì)劃

    編譯原理教學(xué)大綱2001,9周次課內(nèi)學(xué)時(shí)課內(nèi)安排(講授內(nèi)容)建議課外安排備注 12編譯原理概述閱讀PL/0程序文本 24介紹PL/0編譯程序閱讀PL/0程序文本 32詞法分析程序自動(dòng)構(gòu)造閱......

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

    實(shí)驗(yàn)2:語(yǔ)法分析 1. 實(shí)驗(yàn)題目和要求 題目:語(yǔ)法分析程序的設(shè)計(jì)與實(shí)現(xiàn)。 實(shí)驗(yàn)內(nèi)容:編寫語(yǔ)法分析程序,實(shí)現(xiàn)對(duì)算術(shù)表達(dá)式的語(yǔ)法分析。要求所分析算術(shù)表達(dá)式由如下的文法產(chǎn)生。 E?E?T|E?T......

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

    題目:書中任選一文法對(duì)它進(jìn)行LR分析和語(yǔ)義分析(語(yǔ)言不限制)文檔不可少的內(nèi)容: ? 實(shí)現(xiàn)原理 ? 程序流程圖 ? 子函數(shù)說(shuō)明或者類的說(shuō)明 ? 程序代碼及運(yùn)行結(jié)果 ? 心得體會(huì)文檔不少于12頁(yè)......

主站蜘蛛池模板: 中文字幕亚洲一区二区va在线| 无码av免费毛片一区二区| 天堂8在线天堂资源bt| 色av专区无码影音先锋| 日本免费一区二区三区激情视频| 成人精品视频一区二区| 欧美搡bbbbb搡bbbbb| 琪琪午夜理论片福利在线观看| 亚洲大成色www永久网站| 亚洲熟妇无码八av在线播放| 国产成人无码av在线影院| 国产一区二区三区在线观看免费| 国产精品妇女一二三区| h无码精品3d动漫在线观看| 国产探花在线精品一区二区| 国产a∨天天免费观看美女| 在线va无卡无码高清| 欧洲成人一区二区三区| 日韩精品极品视频在线观看免费| 色偷偷激情日本亚洲一区二区| 亚洲成a人无码亚洲成www牛牛| 亚洲中国精品精华液| 久久狠狠爱亚洲综合影院| 欧美日本亚洲韩国一区| 亚洲精品无码永久中文字幕| 欧美最猛黑A片黑人猛交蜜桃视频| 自偷自拍亚洲综合精品麻豆| 日韩精品久久久久久免费| 国产女人的高潮大叫毛片| 色欲av无码一区二区三区| 永久不封国产毛片av网煮站| 色噜噜亚洲男人的天堂| 天堂а√在线地址中文在线| 日本边添边摸边做边爱喷水| 日韩欧美猛交xxxxx无码| 国产无遮挡a片又黄又爽| 久久无码精品一区二区三区| 又色又污又爽又黄的网站| 丁香五月亚洲综合在线| 国产在线不卡一区二区三区| а天堂中文在线官网在线|