- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计报告
( 2010 -- 2011年度第 1 学期)
名 称:编译技术课程设计B
题 目:词法分析器设计
算符优先分析程序设计
基于算符优先分析方法的语法制导翻译程序设计
院 系: 计算机系一、课程设计《》1所示,单词符号中标识符由一个字母后跟多个字母、数字组成,常数由多个十进制数字组成。单词符号的内部表示,即单词的输出形式为二元式:(种别编码,单词的属性值)。
表1-1 单词符号及其内部表示
单词符号 种别编码 单词的属性值 BEGIN
IF
THEN
ELSE
END
标识符
整型常数
+
*
**
(
) 1
2
3
4
5
6
7
8
9
10
11
12 —
—
—
—
—
在名字表中的地址
十进制整数
—
—
—
—
— 2.算符优先分析程序设计的目的和要求
2.1 算符优先分析程序设计的实验目的《》”结尾),如果输入串是句子则输出“YES”,否则输出“NO”和错误信息。
算符优先分析过程与非终结符号无关,当由文法产生了优先关系之后文法也就失去了作用,本题目给出文法的目的是为了便于对语法分析结果进行验证。
(1)文法 设算符优先文法为:
说明:i为整型常数或者为标识符表示整型变量;使用中↑用**表示。
(2)优先关系表 设优先关系表如表1-2所示。
表1-2 优先关系表
+ * ↑ i ( ) # + * ↑ i ( ) # 3.基于算符优先分析方法的语法制导翻译程序设计的目的和要求
3.1 基于算符优先分析方法的语法制导翻译程序设计的实验目的《》”结尾),如果输入符号串是句子,则按照其语义进行翻译,输出等价的四元式序列(作为练习应显示输出)。
二、课程设计正文
词法分析器设计
1.1 以文件流的方式对词法进行输入句子。
1.2 标识符和常数的属性值
(1)标识符和常数的属性值为该单词在名次表或常数表中登机项的相对地址;
(2)当识别出一个标识符或常数时,要查名字表或常数表,若表中有其登记项,则把得到的登记项地址作为其属性值;
(3)若表中没有其登记项,则建立一个新登记项,该登记项地址作为其属性值,此处的地址为在表中的下标。
1.3 主要数据结构
(1)属性类Dog,内含某一单词的显示字符串和类别,类别包括关键字、标识符、常数;
(2)输入缓冲区Buffer[100],类型为字符型;
(3)关键字表Letter[],类型为Dog;
(4)标识符表Varible[],类型为Dog,存储在句子中出现过的标识符;
(5)常数表Constant[],类型为Dog,存储在句子中出现过的常数;
(6)设置全局变量b,v,c,l记录输入缓冲区、标识符表、常数表、关键字表的当前最后一个指针。
1.4 词法错误处理:出错则显示错误所在字符位置。
算符优先分析程序设计
2.1 以文件流的方式对词法进行输入句子。
2.2 主要数据结构
(1)优先关系表XX[],全局变量,事先设定;
(2)分析栈类Stack,内含数组array[]存储终结符号、“#”、非终结符N,和数组array[]的长度size;
(3)数组str[],用于存放输入字符串。
2.3 算法主要使用两个while嵌套循环,外层为当前字符a不为#则继续,内层循环当前字符a与其后一个终结符的相对优先关系为大于时,则进行规约,否则执行移入操作;
2.4 当分析栈中进入‘#’,且分析栈中只剩三个字符时,表示分析成功,否则失败。
2.5 出错则显示错误所在字符位置。
基于算符优先分析方法的语法制导翻译程序的设计
3.1 该实验算法是在第二个实验的基础上,将规约后产生的N变为临时变量Ei或中间变量Ti,当产生中间变量的四元式时,则输出该四元式。
3.2 为实现算法,这里用到词法分析的思想,将输入字符串先通过词法分析,转化为各单词的属性值或地址值。此做法便于实现数组的输出和查看。
三、课程设计附录()#includeiostream
#includestdlib.h
#include ctype.h
#includestring.h
using namespace std;
char strToken[20];//存当前构成字符串
class Dog
{
char info[20];
int race;
public:
Dog(char cc[20],int rr)//构造函数
您可能关注的文档
- 《软件工程》课程设计报告-网上书店销售管理系统.doc
- 《软件工程》课程设计报告-员工培训管理系统分析与设计.doc
- 《数据库原理与应用》课程设计报告-仓库管理系统.doc
- 《数据库原理与应用》课程设计论文-中小学教学管理系统数据库设计.doc
- 《数据库原理与应用》课程设计-影碟出租数据库系统设计与实现.doc
- 《数字电子电路》课程设计-简易数显电子钟设计.doc
- 《数字电子技术》课程设计-交通信号灯控制电路的设计与仿真.doc
- 《数字电子技术基础》课程设计-电子秒表电路的设计.doc
- 《数字电子技术基础》课程设计说明书-简易电子琴的设计与制作.doc
- 《数字通信系统》课程设计-FSK调制通信系统设计.doc
最近下载
- 22G101 三维彩色立体图集.docx VIP
- 2025年部编版四年级下册道德与法治全册教案教学设计[WORD最新带板书带目录.pdf VIP
- 8D报告案例模板.ppt VIP
- 工程结算审核实务:重点难点解析及解决方案.docx VIP
- 重大活动应急预案.docx VIP
- DB34T4021-2021《城市生命线工程安全运行监测技术标准》.docx VIP
- 宁波市2023年小学生科普知识学习体验活动-高段组(参考答案) .pdf VIP
- 拼装式施工灯架制作和安装工艺.pdf VIP
- 青岛宏丰聚三氟氯乙烯及氟碳乳液合成工艺问世.pdf VIP
- 江苏省南通市2024-2025学年八年级下学期期末物理试题.pdf VIP
文档评论(0)