| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

语法分析预测分析方法

文***品

贡献于2023-05-31

字数:7905

实验21 语法分析—预测分析方法
实验目
预测分析方法编制分析程序实现词法分析程序提供单词序列语法检查结构分析解预测分析法递子程序法区联系培养动手实践力
二实验容
预测分析法分析段程序代码果符合文法定义程序输出否输出否
预测分析递子程序顶分析方法里出回溯左公子文法左递左公子BNF:
<程序>→<程序首部><分程序>
<程序首部>→PROGRAM 标识符
<分程序>→<常量说明部分><变量说明部分><程说明部分><复合语句>
<常量说明部分>→CONST<常量定义><常量定义缀>|ε
<常量定义>→标识符符号整数
<常量定义缀>→ <常量定义><常量定义缀>|ε
<变量说明部分>→VAR<变量定义><变量定义缀>|ε
<变量定义>→标识符<标识符缀><类型>
<标识符缀>→标识符<标识符缀>|ε
<变量定义缀>→<变量定义><变量定义缀>|ε
<类型>→INTEGER|LONG
<程说明部分>→<程首部><分程序><程说明部分缀>|ε
<程首部>→PROCEDURE 标识符<参数部分>
<参数部分>→(标识符<类型>)|ε
<程说明部分缀>→<程首部><分程序><程说明部分缀>|ε
<语句>→<赋值调语句>|<条件语句>|<型循环语句>|<读语句>|<写语句>|<复合语句>
<赋值调语句>→标识符<缀>
<缀>→<表达式>|(<表达式>)|ε
<条件语句>→IF<条件>THEN<语句>
<型循环语句>→WHILE<条件>DO<语句>
<读语句>→READ (标识符<标识符缀>)
<写语句>→WRITE (表达式<表达式缀>)
<表达式缀>→ <表达式><表达式缀>|ε
<复合语句>→BEGIN <语句><语句缀>END
<语句缀>→ <语句><语句缀>|ε
<条件>→ <表达式><关系运算符><表达式>|ODD<表达式>
<表达式>→+<项><项缀>|<项><项缀>|<项><项缀>
<项缀>→<加型运算符><项><项缀>|ε
<项>→<子><子缀>
<子缀>→<型运算符><子><子缀>|ε
<子>→标识符|符号整数|(<表达式>)
<加型运算符>→+|
<型运算符>→*|
<关系运算符>→|<>|<|<|>|>
非终结符终结符起存入栈非终结符码128开始标记表:
表1 终结符种码表
种码
单词
种码
单词
种码
单词
种码
单词
1
PROGRAM
2
CONST
3
VAR
4
INTEGER
5
LONG
6
PROCEDURE
7
IF
8
THEN
9
WHILE
10
DO
11
READ
12
WRITE
13
BEGIN
14
END
15
ODD
16
+
17

18
*
19

20

21
<>
22
<
23
<
24
>
25
>
26

27

28

29

30

31
(
32
)
33
符号整数
34
标识符
35
#


表2 非终结符函数名表
非终结符
函数名
非终结符
函数名
<程序>
program
<程序首部>
proghead
<分程序>
block
<常量说明部分>
consexpl
<常量定义>
consdefi
<变量说明部分>
varexpl
<常量定义缀>
conssuff
<变量定义>
vardefi
<变量定义缀>
varssuff
<程说明部分>
procdefi
<类型>
typeil
<程首部>
procedh
<程说明部分缀>
procsuff
<赋值调语句>
assipro
<语句>
sentence
<缀>
suffix
<条件语句>
ifsent
<读语句>
read
<型循环语句>
whilesent
<标识符缀>
idsuff
<写语句>
Write
<复合语句>
compsent
<表达式缀>
Exprsuff
<语句缀>
sentsuff
<条件>
Conditio
<项缀>
termsuff
<表达式>
Express
<项>
term
<子缀>
Factsuff
<参数部分>
argument
<子>
Factor
<加型运算符>
addoper
<型运算符>
Muloper
<关系运算符>
respoper

三完整源程序代码
#include
#include
#include
#include
#include
#define lenth1 15
#define lenth2 18

