编译原理实验报告 下载本文

院 系: 计算机科学学院 专 业: 软件工程 年 级: 2015 课程名称: 编译原理 学 号: 201521092041 姓 名: 汪业伟 指导教师: 刘赛

2017年 月 日

年级 专业 实验名称 15 软件工程 班号 1502 学号 姓名 实验 类型 201521092041 汪业伟 设计型 综合型 创新型 编译原理:语法分析器和词法分析器 √ 试验一:语法分析器 1.实验目的: 根据算术表达式文法编制调试语法分析程序,以便对输入的符号串进行分析,本兮实验的目的主要是加深对各个分析方法的理解。 2.实验要求: 利用c语言编制递归下降分析程序,并对简单语言进行语法分析 待分析的简单语言的词法: 用扩充的BNF表示如下: (1) <程序>::={<声明序列><语句序列>} (2) <语句串>::=<语句>{;<语句>} (3) <语句>::=<赋值语句> (4) <赋值语句>::=ID:= <表达式> (5) <表达式>::=<项>{(+<项>|-<项>} (6) <项>::=<因子>{*<因子>|/<因子>} 实 验 目 的 或 要 求 (7) <因子>::=ID|NUM|(<算术表达式>) 实验要求说明: 输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”。 例如: 输入 begin a:=9; x:=2*3; b:=a+x end # 输出 success! 输入 x:=a+b*c end # 输出 error 3.实验程序的总体框架结构 图1.语法分析主程序示意图 实 验 原 理 ( 算 法 流 程 ) 图2.递归下降分析程序示意图 图3.语句串分析示意图图4.语句分析函数示意图