单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,实验五的任务:,用,VC+,编辑、编译和运行教材,P231245,的语义及代码生成程序。步骤如下:先编辑主程序文件,TESTmain.c(P244),、词法分析程序,TESTscan.c(P218-220),和语法、语义及代码生成程序,TESTparse.c,(,P231-245,)这三个文件,然后新建一个工程,接下来,将上述三个文件加入到该工程中,编译后运行即可。,理解程序,回答以下问题:,函数,name_def,的作用与思路,从下列语句的属性翻译文法选择一个,说明其处理的思路,实验六的任务:,修改词法分析程序,TESTscan.c,和语法、语义及代码生成程序,TESTparse.c,这二个文件:,使该程序能分析,do,语句,,do,语句的属性文法参见,P195,的习题,1,。,使该程序能分析声明多个变量的声明语句。声明语句的属性翻译文法需要在原文法的基础上进行修改。,完成实验五和实验六任务后,写实验报告,,要求实验报告内容包含:,写出语义分析和代码生成程序的功能和目的,写出你所实现的语义分析和代码生成程序能处理什么语句(例如有简单变量的声明语句、,if,语句等)?,判断该代码生成程序生成何种目标代码?有什么好处,?,给出该程序的错误处理方法,参见,P194,。,列出输入文件内容、屏幕输出内容及输出文件内容(包括输入正确和有错的源程序及其语法、语义分析及生成代码结果),注意体现该程序能处理的语句及你所补充的,do,语句的处理。,写实验体会,注意:,由,3,位同学构成一个小组,每小组在下周上交一份实验报告!,问题,符号表里记录了什么内容?,name-,def,n,t,的 动作内容是什么?,(P232),if,语句的处理程序,(P236),中为什么要定义,label1,和,label2,?,If,语句的动作符号是如何执行的?,分析语句“,a=5;”,时需要涉及哪些函数?,