*规表*
int rule[][6]{
{0} 空
{129130260} 程序首部分程序
{134280} program 标识符
{1311341381500}常量说明部分变量说明部分程说明部分复合语句
{2132133280} const 常量定义常量定义缀
{0}
{3420330} 标识符 符号整数
{271321330} 常量定义常量定义缀
{31351360} var 变量定义变量定义缀
{3414729137280}标识符标识符缀:类型
{27341470} 标识符标识符缀
{1351360} 变量定义变量定义缀
{40} integer
{50} long
{139130281400}程首部分程序程说明部分缀
{634158280} procedure 标识符参数部分
{1420} 赋值调语句
{1440} 条件语句
{1450} 型循环语句
{1460} 读语句
{1480} 写语句
{1500} 符合语句
{341430} 标识符缀
{301530} :表达式
{715281410} if 条件then 语句
{9152101410} while 条件do 语句
{113134147320}read (标识符标识符缀)
{1231153149320}write (表达式表达式缀)
{271531490} 表达式表达式缀
{13141151140} begin 语句语句缀end
{281411510} 语句语句缀
{1531611530} 表达式关系运算符表达式
{151530} odd 表达式
{161551540} + 项项缀
{171551540} 项项缀
{1551540} 项项缀
{1591551540} 加型运算符项项缀
{1571560} 子子缀
{1601571560} 型运算符子子缀
{340} 标识符
{330} 符号整数
{31153320} (表达式)
{26330} 符号整数
{160} +
{170}
{180} *
{190}
{200}
{210} <>
{220} <
{230} <
{240} >
{250} >
{313429137320} 标识符:类型)
}

*预测分析表非零元素*
int pretable[][3]{{12811}{12912}{13023}{13033}
{13063}{130343}{13073}{13093}{130113}{130123}
{130133}{130263}{130283}{13124}{13135}{13165}
{131345}{13175}{13195}{131115}{131125}{131135}
{131265}{131285}{132346}{133277}{133285}{13438}
{13465}{134345}{13475}{13495}{134115}{134125}
{134135}{134265}{134285}{135349}{13665}{136135}
{1363411}{136285}{137412}{137513}{138614}{138345}
{13875}{13895}{138115}{138125}{138135}{138265}
{138285}{139615}{140614}{140345}{14075}{14095}
{140115}{140125}{140135}{140265}{140285}{1413416}
{141717}{141918}{1411119}{1411220}{1411321}{141145}
{141265}{141285}{1423422}{1433023}{1433141}{143285}
{143285}{143145}{143265}{143145}{144724}{145925}
{1461126}{1472710}{147295}{147325}{1481227}{1492728}
{149325}{1501329}{150265}{150285}{1512830}{151145}
{151265}{1512830}{1523431}{1521631}{1521731}{1523431}
{1523331}{1523131}{1521532}{1533435}{1531633}{1531734}
{1533435}{1533335}{1533135}{1541636}{1541736}{15485}
{154105}{154145}{154205}{154215}{154225}{154235}
{154245}{154255}{154265}{154275}{154285}{154325}
{1553437}{1553337}{1553137}{1561838}{1561938}
{15685}{156105}{156145}{156165}{156175}
{156205}{156215}{156225}{156235}{156245}
{156255}{156265}{156275}{156285}{156325}
{1573439}{1573340}{1573141}{1583153}{158285}
{1591643}{1591744}{1601845}{1601946}{1612047}
{1612148}{1612249}{1612350}{1612451}{1612552}{000}}

struct st
{
char name[21]
int code
}sym

struct
{
char name[21]
int type
int addr
}indent[1000] *标识符表*

int table[34][35]
FILE *f1 *f1输入文件指针*
int line1row1val
int lenth0

void getsym()
char getchr()
void error(int n)

