1、 编译原理1 实验题目:达式语法分析设计。2 实验目的:熟悉并设计一个表达式的语法分析器3 相关知识: 1、 形式语言基础及其文法运算2、 语法分析原理及 4 种常用的语法分析方法其中: 四种算法为(1)设计算术表达式的递归下降子程序分析算法(2) 设计算术表达式的 LL(1) 分析算法(3)设计算术表达式的简单优先分析算法(4)设计算术表达式的 SLR(1) 分析算法4 实验内容:1 设计表达式的语法语法分析器算法(1)算术表达式文法G(E): EE0T|T E 为算术表达式,T 为项,TT1F|F F 为因式项,0 为 +或 -;1 为 * 或 / Fi|(E) i 为变量或常量(2)文法
2、交换G(E): ET0TTF1F Fi|(E)2 编写代码并上机调试运行通过要求:输入-表达式输出-表达式语法是否正确5 实验要求:1、 给出算术表达式文法2、 进行适当的文法变换3、 选择一种语法分析的方法,并说明其原理4、 根据原理给出相应的算法设计,说明主要的数据 结构并画出算法流程图5、 编写代码并上机调试运行通过6、 写出程序运行结果7、 写出相应的文档以及代码注释5 源程序(包含注释)#includeusing namespace std;int value=1;char ch;int iloact=0;char str80;void ProT(void);void ProF(void);void error() /出错处理函数cout=0|chstr;ch=str0;while(ch!=#) /进行递归下降分析ProE();if(!value)break;if(ch=#) return 0;6 测试数据及运行结果7 思考题:语法分析的任务是什么?答:语法分析是编译的第二阶段;其任务是识别和处理比单词更大的语法单位,如:程序设计语言中的表达式、各种说明和语句乃至全部源程序,指出其中的语法错误;必要时,可生成内部形式,便于下一阶段处理。