- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理实验文法的判断
PAGE \* MERGEFORMAT13
文法类型的判断和推导序列的生成
目录
TOC \o 1-3 \h \z \u HYPERLINK \l _Toc464988383 一、实验名称 PAGEREF _Toc464988383 \h 2
HYPERLINK \l _Toc464988384 二、实验目的 PAGEREF _Toc464988384 \h 2
HYPERLINK \l _Toc464988385 三、实验原理 PAGEREF _Toc464988385 \h 2
HYPERLINK \l _Toc464988386 1、文法G定义为四元组(Vn,Vt,P,S) PAGEREF _Toc464988386 \h 2
HYPERLINK \l _Toc464988387 2、文法类型的判断 PAGEREF _Toc464988387 \h 2
HYPERLINK \l _Toc464988388 四、实验思路 PAGEREF _Toc464988388 \h 2
HYPERLINK \l _Toc464988389 1、接受产生式 PAGEREF _Toc464988389 \h 3
HYPERLINK \l _Toc464988390 2、文法类型的判断 PAGEREF _Toc464988390 \h 3
HYPERLINK \l _Toc464988391 3、将文法以四元组形式输出 PAGEREF _Toc464988391 \h 4
HYPERLINK \l _Toc464988392 五、实验小结 PAGEREF _Toc464988392 \h 4
HYPERLINK \l _Toc464988393 1、文法类型的判断条件 PAGEREF _Toc464988393 \h 4
HYPERLINK \l _Toc464988394 2、产生式的存储问题 PAGEREF _Toc464988394 \h 5
HYPERLINK \l _Toc464988395 3、文法以四元组形式输出问题 PAGEREF _Toc464988395 \h 5
HYPERLINK \l _Toc464988396 六、附件 PAGEREF _Toc464988396 \h 5
HYPERLINK \l _Toc464988397 1、源代码 PAGEREF _Toc464988397 \h 5
HYPERLINK \l _Toc464988398 2、运行结果截图 PAGEREF _Toc464988398 \h 10
一、实验名称
文法类型的判断和推导序列的生成
二、实验目的
输入:一组任意的文法规则和任意符号串。
输出:相应的Chomsky文法类型和推导。
三、实验原理
1、文法G定义为四元组(Vn,Vt,P,S)
其中Vn为非终结符(或语法实体,或变???)集:Vt为终结符集;P为规则(α-β)的集合,α∈(Vn∪Vt)*且至少包含一个非终结符,β∈(Vn∪Vt)*;Vn,Vt和P是非空有穷集。S称作识别符或开始符,它是一个非终结符,至少要在一条规则中作为左部出现。
2、文法类型的判断
a.设G=(Vn,Vt,P,S)为一文法,若P中的每一个产生式α-β均满足
|β|=|α|,仅仅S-ε除外,则文法G是1型或上下文有关的。
b.设G=(Vn,Vt,P,S),若P中的每一个产生式α-β满足: α是一个非终结符,β∈(Vn∪Vt)*,则此文法称为2型的或上下文无关的。
c. 设G=(Vn,Vt,P,S),若P中的每一个产生式的形式都是A-αB或A-α,其中A和B都是终结符,α∈Vt*,则G是3型文法或正规文法。
四、实验思路
本实验采取C++来完成,用大写字母A到Z表示非终结符,小写字符a到z表示终结符。
实验流程图
1、接受产生式
首先建立一个结构体siyuanzu,其成员有非终结符集合数组Vn,终结符集合数组Vt以及产生式集合数组rule,通过函数input来接受从键盘输入的产生式,并且存储于string类字符串数组rule中。函数input实现接受产生式功能的思路为:先确定要输入的产生式数目n,用for循环实现产生式的存储。
2、文法类型的判断
函数Grammer实现判断文法类型的功能并且输出文法的类型。其实现功能的思路为:
a.对rule数组中每一个产生式进行判断,以“-”中的“-
您可能关注的文档
最近下载
- 有趣的心理学课件.ppt VIP
- LabVIEW软件在锂电池故障模拟检测系统的设计与开发.docx VIP
- 木结构建筑防火性能分析.pptx VIP
- 第8章 剥蚀厚度与埋藏史和埋藏史恢复方法.ppt
- 05J909:工程做法国标 行业图集.pdf VIP
- 浙江省杭州市临平区2024−2025学年七年级上学期分班考 数学试题(7月份)(含解析).docx VIP
- 2024-2025学年江苏省苏州市星海实验中学高一(上)期中考试物理试卷(含答案).docx VIP
- 右心衰竭患者麻醉指南.pptx
- 销售人员必备山东省滨州市惠民县医疗机构分布明细.pdf VIP
- 销售人员必备山东省滨州市阳信县医疗机构分布明细.pdf VIP
文档评论(0)