网站大量收购闲置独家精品文档,联系QQ:2885784924

WHILE循环语句的翻译程序设计课设报告.doc

WHILE循环语句的翻译程序设计课设报告.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

题目:将WHILE语句转换成四元式的程序实现

设计内容及要求:设计一个语法制导翻译器,将WHILE语句翻译成四元式。要求:先确定一个定义WHILE语句的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的WHILE语句,程序将其转换成四元式输出(可按一定格式输出到指定文件中)。

1、系统描述

通过设计、编制、调试一个WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。用语法制导完成语义分析,并将形成的中间代码以四元式的形式输出。

2、文法及属性文法的描述

2.1文法的描述

该文法的产生式如下所示:

(1)S-while(B){E}

(2)E-AE

(3)E-A

(4)A-iPA

(5)A-i

(6)B-iTi

(7)B-i

其中while、(、)、{、}、P、T、;和i均为终结符,而S、A、B、E这些大写字母均为非终结符。T表示比较运算符,P表示算术运算符,i表示合法标识符。

2.2属性文法的描述

对该文法的属性文法描述如下:

(1)S-while(B){E}prinf(ifBgotoEelsegotonext)

(2)E-AEprint=·

(3)E-Aprint=

^

(4)A-iPAprint(A=P

(5)A-i;=i;

(6)B-iTiprint(B=T

(7)B-i=i

3、语法分析方法描述及语法分析表设计

|

3.1语法分析表设计

3.1.1文法的DFA

、I0

I0:

S’-·S

S-·W(B){E}

I3:

S-W(·B){E}

B-·iTi

B-·i

I4:

S-W(B·){E}

I6:

S-W(B)·{E}

I5:

B-i·Ti

B-i·

I7:

B-iT·i

I9:

S-W(B){·E}

E-·AE

E-·A

A-·iPA

A-·i;

I10:

E-A·E

E-A·

E-·AE

E-·A

A-·iPA

A-·i;

I11:

]

S-W(B){E·}

I12:

S-W(B){E}·

I13:

E-AE·

I14:

A-i·PA

A-i·;

`

I15:

A-iP·A

A-·iPA

A-·i;

I16:

A-iPA·

I17:

A-i;·

S

W

(

B

i

)

{

E

}

A

i

P

i

;

E

A

i

A

T

i

I8:

B-iTi·

I2:

S-W·(B){E}

|

3.1.2LR(0)分析表

状态

while

(

)

{

}

i

@

op

rop

;

#

S

E

B

A

0

S2

1

1

.

\

Z

2

S3

3

S5

4

4

S6

5

r7

S7

~

6

S9

$

7

S8

^

8

r6

9

^

S14

]

11

10

10

-

r3

S14

13

10

11

)

S12

·

12

r1

$

13

r2

.

14

~

S15

S17

15

S14

16

^

16

r4

r4

17

.

r5

r5

!

3.1.2LR(0)分析方法描述说明

LR分析法的规约过程是规范推到的逆过程,所以LR分析过程是一种规范规约的过程。其分析过程为:由文法构造出该文法项目集,再根据项目集构造该文法的DFA,再判断是否有移进-规约和规约-规约冲突,若没有冲突则该文法为LR(0)的,若有冲突则该文法是SLR(1)的,最后可以构造出LR(0)分析表。然后根据LR(0)分析表进行语法分析,分析过程就是进栈和规约的过程。若能规约出开始符S,则语法正确。反之,语法错误。

4、中间代码形式的描述及中间代码序列的结构设计

本系统中所采用的中间代码形式是四元式,是一种比较普遍采用的形式。四元式的四个组成成分是:算符op,第一和第二运算对象ARG1和ARG2及运算结果RESULT。运算对象和运算结果有时指用户自己定义的变量,有时指编译程序引进的临时变量。例如a:=b*c+b*d的四元式表示如下:

1)(*,b,c,t1)

2)(*,b,

文档评论(0)

祝秀珍 + 关注
实名认证
内容提供者

好文档 大家想

1亿VIP精品文档

相关文档