- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录
第一章 概述.....................................................1
1.1设计内容....................................................1
1.2设计要求....................................................1
第二章 设计的基本原理............................................2
2.1算法分析..................................... ...............2
2.2错误处理....................................... .............3
第三章 程序设计..................................................4
3.1总体方案设计.................................................4
3.2各模块设计...................................................6
第四章 程序测试...................................................7
第五章 结论.......................................................11
附录 程序清单...................................................11
第一章 概述
1.1设计内容i # + * ( = e1 ) e2 e2 i e2 e2 # e3 e4
可以根据已知的文法G和优先关系表编写带出错处理的算符优先分析算法程序。对输入的符号串进行“移进—归约”,若有错误出现,则进行错误处理,指出错误原因。当归约到“#E#”时则分析完毕,实现了该算法。
1.2设计设计的基本原理 其中,每个都是终结符,是可有可无的非终结符。换言之,句型中含有n个终结符,任何两个终结符之间顶多只有一个非终结符。一个算法优先文法G的任何句型的最左素短语是满足如下条件的最左字串,
根据这个定理,可以构造算法优先算法。设使用一个符号栈S,既用它寄存终结符,也用它寄存非终结符。下面的分析算法是直接根据这个定理构造出来的,其中k代表符号栈S的使用深度。
k:=1;
S[k]:= ‘#’;
REPEAT
把下一个输入符号读进a中;
IF S[k] THEN j:=k ELSE j:k-1;
WHILE S[j] a DO
BEGIN
REPEAT
Q:=S[j];
IF S[j-1] THEN j:j-1 ELSE j:j-2
UNTIL S[j] Q;
把S[j+1]…S[k]归约为某个N;
k:=j+1;
S[k]:=N;
END OF WHILE;
IF S[j] a OR s[j] = a THEN
BEGIN k:=k+1; S[k]:=a END
ELSE ERROR /* 调用出错诊察程序 */
UNTIL a = ‘#’
在上述算法的工作过程中,若出现j减1后的值小于等于0时,则意味着输入串有错。在正确的情况下,算法工作完毕时,符号栈S应呈现:# N #
算法优先分析一般并不等价于规范归约。在算法优先归约过程中,我们无法用那些右部仅含一个一个非终结符的产生式进行归约。对该文法G的句子i+i,按算法优先分析法,归约过程是:先把第一个i归为F,然后把第二个i也归约为F,最后把F+F直接归约为E。在此过程中,单非产生式对归约没有发挥作用。
错误处理
算符优先分析中的出错处理:
如 + 或 * 被归约,则检查其两端是否出现非终结符。否则,打印错误信息:“缺表达式”。
如i被归约,则检查其左端或右端是否有非终结符。如果有,则给出信息:“表达式间无运算符联结”。
如()被归约,则检查是否在括号间有一非终结符。如果没有,则给出信息:“括号间无表达式”。
根据优先关系表中的e1,e2,e3,e4可以调用错误处理子程序。
e1: /*当表达式以左括号结尾时,调用此程序*/ 将‘(’
您可能关注的文档
最近下载
- GB_T 15587-2023 能源管理体系 分阶段实施指南(OCR).pdf VIP
- SMS-C-15各岗位船员安全管理职责要点 .pdf VIP
- 风机设备吊装专项施工方案(终版).doc VIP
- 东芝电梯CV620电梯电气图纸.pdf VIP
- 美团地推销售流程.pptx
- 关于贯彻落实中央八项规定实施细则的办法.docx VIP
- 一种采用LC-MS检测低分子肝素中寡糖含量的方法及应用.pdf VIP
- 2023-2024学年四川省泸州市泸县五中初中教育共同体八年级(下)期中数学试卷(含详解).pdf VIP
- 钢筋原材料试验自动计算.xls VIP
- 农产品食品检验员职业技能竞赛理论考试题库(含答案).docx VIP
文档评论(0)