课程设计任务书

2020-02-20 22:44

《编译技术课程设计B》课程设计

任 务 书

一、 目的与要求

通过设计、编写和调试词法分析程序,了解词法扫描器的组成结构、不同种类单词的识别方法,掌握由单词的词法规则出发,通过识别单词的状态转换图、利用程序实现词法扫描器的方法。通过设计、编写和调试语法分析程序,了解语法分析器的组成结构以及对文法的要求,掌握基于表达式文法的语法分析程序的实现方法。通过设计、编写和调试语法制导翻译程序,掌握从语句的语法出发,构造相应的语义子程序,实现基于算符优先分析的算术表达式的语法制导翻译。

二、 主要内容

1. 词法分析器的设计与实现

设计一个简单的词法扫描器。其输入是源程序字符串,输出是二元式(种别编码,单词的属性值),例如“=”符号的输出形式为(8,-),其中种别编码可参照书中单词表自拟某程序设计语言的单词表及其种别编码。实现方法参考书中函数和程序框架。 2. 语法分析器的设计与实现

自上而下的语法分析方法:构造所用文法的预测分析表,实现方法参考书中算法描述。利用所得预测分析表采用自上而下的语法分析方法对输入串进行分析。例如,若根据书中算术表达式文法构造的预测分析表,那么对输入表达式i+i#进行语法分析,输出为分析过程:

#E #E’T #E’T’F #E’T’i #E’T’ #E’ #E’T+

i+i# i+i# i+i# i+i# +i# +i# +i#

#E’T #E’T’F #E’T’ i #E’T’ #E’ #

i# i# i# # # #

自下而上的语法分析方法:构造所用文法的算符优先关系表,实现方法参考书中程序框架。利用所得算符优先关系表采用自下而上的语法分析方法对输入串进行分析。例如,若根据书中算术表达式文法构造算符优先表,对输入表达式i+i#进行分析,输出为:

#i #N #N+

+i# +i# i#

1

#N+ i #N+ N #N

3. 语法制导翻译程序

# # #

采用书中所示的翻译模式,对语法分析正确的程序在其语法分析的基础上,进行语义翻译工作。每当分析出某语法单位时,就调用对应产生式的语义子程序,完成相应的翻译工作。例如,表达式文法各个产生式的语义动作表示如下:

E→E1+E2 E→E1*E2 E→(E1) E→i

{E.palce:=newtemp, gen(‘+’, E1.palce , E2.palce , E.palce)} {E.palce:=newtemp, gen(‘*’, E1.palce , E2.palce , E.palce)} {E.palce:= E1.palce } {E.palce:=i }

三、 进度计划

序号 设计内容 词法分析器的设计与实现 语法分析器的设计与实现 语法制导翻译器的实现 完成时间 周一 周二-周四 周五 备注 1 2 3

四、 设计(实验)成果要求

1. 词法分析器:能够接收用户录入的一段源程序,并且通过语法分析正确输出此段程序中所

包含的所有单词编码及其属性。

2. 语法分析器:对输入串进行自上而下或自下而上的语法分析,能够判断输入串是否某文法

的句子。

3. 语义分析器:对输入源语言程序进行语法制导翻译工作。每当分析出某语法单位时,就调

用相应产生式的语义子程序完成翻译工作。例如,输入i+i#,则输出为:(+, i, i, T1)

五、 考核方式

根据进度计划的时间安排统一验收所有程序。可根据学生不同的进度提前验收时间,但不可滞后。验收时由学生讲解程序设计的思路和实现方法,教师根据讲解情况提出问题。其中,词法分析程序30分,语法分析程序50分,语义分析程序20分。

学生姓名: 指导教师:李继荣

年 月 日

2


课程设计任务书.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:探伤工复习范围

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: