编译原理实验心得Word文件下载.docx

上传人:b****1 文档编号:15212654 上传时间:2022-10-28 格式:DOCX 页数:10 大小:19.55KB
下载 相关 举报
编译原理实验心得Word文件下载.docx_第1页
第1页 / 共10页
编译原理实验心得Word文件下载.docx_第2页
第2页 / 共10页
编译原理实验心得Word文件下载.docx_第3页
第3页 / 共10页
编译原理实验心得Word文件下载.docx_第4页
第4页 / 共10页
编译原理实验心得Word文件下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

编译原理实验心得Word文件下载.docx

《编译原理实验心得Word文件下载.docx》由会员分享,可在线阅读,更多相关《编译原理实验心得Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。

编译原理实验心得Word文件下载.docx

要识别一个符号串是不是一个文法的合法句子,需要对它进展语法分析。

分析方法有两类,一列是自上而下分析法,另一类是自下而上分析法。

5、为了进展语法分析,需要事先将文法的产生式存储在计算机中,可以为文法建立一个产生式表,把文法的所有产生式都放在这个产生式表中。

为了在分析过程中能迅速地查找到相应的产生式,还可以再建立一个目录表。

第三章、有穷自动机

1、自动机是一种能进展运算并能实行自我控制的装置。

它是描述符号串处理的强有力地工具,是研究扫描器的理论根底。

有穷自动机分为确定有穷自动机〔DFA〕和非确定有穷自动机〔NFA〕。

2、DFA=〔Q,∑,t,q0,F〕,Q是状态集,∑是输入字母表,t:

∑→Q,q0属于Q是开始转台,F是终止状态集。

3、NFADFA=〔Q,∑,t,q0,F〕,t为Q×

∑→Q的子集上的函数,Q0是开始状态集。

4、对于NFA可采用子集法和造表法进展确认化,将其转化为等价的DFA。

对DFA化简的根本思想是将状态集分解成假如干个互不相交的子集,使每个子集中的状态都是等价的,而不同子集的状态是可区分的。

5、正规文法与FA有着特殊的关系。

从正规文法可直接构造其自动机;

反之,由自动机也可以直接构造其正规文法。

6、正规表达式与FA也有着特殊的关系。

对于字母表∑上的任意一个正规表达式e,一定可以构造一个NFAM,使L〔M〕=L〔e〕;

反之,对于一个具有输入字母表∑的NFAM,在∑上也可以构造一个正规表达式e,使L〔e〕=L〔M〕。

7、正规语言可用正规文法描述,也可以用正规表达式描述。

8、DFA在计算机中有两种表示,一种是矩阵表示,另一种是表结构。

第四章、词法分析

1、词法分析是编译过程的第一阶段,是编译过程的根底。

它负责对源程序扫描,从中识别出一个个的单词。

2、单词是程序设计语言的根本语法单位和最小的语义单位。

单词一般分为五类,即关键字〔又称为保存字或根本字〕、标识符、常数、运算符和界限符。

3、源程序经词法分析程序识别的单词背表示成机内符,机内符包括单词类别和单词自身值两局部。

4、词法分析程序课利用状态转换图进展设计。

状态转换图是一个有向图,每个节点表示一个状态,其中有一个初始状态,至少有一个终止状态。

5、词法分析程序还可以根据正规文法或正规表达式来进展设计、

第五章、自上而下语法分析

1、递归下降分析程序与其设计

例、设文法G[S]:

S→〔A〕|aAb

A→eA′|dSA′

A′→dA′|e

子程序P〔S〕:

READ(ch)

ifch=′(′then

begin

READ(ch);

P(A);

ifch=′)′thengotoL

elseerror

end

elseifch≠′a′thenerror

elsebegin

ifch=′b′thengotoL

L:

READ(ch);

return

子程序P(A):

ifch=′e′then

begin

gotoL

ifch≠′d′thenerror

P(S);

P(A′);

return

子程序P(A′):

L:

ifch=′d′then

begin

read(ch);

elseifch=′d′thengotoL′

elseifch=′)′thengotoL′

L′:

2、带回溯的自上而下分析算法

INIT:

p:

=1;

k:

j:

s[k]:

=(z,0,0,0);

gotoTEST;

TEST:

ifGOALinVTthen

ifGOAL=INPUT[j]then

=j+1;

gotoSUCC

end

elsegotoFALL;

i:

=GOAL

gotoLOOK;

LOOK:

ifGRAMMAR[i]=′|′then

ifFATHER≠0thengotoSUCC

elseSTOP

ifGRAMMAR[i]=′$′then

