通过设计、编制、调试一个典型的语法分析程序
设计、编制、调试一个典型的语法分析程序 编译原理实验报告的主要目的是通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,进一步掌握常用的语法分析方法。 一、实验目的: * 通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析。 * 进一步掌握常用的语法分析方法。 二、实验要求: * 选择最有代表性的语法分析方法,如算符优先法、递归子程序法和 LR 分析法。 * 选择对各种常见程序语言都用的语法结构,如赋值语句(尤指表达式)作为分析对象,并且与所选语法分析方法要比较贴切。 三、实验原理: * 递归下降分析法是确定的自上而下分析法,这种分析法要求文法是 LL(1)文法。 * 它的基本思想是,对文法中的每个终结符编写一个函数(或子程序),每个函数(或子程序)的功能是识别由该非终结符所表示的语法成分。 * 由于描述语言的文法常常是递归定义的,因此相应的这组函数(或子程序)必然以相互递归的方式进行调用。 四、实验步骤: * 按实习目的和要求,用 C 语言编写一个语法分析程序,同时考虑相应的数据结构。 * 调试调试例子应包括符合语法规则的算术表达式,以及分析程序能够判别的若干错例。 * 输出对于所输入的算术表达式,不论对错,都应有明确的信息告诉外界。 * 扩充有余力的同学,可适当扩大分析对象。 五、语法分析程序的算法思想: * 主程序示意图如图所示: + 置初值 + 调用 scaner 函数读下一格单词符号 + 调用 S 函数 + 结束 * 程序框架: + include "stdio.h" + include "string.h" + char sym; + char str[50]; + int count = 0; + void S(void); + void T(void); + void T1(void); + void error(void); + void Scaner(void); * 主要函数: + void Scaner() + void T1() + void T() + void S() + void error() 六、实验结果: * 通过本次实验,不仅使我编译原理的知识更加巩固,而且可以使理论与实践相结合,更好的掌握所学知识。 * 我也发现自己的不足之处,以后会多加改正。 七、实验心得: * 通过本次实验,我更加了解了语法分析的重要性和必要性。 * 我也发现了自己的不足之处,以后会多加改正。 * 本次实验让我更好地掌握了编译原理的知识,并且使我更有信心地应用这些知识。


























- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 对发展校园电子商务的初步思考论文4.doc
- 应用型计算机专业系统能力培养的探索.docx
- 天大春秋《计算机软件技术基础》在线作业一.doc
- 网络出版概念辨析.docx
- 基于就业能力的中职计算机应用基础教学探究.docx
- 配电自动化支撑线损管理技术方案.doc
- 易地技改企业信息化项目管理对策上传.doc
- 一五三医院车队车库、综合楼工程网络进度计划.doc
- 《计算机应用基础》教学中学生创新能力的培养.docx
- 基于51单片机的篮球比赛计分计时器设计-课程设计.doc
- 基于单片机的数字收音机万历的研究设计.doc
- 5G无线网络关键技术建设难点与应对策略探索.docx
- PLC机械手控制方案设计书94953.doc
- 路政工作中党务管理信息化探索.docx
- 信息系统项目管理师历试题分析与解答.doc
- 计算机网络技术在校园网当中的应用分析.docx


