资料库
首页
行业资料库
养殖
模电
互联网
生活资料库
说明书
学习资料库
面试题
答案
编译原理实验课程设计算符优先分析.doc
发布时间:2022-06-09
发布人:admin
分类:
说明书
资料大小:0.12M
资料格式:doc
举报
版权申诉
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
下载资料
收藏
0
资料目录
文本预览
编译原理实验
一 实验目的
二 实验过程
2.2 各种单词符号对应的种别码
三 设计源码
四 实验结果
编译原理实验 一 实验目的 设计、编制并调试一个算符优先分析算法,加深对此分析法的理解 二 实验过程 先在算符栈置“$”,然后开始顺序扫描表达式,若读来的单词符号是操作数,这直接进操 作数栈,然后继续读下一个单词符号。分析过程从头开始,并重复进行;若读来的是运算符 θ2 则将当前处于运算符栈顶的运算符θ1的入栈优先数 f 与θ2的比较优先函数 g 进行比较。 2.2 各种单词符号对应的种别码 单词符号 种别码 单词符号 种别码 Main Int Char if else for while letter(letter \digit)* digit digit* = + - 1 2 3 4 5 6 7 10 20 14 15 16 * / == != <= > >= = ; ( ) 等等 17 18 39 40 38 23 37 21 34 26 27 … 2.3 算符优先程序的功能 完成一个交互式面向对象的算符优先分析程序,而一个交互式面向对象的算符 优先分析程序基本功能是: (1) 输入文法规则 (2) 对文法进行转换 (3) 生成每个非终结符的 FirstVT 和 LastVT (4) 生成算符优先分析表 (5) 再输入文法符号 (6) 生成移进规约步骤 三 设计源码 #include "stdio.h" 算符优先分析器
//算符优先关系 //模拟符号栈 s //文法终极符集 //文法输入符号串 //用于输入串的分析 //文法规则个数 //转化后文法规则个数 //用来存储文法规则 //文法非终结符 FIRSTVT 集 //文法非终结符 LASTVT 集 //标志第 i 个非终结符的 FIRSTVT 集是否已求出 //标志第 i 个非终结符的 LASTVT 集是否已求出 //对输入串的分析 //判断字符 c 是否是终极符 //求字符 c 在算符优先关系表中的下标 //打印 s 栈 //求非终结符 c 的 FIRSTVT 集 //求非终结符 c 的 LASTVT 集 //创建文法优先关系表 #include "stdlib.h" #include "iostream.h" char data[20][20]; char s[100]; char lable[20]; char input[100]; char string[20][10]; int k; char a; int j; char q; int r; int r1; int m,n,N; char st[10][30]; char first[10][10]; char last[10][10]; int fflag[10]={0}; int lflag[10]={0}; int deal(); int zhongjie(char c); int xiabiao(char c); void out(int j,int k,char *s); void firstvt(char c); void lastvt(char c); void table(); void main() { int i,j,k=0; printf("请输入文法规则数:"); scanf("%d",&r); printf("请输入文法规则:\n"); for(i=0;i
if(st[i][0]<'A'||st[i][0]>'Z') { printf("不是算符文法!\n"); exit(-1); } if(st[i][j]>='A'&&st[i][j]<='Z') { if(st[i][j+1]>='A'&&st[i][j+1]<='Z') { printf("不是算符文法!\n"); exit(-1); } } } } for(i=0;i
'Z')&&st[i][j]!='-'&&st[i][j]!='>'&&st[i][j]!='| ') lable[k++]=st[i][j]; } } lable[k]='#'; lable[k+1]='\0'; table(); printf("每个非终结符的 FIRSTVT 集为:\n"); for(i=0;i
{ printf("%c ",last[i][j+1]); } printf("\n"); } printf("算符优先分析表如下:\n"); for(i=0;lable[i]!='\0';i++) printf("\t%c",lable[i]); printf("\n"); for(i=0;i
y=0; text[x][y]=st[i][0]; y++; text[x][y++]='-'; text[x][y++]='>'; } else { text[x][y]=st[i][j]; y++; } } text[x][y]='\0'; x++; y=0; } r1=x; printf("转化后的文法为:\n"); for(i=0;i
" 后的转化文法,用于最后的规约)*/ { } string[i][0]=text[i][0]; for(j=3,l=1;text[i][j]!='\0';j++,l++) string[i][l]=text[i][j]; string[i][l]='\0'; for(i=0;i
jie(text[i][j+1])) { m=xiabiao(text[i][j]); n=xiabiao(text[i][j+2]); data[m][n]='='; } if(zhongjie(text[i][j])&&!zhongjie(text[i][j+1])) { for(k=0;k
'; } } } } m=xiabiao('#'); for(t=0;t
//求 FIRSTVT 集 { m=xiabiao(last[0][t+1]); data[m][n]='>'; } data[n][n]='='; } void firstvt(char c) { int i,j,k,m,n; for(i=0;i
{ int t; for(t=0;t
分享到:
赞
收藏
上一篇
关于刘金琨的《先进PID控制MATLAB仿真》疑惑解答..pdf
下一篇
PORTAL V15 PID COMPACT.pdf
相关推荐
2023年江西萍乡中考道德与法治真题及答案.doc
2012年重庆南川中考生物真题及答案.doc
2013年江西师范大学地理学综合及文艺理论基础考研真题.doc
2020年四川甘孜小升初语文真题及答案I卷.doc
2020年注册岩土工程师专业基础考试真题及答案.doc
2023-2024学年福建省厦门市九年级上学期数学月考试题及答案.doc
2021-2022学年辽宁省沈阳市大东区九年级上学期语文期末试题及答案.doc
2022-2023学年北京东城区初三第一学期物理期末试卷及答案.doc
2018上半年江西教师资格初中地理学科知识与教学能力真题及答案.doc
2012年河北国家公务员申论考试真题及答案-省级.doc
2020-2021学年江苏省扬州市江都区邵樊片九年级上学期数学第一次质量检测试题及答案.doc
2022下半年黑龙江教师资格证中学综合素质真题及答案.doc
资料库
课程资源
共收录17145份资料,累计13个分类,关注成员有19位,主要包括:PHP,网络管理,网页制作,Java,.Net,数据库,3G/移动开发,C/C++,游戏开发,嵌入式,讲义,软件测试,专业指导
热门标签
PHP
网络管理
网页制作
Java
.Net
数据库
3G/移动开发
C/C++
游戏开发
嵌入式
讲义
软件测试
专业指导
最新资料
2022-2023学年河北省唐山市高三上学期期末数学试题及答案.doc
2022-2023学年河北省张家口市高三上学期期末数学试题及答案.doc
2022-2023学年河北省衡水市高三上学期期末语文试题及答案.doc
2022-2023学年河北省保定市高三上学期期末数学试题及答案.doc
2022-2023学年河北省张家口市高三上学期期末语文试题及答案.doc
2022-2023学年河北省石家庄市高三上学期期末语文试题及答案.doc
2020-2021年四川省凉山州西昌市高一物理上学期期中试卷及答案.doc
2020-2021年四川省遂宁市安居区高一英语上学期期中试卷及答案.doc
2020-2021年四川省西昌市高一英语上学期期中试卷及答案.doc
2021-2022年四川省广安市岳池县高一地理上学期期中试卷及答案.doc
2021-2022年四川省成都市郫都区高一物理上学期期中试卷及答案.doc
2021-2022年四川省广安市岳池县高一物理上学期期中试卷及答案.doc