ifFATHER≠0thengotoFALL

=k+1;

=(GRAMMAR[i],O,P,O,SON);

SON:

=k;

SUCC:

P:

=FATHER;

=i+1;

FALL:

FATHER;

=S[SON].BRO;

K:

=K-1;

gotoATRY;

ATRY:

ifSON=0then

whileGRAMMAR[i]≠′1′do

gotoLOOK

end;

=i-1;

=SON;

ifGOALinVNthen

gotoATRY;

=j-1;

gotoFALL;

第六章、自下而上分析和优先分析方法

1、自下而上分析

自下而上分析法是一种“移进-归约〞法。

它用到一个符号栈S,待检查符号串的符号逐个被“移进〞S栈,当栈顶符号串与某个产生式右部相匹配时,这个符号串被替换成〔“归约〞为〕该产生式左部非终结符。

例子。

设文法G[S]:

S→(T)|a|e

T→S|T,S

因为S=>

+(T,S),T=>

+(a)

所以〔a〕是句型〔〔a〕,S〕相对于T的短语。

再因为

S=>

+((T),S),T=>

T,S

所以T,S是句型〔〔〔T〕,S〕,S〕是相对于T的直接短语。

2、有关文法的一些关系尚未根本性质

设R施定义在集合∑上的一个关系,如果对任何关系x属于∑,都有xRx

如此称关系R是自反的。

如果对任何x,y属于∑,xRy,都有yRx,如此称关系R是对称的

对任何x,y,z属于∑,如果能由xRy,都有yRx,如此称关系R是对称的。

3、Warshall算法

Warshall算法是用于求关系传递闭包的一种算法。

以下是描述这个算法的BASIC程序:

10fori=1ton

20forj=1ton

30ifM(j,i)=0then80

40fork=1ton

50ifM(i,k)=0then70

60letM(j,k)=1

70nextk

80nextj

90nexti

100end

4、简单优先分析方法

简单优先分析法是一种典型的自下而上分析方法。

它对符号串进展语法分析的过程,实际是一个归约的过程。

在这个归约过程中,它根据文法符号之间的简单优先关系来寻找符号串中课进展归约的字串,此子串称为句柄。

5、两种优先分析方法的比拟

①两种方法都是自下而上语法分析法。

它们对一个符号串进展分析的过程,实际上是对这个符号串进展归约的过程。

在归约的每一步,它们都要寻找句型的一个可归约子串

②两种方法都引入优先关系,并创建了优先关系矩阵。

优先关系以与优先关系矩阵是确定句型的课归约子串的根据

③由于算符优先方法只在终结符之间建立优先关系,在归约过程中,它不对单产生式进展归约,因而比简单优先分析法成效更高。

第七章、自下而上的KR〔K〕分析方法

1、拓广文法

E′→E

E→E+T|T

T→T*F|F

F→(E)|id

假定I={[E′→·

E]},那么CLOSURE(I)如此包含下面的项目:

E′→·

E

E→·

E+T

T

T→·

T*F

F

F→·

(E)

id

计算CLOSURE的过程如下:

procedureCLOSURE(I);

repeat

for

until

returnI;

2、LR〔0〕项目集规X族

procedureITEM(G′);

C:

={CLOSURE({S′→·

S})};

forC中每个项目集I和I中每个紧接“·

〞后的不同文法符号Xdo

ifgoto〔I,X〕非空且不属于Cthen

将goto〔I,X〕加到C

untilC不再增大;

end;

最终得到的C就是拓广文法G′的LR〔0〕项目集规X族。

3、列举

考虑文法G〔S〕:

S→A|B

A→aAb|c

B→aBb|d

其拓广文法G′(S)为

0S′→S

1S→A

2S→B

3A→aAb

4A→c

5B→aBb

6B→d

文法G′(S′)的根本LR〔0〕项目集为

1S′→·

S

2S′→S·

3S→·

A

4S→A·

5A→·

aAb

6A→a·

Ab

7A→aA·

b

8A→aAb·

9A→·

c

10A→c·

11S→·

B

12S→B·

13B→·

aBb

14B→a·

Bb

15B→aB·

16B→aBb·

17B→·

d

18B→d·

4、给定项目集I,X是一个文法符号,计算I的闭包CLOSURE(I)的算法是:

procedireCLOSURE(I)

beginI中的项目都属于CLOSURE〔I〕;

doif[]

untilI不再增大

returnI;

第八章、语法制导翻译法

任何编译程序都可以看作这样一种翻译程序:

它将用某种源程序语言写的程序〔源程序〕转换成等价的用某种目标语言

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1