void main(int argcchar *argv[])
{
if ((f1fopen(C\\Documents and Settings\\Administrator\\桌面\\编译\\测试txtr))NULL)
{
printf(cannot open the file\n)
exit(0)
}
int stack[2000]
int ijxtop1flag1
i0

while(pretable[i][0])*非零元素置预测分析表*
{
table[pretable[i][0]128][pretable[i][1]]pretable[i][2]
i++
}

*#号识符号程序入栈*
补充执行语句
stack[++top]35

stack[++top]128

补充执行语句
getsym()

while(flag)
{
xstack[top] *取栈顶符号*
if(x>128) *x非终结符*
{
if(table[x128][symcode])*果该预测分析表元素空计算规长度规反序入栈*
{
i0
while(rule[table[x128][symcode]][i])
{
i++
}
for(ji1j>0j)
{
stack[++top]rule[table[x128][symcode]][j]
}
}
else error(100)
}
else if(x<35) *x终结符#*
{
if(xsymcode) *栈顶元素输入元素匹配*
{
if(x35)补充判断条件
*栈顶元素输入元素匹配时判断否#结束否继续*
flag0
else
getsym()
}
else
error(101)
}
else
error(102) *栈顶元素输入元素匹配时出错*
}
fclose(f1)
printf(the program is right\n)
system(pause)
}

