编译原理第一次实验报告1614010102曹妍_第1页
编译原理第一次实验报告1614010102曹妍_第2页
编译原理第一次实验报告1614010102曹妍_第3页
编译原理第一次实验报告1614010102曹妍_第4页
编译原理第一次实验报告1614010102曹妍_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈尔滨科技大学软件和微电子学院实际报告(2017-2018年下半年)课程名称:编写原则等级:软件等级16-1学校编号:1614010102姓氏:曹艳实验名称实验1:操作员优先级分析表的构建过程专业贸易软件工程西方人名的第一个字曹艳学校编号1614010102班级级别软件类16-1首先,实验的目的:通过设计、编译、调试和构造FIRSTVT集、LASTVT集和运算符优先级表,理解了构造运算符优先级分析表的步骤,满足了语法要求,生成了运算符优先级关系表的算法。二、实验内容:1.编写运算符优先级分析表的构造函数,以在给定的运算符优先级语法中找到第一组和最后一组非终止符。2.构建操作员优先级表。三、实验设备和软件环境:PC机,主机操作系统是窗口;c编译器等软件四、实验过程和结果:在存储语法的. txt文档中输入要判断的语法生成公式(该文档已被输入到教材中的116页语法中),格式为E-a|S,注意“-”在左半部分和右半部分之间,每一个生成公式对应一行,输入键换行。在语法的末尾,输入另一行G-#E#。1.先做语法判断,然后判断语法情况。2.如果运算符具有优先级语法,优先级表将显示在优先级表列中。实验示例:该图显示了终端符号表和非终端符号表,计算了第一个和最后一个符号集,并给出了导出了算子优先关系矩阵。代码分析和实验结果;#包括#包括#包括收费数据2020;/运算符优先关系char s100;/模拟符号堆栈s收费标签20;/语法最终字符集充电输入100;/语法输入符号字符串char string2010;/用于分析输入字符串int k;char a;int j;char q;int r;/语法规则的数量int r1/转换后的语法规则数char ST1030;/用于存储语法规则第一部1010;/语法非终结符FIRSTVT集1010;/语法非终结符LASTVT集int fflag10= 0 ;/标记是否已找到第I个非终结符的第一个VT集国际机场10= 0 ;/标记是否已找到第I个非终结符的最后一组int deal();/输入字符串的分析中捷国际(char c);/判断字符C是否是最终字符国际夏标(char c);/在运算符优先级表中查找字符C的下标空出(int j,int k,char * s);/打印堆栈void first vt(char c);/查找第一组非终结符cvoid last vt(char c);/查找非终结符c的LASTVT集void表();/创建语法优先表int main()int i,j,k=0;打印(请输入语法规则的数量):scanf(“% d”,r);打印(“请输入语法规则: n”);对于(I=0;iZ)printf(不是符文方法! n );出口(-1);如果(圣Ij=东ij=Z)如果(圣Ij 1=东ij 1=Z)printf(不是符文方法! n );出口(-1);对于(I=0;圣!j!j!=|)j;标签k=#;标签k1= 0;表();Printf(“为每个非终结符设置的第一个VT是: n”);/输出每个非终结器的第一个VT集对于(I=0;我;其他正文xy=圣Ij;y;文本xy= 0;x;y=0;R1=x;Printf(转换后的语法是: n );对于(I=0;最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论