文件大小:108.00KB 适用专业:编译原理 适用年级:本科 论文编号:110349 论文简介: 两个实验,实验题目如下,有源代码和实验运行效果。
实验一 无符号数的词法分析程序
一 实验目的
1 培养学生初步掌握编译原理实验的技能
2 验证所学的理论,巩固所学的知识并加深理解。
3 对学生进行实验研究的基本训练
二 实验内容及要求
1 内容:掌握词法分析的基本思想,并用高级语言编写无符号数的此法分析程序。
2 要求:从键盘输入一串字符(包括字母,数字等),最后以“:”结束,编写程序识别出其中的无符号数。
3 无符号数的文法规则可定义如下:
﹤无符号数﹥------﹤无符号实数﹥|﹤无符号整数﹥
﹤无符号实数﹥------﹤无符号整数﹥.﹤数字串﹥[E﹤比例因子﹥]|﹤无符号整数﹥E﹤比例因子﹥
﹤比例因子﹥------﹤有符号整数﹥
﹤有符号整数﹥------[+|-]﹤无符号整数﹥
﹤无符号整数﹥------﹤数字串﹥ ﹤数字串﹥------﹤数字﹥{﹤数字﹥} ﹤数字﹥-----0,1,2,….9
4无符号程序的流程如下:
三 试验程序如下
四 实验结果截图如下:
实验二 逆波兰式的生成程序
一 实验目的
1 培养学生初步掌握编译原理实验的技能
2 验证所学的理论,巩固所学的知识并加深理解。
3 对学生进行实验研究的基本训练
二 实验内容以及要求
1内容: 掌握语法分析的基本思想,并用高级语言编写逆波兰式的生成程序。
2 要求:利用逆波兰生成算法编写程序,并将键盘上输入的算术表达式转化为逆波兰式。
3 逆波兰式的涉及到的运算符的优先级如下。
关系 右
左 + - * / ! ( )
+ ﹥ ﹥ ﹤ ﹤ ﹤ ﹤ ﹥
— ﹥ ﹥ ﹤ ﹤ ﹤ ﹤ ﹥
* ﹥ ﹥ ﹥ ﹥ ﹤ ﹤ ﹥
/ ﹥ ﹥ ﹥ ﹥ ﹤ ﹤ ﹥
! ﹥ ﹥ ﹥ ﹥ ﹥ ﹤ ﹥
( ﹤ ﹤ ﹤ ﹤ ﹤ ﹤ =
) ﹥ ﹥ ﹥ ﹥ ﹥ ﹥
如上表所示,表示了+,—,*,/,!,(,)7中运算符之间的相互优先关系。“﹥,﹤,=”分别表示大于,小于,等于三种优先关系。
4 逆波兰式的生成算法关键在于比较当前运算符与栈顶运算符的优先关系,若当前运算符的优先级别高于栈顶运算符则当前运算符入栈,反之栈顶运算符退栈。如下是此算法的流程图:
三 实验程序
四 实验结果截图
论文文件预览: 共1文件夹,1个文件,文件总大小:108.00KB,压缩后大小:42.08KB
- 编译原理课程设计实验报告
- 编译原理课程设计实验报告.doc [108.00KB]
|