电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

编译原理实验3算符优先分析法

编译原理实验3算符优先分析法_第1页
1/14
编译原理实验3算符优先分析法_第2页
2/14
编译原理实验3算符优先分析法_第3页
3/14
《编译原理》 实验报告 项目名称 算符优先分析法设计与实现 专业班级 学 号 姓 名 实验成绩: 批阅教师: 年 月 日 实验3《算符优先分析法设计与实现》 实验学时: 2 实验地点: 实验日期: 一、实验目的 加深对语法分析器工作过程的理解;加强对算符优先分析法实现语法分析程序的掌握;能够采用一种编程语言实现简单的语法分析程序;能够使用自己编写的分析程序对简单的程序段进行语法翻译。 二、实验内容 在实验1 的基础上,用算符优先分析法编制语法分析程序,语法分析程序的实现可以采用任何一种编程语言和工具。 三、实验方法 先在算符栈置“$”,然后开始顺序扫描表达式,若读来的单词符号是操作数,这直接进操作数栈,然后继续读下一个单词符号。分析过程从头开始,并重复进行;若读来的是运算符θ2 则将当前处于运算符栈顶的运算符θ1 的入栈优先数f 与θ2 的比较优先函数g 进行比较。 四、实验步骤 1. 定义目标语言的语法规则; 2. 求解预测分析方法需要的符号集和分析表; 3. 依次读入实验一的分析结果,根据预测分析的方法进行语法分析,直到源程序结束; 4. 对遇到的语法错误做出错误处理。 五、实验结果 六、实验结论 #inclu de "stdio.h" #inclu de "stdlib.h" #inclu de "iostream.h" char data[20][20]; //算符优先关系 char s[100]; //模拟符号栈 s char lable[20]; //文法终极符集 char inpu t[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]; //文法非终结符 FIRSTVT 集 char last[10][10]; //文法非终结符LASTVT 集 int fflag[10]={0} ; //标志第i 个非终结符的FIRSTVT 集是否已求出 int lflag[10]={0} ; //标志第i 个非终结符的LASTVT 集是否已求出 int deal(); //对输入串的分析 int zhongjie(char c); //判断字符c 是否是终极符 int xiabiao(char c); //求字符c 在算符优先关系表中的下标 void out(int j,int k,char *s); //打印 s 栈 void firstvt(char c); //求非终结符c 的FIRSTVT 集 void lastvt(char c); //求非终结符c 的LASTVT 集 void table(); //创建文法优先关系表 void main()...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

编译原理实验3算符优先分析法

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部