编译原理实验报告三:语法分析(PL0,词法分析,语法分析,中间代码生成)
实验报告三:语法分析
一、实验目的
通过设计、开发一个S语言的语法分析程序,实现对源程序的语法检查和结构分析,加深对相关课堂教学内容的理解,提高语法分析方法的实践能力。
二、实验要求
根据下列S语言的语法规则,进行语法分析
(1) <程序>→[<常量说明>][<变量说明>]<语句>
(2) <常量说明>→Const <常量定义>{,<常量定义>};
(3) <常量定义>→<标识符>=<无符号整数>
(4) <无符号整数>→<数字>{<数字>}
(5) <字母>→a|b|c| … |z
(6) <数字>→0|1|2| … |9
(7) <标识符>→<字母>{<字母>|<数字>}
(8) <变量说明>→Var <标识符>{,<标识符>};
(9) <语句>→<赋值语句>|<条件语句>|<当循环语句>|<复合语句>|ε
(10) <赋值语句>→<标识符>=<表达式>;
(11) <表达式>→[+|-]<项>{<加法运算符><项>}
(12) <项>→<因子>{<乘法运算符><因子>}
(13) <因子>→<标识符>|<无符号整数>|‘(’<表达式>‘)’
(14) <加法运算符>→+|-
(15) <乘法运算符>→* |/
(16) <条件语句>→if <条件> then <语句>| if <条件> then <语句> else
<语句>
(17) <条件>→<表达式><关系运算符><表达式>
(18) <关系运算符>→==|<=|<|>|>=|<>
(19) <当循环语句>→while <条件> do <语句>
(20) <复合语句>→begin <语句>{;<语句>} end
三、实验过程分析
1. 采用多个bool类型函数:
a) 判断字符类型(大小写)
b) 判断数字
c) 判断标识符(Constant,Var等)、并更进一步,识别连续定义(形如 Constanta, b)
d) 判断表达式、赋值
e) 判断if、while循环
2. 输出语法分析结果
四、结果展示
1、输入样本(词法分析输出的file_out.txt):
1 Const
1 x
1 =
1 8
1 ,
1 y
1 =
1 7
1 ;
2 Var
2 a
2 ,
2 b
2 ;
3 begin
4 a
4 =
4 x
4 +
4 y
4 ;
5 b
5 =
5 a
5 *
5 x
5 ;
6 end
2、输出结果:
…………
具体实验报告及代码见下载链接
其他实验报告(PL0,词法分析,语法分析,中间代码生成)请访问本人博客
编译原理实验报告三:语法分析(PL0,词法分析,语法分析,中间代码生成)相关推荐
- 编译原理实验报告一:PL0语言编译器分析(PL0,词法分析,语法分析,中间代码生成)
实验报告一:PL0语言编译器分析 一.实验目的 通过阅读与解析一个实际编译器(PL/0语言编译器)的源代码, 加深对编译阶段(包括词法分析.语法分析.语义分析.中间代码生成等)和编译系统软件结构的理解 ...
- 编译原理实验(三)——LR(0)语法分析
编译原理实验(三)--LR(0)语法分析 实验要求 参考程序 实验结果 程序输入说明 截图 实验要求 根据LR(0)分析法编写一个语法分析程序 直接输入根据已知文法构造的分析表M;对于输入的文法和符号 ...
- 编译原理上机实习c语言小子集编译程序的实现报告,合肥工业大学编译原理实验报告(完整代码版)...
<合肥工业大学编译原理实验报告(完整代码版)>由会员分享,可在线阅读,更多相关<合肥工业大学编译原理实验报告(完整代码版)(58页珍藏版)>请在人人文库网上搜索. 1.计算机与 ...
- html解析器编译原理,编译原理实验报告词法分析器(内含源代码).docx
编译原理实验报告词法分析器(内含源代码) 编译原理实验(一) --词法分析器 实验描述 运行环境:vc++2008 对某特定语言A ,构造其词法规则. 该语言的单词符号包括: 1该程序能识别的单词符号 ...
- c语言词法分析器实验原理,词法分析器的设计与实现 编译原理实验报告.doc
词法分析器的设计与实现 编译原理实验报告 中北大学软件学院 实 验 报 告 专 业 软件工程 课程名称 编译原理 学 号 姓 名 辅导教师 张静 成绩 实验日期2015.5.19实验时间14:00~1 ...
- 编译原理实验(三)词法语法分析综合设计
版权声明:本文为原创文章,版权归 Geekerstar 所有. 本文链接:http://www.geekerstar.com/technology/105.html 除了有特殊标注文章外欢迎转载,但请 ...
- 编译原理实验报告:词法分析
NCWU慎用 1.实验要求 (1)从源程序文件中读取有效字符流并将其分析识别单词符号,转换成二元组内部表示形式输出. (2)可视化方式展示词法分析识别过程或者词法分析器工作原理(选做). (3)实验时 ...
- 编译原理实验一 TINY语言的词法分析
实验一 TINY语言的词法分析 一.实验目的 (评价依据,描述是否准确到位) 构造tiny语言的词法分析器(扫描器),要求利用第三方的lex工具进行构造.实验结果:构造出的扫描器,能够读入教材样例中给 ...
- 计算机原理实验报告三,计算机组成实验报告3
<计算机组成实验报告3>由会员分享,可在线阅读,更多相关<计算机组成实验报告3(6页珍藏版)>请在人人文库网上搜索. 1.计算机组成实验报告3淮海工学院计算机工程学院 实验报告 ...
最新文章
- Scala for循环示例
- 未能解析引用的程序集……因为它对不在当前目标框架……
- 高级UI-画笔Paint
- os.environ详解
- 大数据技术 思维导图
- 谷歌浏览器的下载位置如何设置 Chrome浏览器下载路径设置方法简述
- SSL常用专业缩略语汇总
- 7 款神秘的开源中间件!
- ndoejs后台查询数据库返回的值-进行解析
- PageAdmin CMS网站建设教程:自定义字段如何关联栏目表
- 宇枫资本投资理财的几大定律
- unity学习笔记-换装系统
- Ubuntu系统下搭建FTP服务器图解
- IGBT静态参数测试
- 快速查看MySQL数据库的版本号
- 全球与中国直流小型功率继电器市场现状及未来发展趋势
- No outgoing sequence flow of the exclusive gateway ‘XXX‘ could be selected for continuing the proces
- 试论社会学专业定×××方法课程教学现状及改革途径
- 菜鸟笔记---axure9 动态面板 移动端上下滑屏
- win10环境安装使用svn客户端和服务端