- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二、语法分析器(源代码)课案
语法分析实验报告
一、实验目的:
1. 了解单词(内部编码)符号串中的短语句型结构形成规律。
2. 理解和掌握语法分析过程中语法分析思想(LL,LR)的智能算法化方法。
二、实验内容:
构造自己设计的小语言的语法分析器:
1. 小语言的语法描述(语法规则)的设计即文法的设计;
2. 把文法形式符号中所隐含的信息内容挖掘出来并用LL或LR的资料形式(分析表)表示出来;
3. 语法分析的数据输入形式和输出形式的确定;
4. 语法分析程序各个模块的设计与调试。
主要设备和材料:电脑、winxp操作系统、VC语言系统
三、实验步骤:
1、语法规则
① 程序 ::= {变量定义语句 | 赋值语句 | 条件语句 | 循环语句 }
② 变量定义语句 ::= var 变量{,变量};
③ 赋值语句 ::= 变量 := 表达式;
④ 表达式 ::= 标识符{运算符 标识符 };
⑤ 标识符 ::= 变量 |常量
⑥ 运算符 ::= + | - | * | / | = | =
⑦ 条件语句 ::= if语句[else语句]
⑧ if语句 ::= if(表达式) then[begin] {赋值语句 |条件语句 | 循环语句}[end]
⑨ else语句 ::= [begin] {赋值语句 | 条件语句 | 循环语句} [end]
⑩ 循环语句 ::= while(表达式) [begin] {赋值语句 | 条件语句 | 循环语句} [end]
输出语句 ::= prn 表达式
--注1:若if语句、else语句、循环语句中出现begin,后面的end必须出现,即begin与end同对出现
--注2:if、while后的(,)表示终结符,而不是定义成分优先的说明符号
2、分析表:
: = 变量 常量 , ; 运算符 ( ) 变 量
定 义
-②
-②
-②
-② 赋 值
语 句
-③
-③
-③
-③
-③ 条 件语 句
-⑦
-⑦
-⑦
-⑦
-⑦
-⑦
-⑦ 循 环语 句
-⑩
-⑩
-⑩
-⑩
-⑩
-⑩
-⑩ 输 出语 句
-
-
- 分析表(续):
while var begin end if then prn 变 量 定 义 -② 赋 值 语 句 条 件 语 句 -⑦ -⑦ -⑦ -⑦ 循 环 语 句 -⑩ -⑩ -⑩ 输 出 语 句 - 调试和测试
四、实验总结:
本实验在词法分析的基础上,对提取出的标识符进行语法判断。对已有的语法规则运用LL(1)文法判别并进行构造分析表时,遇到的最大困难是:当发生规约冲突时,该如何处理。如对于产生式s--aAb,当对a进行规约时,满足语法规则的β(用户输入串中当前要进行规约的标识符)只有有限种,而不满足的却有无限种情况。当发生规约冲突时,如何在这无限种情况中,确定冲突的具体信息,以便用户查找。在反复的尝试和验证中,我们发现发生冲突的用户输入串满足一定的规律,且按这种规律可以把这无限种情况化归为有限类,于是我们找出其中规律并进行划分,然后再对这些有限类冲突进行处理。
五、实验心得:
通过这次实验有以下几点收获:
1. LR(1)的构造使得对理论的知识理解的更加透彻。其中LR(1)分析表构造了很多遍,一直无法得到正确结果,这是恒心的考验。
2. 在写程序中用类数组来存放单词属性使得对单词各项值的调用更加方便,特别是对出错信息的检测有很大的作用。
3. 本实验是在词法基础上的更进一步,在词法程序上添加语法程序,更加理解二者之间的关系。词法分析为语法分析提供了词法单元,方便分析,使程序模块化,易于读懂。
六、附录:
#include iostream
#include fstream
#include string
#include math.h
#include ctype.h
#include cstdlib
using namespace std;
#define Max 655 //最大代码长度
#define WordMaxNum 256 //变量最大个数
#define DigitNum 256 //常量最大个数
#define MaxKeyWord 32 //关键字数量
#define MaxOptANum 8 //运算符最大个数
#define MaxOptBNum 4 //运算符最大个数
#define MaxEndNum 11 //界符最
您可能关注的文档
- 增值税发票查询平台常见问题及解决方案(6月第一期).docx
- 实验2空间数据库及属性编辑实习报告.docx
- 增值税练习题及答案.doc
- 实验2眼图观察测量实验.docx
- 安防工程-红外栅栏方案.doc
- 实验2:高桩及板桩试验.doc
- 实验2属性数据的输入.doc
- 实验3-顺序、选择结构.doc
- 增压涡轮的焊接工艺设计.doc
- 实验3数据库的安全性控制与Connection连接.doc
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
最近下载
- 江苏省扬州市扬州中学2023-2024学年高一上学期12月月考数学试题(含答案解析).docx
- 2024年国家电网招聘之财务会计类题库附参考答案(轻巧夺冠).docx
- 恶性肿瘤放疗患者营养治疗专家共识解读PPT课件【31页】.pptx VIP
- 江苏省海门市高一上学期期末考试(数学).doc
- PowerVision臻迪无人机PowerEgg用户手册.pdf
- 蓝海华腾变频器说明书.pdf
- 幼儿园小班家访记录表.pdf
- 江苏省扬州市邗江中学2019-2020学年高一上学期期中数学试题(解析版).pdf VIP
- 第一讲数字集成电路质量评价.ppt
- 辽宁省沈阳市浑南区2022-2023学年九年级上学期10月月考物理试题(含答案).pdf VIP
文档评论(0)