void getsym()
{
static char a[lenth1][10]{programconstvarintegerlongprocedureifthenwhiledoreadwritebeginendodd}d[lenth2][3]{+*<><<>>()}str[21]ch' '
int in
while(isspace(ch))
chgetchr()
if(isalpha(ch))
{
n0
while(isalpha(ch)||isalnum(ch))
{
if(isalpha(ch))
chtolower(ch)
if(n<20)
str[n++]ch
chgetchr()
}
str[n]'\0'
for(i0i if(strcmp(stra[i]))
break
if(i {
strcpy(symnamea[i])
symcodei+1
}
else*否标识符检查标识符表中否已登记该标识符没登记填表*
{
for(i0i if(strcmp(strindent[i]name))
break
if(ilenth)
strcmp(indent[i]namestr)
strcpy(symnameindent[i]name)
补充执行语句
symcode34
}
}
else if(isalnum(ch))
{
val0n0
while(isalnum(ch))
{
valval*10+ch'0'
symname[n++]ch
chgetchr()
}
symname[n]'\0'
symcode33
}
else
{
if(ch'+'||ch''||ch'*'||ch''||ch''||ch''||ch''||ch''||ch'('||ch')')
{
str[0]ch
str[1]'\0'
chgetchr()
for(i0i {
if(strcmp(strd[i]))补充判断条件
{
strcpy(symnamestr)
symcodei+16
}
}
}
else
{
n0
if(ch'>'||ch'')
{
str[n++]ch
if((chgetchr())'')
{
str[n++]chchgetchr()
}
}
else
{
if(ch'<')
{
str[n++]chchgetchr()
if(ch''||ch'>')
{
str[n++]chchgetchr()
}
}
else if(ch1)
{
strcpy(symname)
symcode35
return
}
else
{
error(1)
}
}
str[n]'\0'
for(i0i {
if(strcmp(strd[i]))
{
strcpy(symnamestr)
symcodei+16
}
}
}
}
}

char getchr()
{
char chfgetc(f1)
if(ch'\n')
{
row1
line++
}
else
if(ch' '&&ch'\t')
row++
return(ch)
}

void error(int n)
{
printf(There are d error\n n)
exit(0)
}

四结果运行
(1)输入:program a
begin
end#
输出:the program is right







(2)输入:program test2
const a34b90
输出:There are 100 error


(3)输入:program test3
procedure test
const s3
输出:There are 100 error

(4)输入:program test
if a>b then a6
end#
输出:There are 100 error























(5)输入:program s
begin
if sym'+' then
begin
s'
advance
end
else error
输出:There are 100 error

五两种方法较分析
谓递降法指文法非终结符号根相应产生式候选式结构编写子程序 (函数)识该非终结符号表示语法范畴
预测分析方法求文法必须LL(1)文法相较递降分析方法说更难
计算机班
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

编译原理语法分析实验报告

编译原理语法分析实验报告软工班一、 实验内容二、 实验目的三、 实验要求四、 程序流程图l 主函数;l scanner();l irparser()函数l yucu() /*语句串分析*/l statement()/*语句分析函数*/l expression()/*表达式分析函数*/l term()/*项分析函数*/ l factor()/*因子分析函数*/五、 程

文***享 2年前 上传944   0

物流预测方法汇编

(事实上,需求预测必须将短期需求预测或生产进度安排与长期战略性需求预测有机结合起来,才会真正地起作用。短期预测是根据存储单位(SKU)水平做出的,它与销售、客户关系,以及依据预订库存或安排运输来实施计划的系统和软件等相互作用。相比之下,长期预测则是在更为集中的基础上作出的。在月度或季度时间段内,对一系列产品的生产做出预测,作为财务和产能计划的输入数据。长期预测必须在现有客户信息之外假设需求状况,

张***子 11年前 上传682   0

词法分析与语法分析程序设计

l 实验三 词法分析与语法分析程序设计一.实验目的基本掌握计算机语言的词法分析程序和语法分析程序的设计方法。二.实验要求、内容及步骤实验要求:1.根据以下的正规式,画出状态图;标识符:<字母>(<字母>|<数字字符>)*关键字:if then else while do十进制整数:0 | (1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*

文***品 1年前 上传281   0

编译原理实验3-4预测分析表方法

实验3-4 预测分析表方法班级:_ _ 学号:_ _ 姓名:_ _ 得分:_ _一、实验目的理解预测分析表方法的实现原理。二、实验内容: 编写一通用的预测法分析程序,要求有一定的错误处理能力,出错后能够使程序继续运行下去,直到分析过程结束。可通过不同的文法(通过数据表现)进行测试。 二、实验内容提示1.算法数据构造:

z***u 1年前 上传317   0

2018年建筑能耗预测项目管理方法研究分析博士开题报告

建筑能耗预测项目管理方法研究分析博士开题报告  博士开题报告——我国建筑能耗预测项目管理方法研究分析  1研究背景及意义  1.1研究背景  西方发达国家在其发展过程中无节制地使用能源,直到20世纪70年代石油大幅度涨价使世界经济遭受到能源危机的沉重打击,世界各个国家才重视能源问题。由于能源资源条件的限制,新能源的开发在短期内也难以缓解能源供应的紧张局面,许多国家都把注意力集中在

m***w 6年前 上传529   0

6.项目分析预测

项 目 分 析 预 测 规划 设计单位 环境 单体设计 房型 建材 周边商配 合计 10% 0% 5% 10% 25% 4% 3% 会所 小区配套 人气 品牌效应 人文环境 地理位置 竞争个案 100% 20% 10% 4% -13% -8% 25% 5% BOBO汇馆权重比分析预测 分析: 规 划:从BOBO汇

亦***轩 10年前 上传10292   0

市场调查、预测、分析

市场调查、预测、分析  某地场调查、预测、分析:某地场调查、预测、分析也叫“某地场调查报告“,是指某地场对购买欲望和动机、对商品(或企业)的意见和要求及对商品价格浮动的文字材料。  格式:1.标题。  2.正文:前言、主文(情况、预测、分析、建议)和结语。  3.结尾:调查单位、调查人签名、调查时间等。  范例:  日本的果酱某地场  近年来日本果酱某地场容量稳定,每

l***g 9年前 上传884   0

44 人力资源规划内容与预测方法

人力资源规划内容与预测方法   (一) 预测未来的组织结构     一个组织或企业经常随着外部环境的变化而变化,如全球市场的变化,跨国境应的需要,生产技术的突破,生产设备的更新,生产程序的变更,新产品的问世等。这些变化都将影响整个组织结构,即组织结构必须去适应企业经营策略的变化。而经营策略的变化又因环境变化而产生。而组织结构的变化必然牵涉到人力资源的配置。因此,对未来组织结构的预测评估应列为

Z***O 14年前 上传11031   0

关于工作分析的方法

关于工作分析的方法 1、工作分析的作用工作分析是重要的管理基础工作,阐明工作的任务、职责、及任职条件等内容,作为人员聘任、职位评价、绩效评估、职级设计以及薪资结构设计的基础。帮助改进公司的组织结构与工作系统。其作用体现在四个方面:① 组织决策过程(包括组织结构、组织计划、组织政策等);② 工作与设备设计(包括工作设计、设备设计、工作方法设计、操作规程、工作安全、规章

z***i 9年前 上传768   0

关于工作分析的方法

关于工作分析的方法 1、工作分析的作用 工作分析是重要的管理基础工作,阐明工作的任务、职责、及任职条件等内容,作为人员聘任、职位评价、绩效评估、职级设计以及薪资结构设计的基础。帮助改进公司的组织结构与工作系统。 其作用体现在四个方面: 1 组织决策过程(包括组织结构、组织计划、组织政策等); 2 工作与设备3 设计(包括工作设计、设备4 设计、工作方法设计、操作规程、工作安

喵***n 13年前 上传18960   0

煤炭产业形势分析及预测

**县2009年煤炭产业形势分析及预测 县委、政府: 2008年全县61个煤矿(不含斑煤司2个矿)生产原煤157.6万吨。2009年我县大部份煤矿安全生产许可证到期(47个,占77%),目前省政府没有延证的相关政策。煤炭资源整合方案进入实施阶段,整合后的煤矿储量核实及矿权设置工作进展十分缓慢,这些因素将严重制约我县煤炭经济发展,同时安全生产形势和安全监管将面临更加严峻的挑战,为有效应对我县煤

r***a 11年前 上传10470   0

地方税收情况预测分析

2012年地方税收情况预测分析  2012年市地税局给予我局下达的税收任务是8800万元,市政府下达的任务是9850万元,开发区管委会的奋斗目标是10300万元。截止到7月22日,我局累计完成两项收入5239万元。 经预测全年我局共能组织两项收入7200万元,距完成管委会的奋斗目标约有3000万元的缺口。 存在缺口的原因: 1、      这两年税收任务增幅较大,而大龙境内地方税收没有明

顺***风 11年前 上传10260   0

产品产销状况预测分析表

产品产销状况预测分析表 日期 月预计 月预计 月预计 月预计 客户名称 产品种类 期末 初期 生产量 交货量 期末 初期 生产量 交货量 期末 初期 生产量 交货量 期末 初期 生产量 交货量

n***1 10年前 上传21679   0

初二数学期中热身预测卷分析

一、选择题(共10小题,每小题3分,满分30分)1.在中国有很多吉祥的图案深受大家喜爱,人们会用这些图案来装饰生活,祈求平安.比如下列图案分别表示“福”、“禄”、“寿”、“喜”,其中既是轴对称图形,又是中心对称图形的有(  )

尔***4 4年前 上传679   0

全球光通讯市场预测与分析

全球光通讯市场预测与分析一、光器件光纤市场报告1、 光器件    我们都知道光器件厂商度过了非常艰难的2002年。随着产品出货量降到不足2000年的五分之一,一些光器件大厂例如杰尔系统公司和北电网络都争相退出此领域,显示出市场的持续低迷。 但2003年将给人们带来几缕希望的曙光。也许要想让出货量达到2000年的历史最高水平尚需待以时日,但很多光器件生产商的营业额将会在2003

x***3 9年前 上传488   0

基于微博的信息热度评价与预测分析

微博已成为时下非常热门的社交媒体平台,是一个庞大的关于信息分享和话题交流的平台,在人们线上社交活动中发挥着不可替代的作用,由于网络信息鱼龙混杂,所以本文通过了解微博的热度机制进而研究

王***朝 4年前 上传1075   0

煤矿安全预测分析

 4月份安全预测分析 一、本月安全分析:本月安全情况较好车流一般,共接发列车29列,发运煤炭8568吨,到达2车122吨截止4月26日18时累计安全天数2637天。 1、      本月对秦检自检自查出的问题进行了整改,有时间,有措施,责任人,按照要求整改完毕。 2、      各站对站内设备进行全面彻底的保养和维护,保证 使用良好。 3、      运输河沙的准备工作已做好,对全面工作

1***x 11年前 上传10266   0

主成分分析方法与因子分析方法的比较研究

主成分分析和因子分析是多元统计中较为关键和常用的两种方法,二者皆是从变量的方差-协方差结构着手,尽可能多的保存原始变量的信息。在此基础上用少量的新变量解释那些原始变量的统计分析方法。本篇论文对主成分分析与因子分析进行研究讨论。这个研究是基于理论和应用两个方面。

爱***享 3年前 上传734   0

「实例」工作分析与职务设计方法

工作分析与职务设计 一、概述  (一)工作分析的定义    工作分析,是指根据工作内容,分析工作的性质、繁简难易、责任重轻,执行工作应具备的学识技能与经验,进而制定担任工作所需的资格条件。    在瞬息万变的工作环境中,一个适当的工作分析体系是至关重要的。新的工作不断产生,旧的工作要重新设计。参考一份几年前所做的工作分析可能会得到不够确切的数据资料。但重要的是,工作分析可帮助组

d***6 13年前 上传19745   0

第二讲:非分析方法

· 分类法 · 排列法 · 点数法 · 配对比较法 · 点数加权法 · 工资市场调查 分类法 分类法是排列法的改革,又称归级法。它是在岗位分析基础上,采用一定的科学方法,按岗位的工作性质、特征、繁简难易程度、工作责任大小和人员必须具备的资格条件,对企业全部(或规范范围内)岗位所进行的多层次的划分,即先确定等级结构,然后再根据工作内容对工作岗位进行归类。 这

菩***子 15年前 上传21164   0

第一讲:分析方法

· 要素比较法 · 评分法 · 因素比较法 · 因素评价法 要素比较法 要素比较法(Factor Comparison)是一种比较常见的工作评价数量方法,也是难度较大的一种评价方法。 具体办法和步骤如下: 第一步,提供工作信息。该方法需要细致和完备的工作分析。包括:对评估委员会进行评估的各要素进行描述和说明,这些要素可以称之为要素指标。通常包括:智力要求

q***b 9年前 上传7378   0

2017年浅谈人力资源需求预测的方法论文

浅谈人力资源需求预测的方法论文  人力资源规划是现代企业进行科学人力资源管理的一项重要内容。一个合理的人力资源规划是企业平稳快速发展的有利保障。 详细内容请看下文浅谈人力资源需求预测的方法。  具体地说,人力资源规划是指企业根据自身的发展需要和外部环境的各种因素。从现有的人力资源状况出发对企业未来一段时间的人力资源需求和供给情况做出预测,并制定出符合企业发展自身需要的人力资源计划。它主要

代***鹏 6年前 上传406   0

资金预测

资金预测: 一、年原材料采购支出: 原燃材料的ABC分类 采购的原燃材料 年采购金额(万元) 占总采购金额的比例(%) A类 废钢 40913.32 60.42 生铁 13228.32 19.54 B类 高碳鉻铁 2811.72 4.15 电极 2350.68 3.47 高碳锰铁 1644.83 2.43 硅铁 1011.21 1.4

z***f 10年前 上传2824   0

大学生创业大赛财务预测分析

财务分析一.资金筹措 前期资金是创业计划得以启动的基础性条件,在此我们列下表说明我们的资金来源:资金来源表阶段类型预期额度前期资金创业团队个人150000银行贷款50000 本公司在创立营运初期,需有大量研发支出,固定资产投入等,若是销售量不及预期,营运现金流量便可能呈现极大的负数.为弥补此资金缺口,必须有新的资金投入,除了内部融资,还可以外部增资,发行股票等等。

文***享 2年前 上传688   0

成都市房地产市场分析及趋势预测

2002年成都市房地产市场分析及趋势预测 第一部分 宏观环境 1、宏观经济环境 中国自加入WTO的一年时间里,全国的各项经济指标可谓“全线飘红”。2002年中国经 济快速健康成长,预计全年国内生产总值达到10.2万多亿元,实现历史性突破,全年经济增 长率将达到8%,高于年初确定的目标。中国共产党第十六次全国代表大会的召开,也促进 了各地发展经济

l***l 8年前 上传19260   0