1 / 14
文档名称:

编译原理-DO-WHILE语句的翻译程序设计.doc

格式:doc   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

编译原理-DO-WHILE语句的翻译程序设计.doc

上传人:janny 2011/6/11 文件大小:0 KB

下载得到文件列表

编译原理-DO-WHILE语句的翻译程序设计.doc

文档介绍

文档介绍:DO-WHILE语句的翻译程序设计

1)写出符合递归下降法的文法及属性文法。
2)完成题目要求的中间代码四元式的描述。
3)写出递归下降法的思想,完成语法分析和语义分析程序。
4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
5)递归下降法是语法分析中最易懂的一种方法,对每个非终极符按其产生式结构构造相应语法分析子程序,其中终极符产生匹配命令,而非终极符则产生过程调用命令。因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。其中子程序的结构与产生式结构几乎是一致的。
6)单词的编码
单词
编码
do
3
while
2
数字
7
+
9
=
8
<
11
>
12
(
13
)
14

:
<cycle> do <sentence_str>while <expression>
<sentence_str> id=<expression>
<expression> <term>|<term><expression>
<term> <facter>|<facter><term>
<facter> id| <rela_express>
<rela_express> <expression><relation><expression>
<relation> <|>|=
:

产生式: Sàdo S1 while E
:=newlabel;
:= newlabel;
:=;
:=;
:=gen(’:’)////gene(’:’)//
//’gen(goto’ )



采用了递归子程序方法进行语法分析,对文法中的每个非终极符号按其产生式结构产生相应的语法分析子程序,完成相应的识别任务。其中终结符产生匹配命令,非终结符则产生调用命令。每次进入子程序之前都预先读入一个单词。因为使用了递归下降方法,所以程序结构和层次清晰明了,易于手工实现,且时空效率较高。实际的语法分析工作,从调用总程序的分析子程序开始,根据产生式进行递归调用各个分析子程序。

代码中间用四元式的形式记录,四元式是带有四个域的记录结构,使用变量名字本身表示运算对象ARG1和ARG2,用ti表示RESULT。在实际实现中,它们或者是一个指针,指向符号表的某一登录项,或者是一个临时变量的整数码。在对赋值语句翻译为四元式的描述中,我们将表明怎样查找这样的符号表登录项。,用做语义变量,用Lookup(),如在,则返回一指向该登录项的指针,否则返回nil。

采用了递归子程序方法进行语法分析,对文法中的每个非终极符号按其产生式结构产生相应的语法分析子程序,完成相应的识别任务。其中终结符产生匹配命令,非终结符则产生调用命令。每次进入子程序之前都预先读入一个单词。因为使用了递归下降方法,所以程序结构和层次清晰明了,易于手工实现,且时空效率较高。实际的语法分析工作,从调用总程序的分析子程序开始,根据产生式进行递归调用各个分析子程序。

// 匹配一个符号token...
void match(token)
{
    if (current_token == token) current_token = get_next_token();
    else error("expect {token}, but give {current_token}")
}
// function_decl 用来匹配一个函数声明语句;
// function_decl 的产生式为:
// function_decl := function func_name ( argment_list );
void function_decl( )
{
    current_token = get_next_token();   // 取出一个符号
    match(function);   // 匹配function
    func_name();       // 如果已经匹配,那么接下来应该匹配函数名字了
    match('(');            // 匹配'(

最近更新

黑龙江省哈尔滨市单城中学高一政治月考试题含.. 6页

黑龙江省哈尔滨市哈轻中学2021年高二语文下学.. 9页

网络教育毕业自我鉴定(通用5篇) 5页

结婚新郎的爱的宣言(通用140句)(通用8篇).. 14页

精选太阳作文300字(通用23篇) 13页

简单的合同(精选14篇) 29页

端午节给哥哥的短信(精选5篇) 12页

租赁农村房屋租赁合同(通用6篇) 14页

社团宣传部工作计划(通用3篇) 8页

社会实践实习报告(精选8篇) 19页

图书馆建设项目施工方案 41页

电力公司求职信(通用3篇) 4页

理解父母作文(精选8篇) 8页

班主任下学期工作总结(精选6篇) 14页

物流工作实习报告(通用4篇) 9页

爱的教育读书笔记(精选3篇) 3页

黑龙江省哈尔滨市第一综合高级中学高二数学文.. 5页

汽车销售月工作计划(精选8篇) 14页

民间担保借款合同(精选6篇) 16页

武术比赛作文300字(精选2篇) 2页

木工车间管理制度(通用2篇) 5页

有关父亲的作文(精选58篇) 52页

最新的房地产抵押合同(精选2篇) 8页

春节的作文700字(精选6篇) 8页

干支流错峰条件下交汇处堤防渗流稳定性分析 2页

黑龙江省哈尔滨市第十六中学高三数学理上学期.. 7页

黑龙江省哈尔滨市第十二职业中学2022年高二数.. 6页

教师学习总结(精选3篇) 6页

胚胎分割是一种现代生物技术 5页

描写儿童节的作文(精选2篇) 2页