- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
題目:预测分析法
一、试验目的
1、通过试验要学会用消除左递归和消除回溯的措施来使文法满足进行确定自顶向下分析的条件;
2、学会用C/C++高级程序设计語言编写一种LL(1)分析法程序
二、试验内容及规定
LL(1)预测分析程序的总控程序在任何時候都是按STACK栈顶符号X和目前的输入符号a做哪种过程的。对于任何(X,a),总控程序每次都执行下述三种也許的动作之一:
(1)若X=a=‘#’,则宣布分析成功,停止分析过程。
(2)若X=a‘#’,则把X从STACK栈顶弹出,让a指向下一种输入符号。
(3)若X是一种非终止符,则查看预测分析表M。若M[A,a]中寄存着有关X的一种产生式,那么,首先把X弹出STACK栈顶,然后,把产生式的右部符号串按反序一一弹出STACK栈(若右部符号為ε,则不推什么东西进STACK栈)。若M[A,a]中寄存着“出錯标志”,则调用出錯诊断程序ERROR。
1、給定文法
S-a|b|(T)
T-SH|d
H-,SH|ε
2、该文法对应的预测分析表
A
b
(
)
,
#
S
S-a
S-b
S-(T)
T
T-SH
T-SH
T-SH
H
H-ε
H-,SH
3、编写预测分析程序对句子进行分析
三、试验程序设计阐明
1、有关函数阐明
分析栈可以采用許多的存储措施来设计,在这里采用的次序栈。根据预测分析原理,LL(1)分析程序的实現关键在于分析栈和分析表是采用何种数据构造来实現。分析表是一种矩阵,当我們要调用分析表来分析時,就根据栈顶的非终止符和目前输入的终止符来决定执行哪种过程。详细设计思想如下:
printStack()输出分析栈内内容;printinputString()输出顾客输入的字符串;Pop()弹出栈顶元素;Push()向栈内添加一种元素;Search()查找非终止符集合VT中与否存在输入的非终止符;yuCeFenXi()进行输入串的预测分析的主功能函数;M(charA,chara)查看预测分析表M[A,a]中与否存在对应产生式。
2、程序流程图
把符号
把符号’#’和文法符号依次推进stack栈
FLAG置為TRUE
FLAG=TRUE?
把栈顶符号上托出去并寄存在X中
把第一种符号读进a
X為终止符?
X=a?
錯误处理
把下一输入符号读进a
X=‘#’?
X=a
FLAG=FALSE
錯误处理
运用分析表分析
T
F
F
F
F
F
T
T
YES
T
T
开始
結束
四、试验成果
語法分析的任务就是识别詞法分析程序输出的单詞序列与否為給定措施的对的句子。目前我們若从键盘上输入的是有对的的句子,例如:(a,a)#,显示“success”。运行成果如下:
五、试验小結
本次试验完毕了語法分析-预测分析法的实現过程,通过本次试验巩固了此前所学过的知识,对語法分析有了更深入的理解,掌握了预测分析法的原理及其实現过程。
附:#includestdio.h
#includestring.h
charinputString[10];
charstack[10];
intbase=0,top=1;
charVT[6]={a,b,(,),,,d};/*用来寄存6个终止符*/
charchanShengShi[10];/*用来寄存预测分析表M[A,a]中的一条产生式*/
intfirstCharIntex=0;/*firstCharIntex用来寄存顾客输入串的第一种元素的下标*/
intM(charA,chara);
voidinit()
{
inti;
for(i=0;i10;i++)
{
inputString[i]=NULL;/*初始化数组*/
stack[i]=NULL;/*初始化栈*/
chanShengShi[i]=NULL;/*初始化数组*/
}
printf(\t\t1文法G[S]:);/*输出文法做為提醒*/
printf(\n\t\t\tS-a|b|(T)\n);
printf(\t\t\tT-SH|d\n);
printf(\t\t\tH-,SH|ε\n);
printf(\t\t2该文法对应的预测分析表:\n);
printf(\t\t|a|b|(|)|,|#|\n);
printf(\t\tS|S-a|S-b|S-(T)||||\n);
您可能关注的文档
- 2025年孙权劝学精华考点梳理与备考攻略.doc
- 2025年软件工程师招聘笔试真题及高频考点解析.docx
- 2025年皮肤基础知识精华试题集锦 何宗军解析.docx
- 2025年通信工程师资格考试高分复习攻略.doc
- 2025年仪表自动化工程师必备题库与实战演练集锦.docx
- 2025年监理工程师执业资格考试报名及审核流程指南.doc
- 2025年必威体育精装版基础会计职业技能测评大纲解析.docx
- 2025年特种设备加工技能认证考题精选集.doc
- 2025年内燃机性能测试实验综合分析报告.doc
- 2025年小学三年级重点科目模拟试题集锦.doc
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
最近下载
- 2025年新人教版数学一年级下册课件 第四单元 100以内的口算加、减法 2.口算减法 第3课时 解决问题.pptx
- 汉源__感动服务培训课程讲义.pptx
- 2025广西南宁市高三二模“坚守与发现:平凡中的非凡价值”审题立意及范文-备战2025年高考语文各地名校模考卷作文导写.docx
- 液压站讲义原理图.pptx
- 浙教版数学八年级下册第3章 数据分析初步 综合素质评价(含答案).docx VIP
- 2024年数控铣工(中级)技能鉴定考试题库资料-上(单选题汇总).pdf
- 闪电战及其应付之策.pdf VIP
- 2025高考化学一轮复习之物质结构与性质(解答大题).doc
- 2025年中央八项规定专题党课讲稿四篇.docx VIP
- 医院护工培训课件.ppt
文档评论(0)