好文档 - 专业文书写作范文服务资料分享网站

递归下降语法分析设计原理与实现技术实验报告.doc

天下 分享 时间: 加入收藏 我要投稿 点赞

递归下降语法分析设计原理与实现技术

实验报告

变更说明

日期 2014/4/16

版本 1.0 变更位置 变更说明 初稿生成 房皓 作者 一、 实验目的:

本实验的目的在于在教师的引导下以问题回朔与思维启发的方式,使学生在不断的探究过程中掌握编译程序设计和构造的基本原理和实现技术,启迪学生的抽象思维、激发学生的学习兴趣、培养学生的探究精神和专业素养,从而提高学生发现问题、分析问题和解决问题的能力。

二、实验内容:

[实验项目]

完成以下描述算术表达式的LL(1)文法的递归下降分析程序 G[E]: E→TE′ E′→ATE′|ε T→FT′

T′→MFT′|ε F→ (E)|i A→+|- M→*|/ [设计说明]

终结符号i 为用户定义的简单变量,即标识符的定义。 [设计要求]

(1)输入串应是词法分析的输出二元式序列,即某算术表达式“实验项目一”的输出结果,输出为输入串是否为该文法定义的算术表达式的判断结果;

(2)递归下降分析程序应能发现输入串出错;

(3)设计两个测试用例(尽可能完备,正确和出错),并给出测试结果。

三、实验环境:

操作系统:Windows 7 软件: VC++6.0

四、程序功能描述:

? ? ? ?

提供了两种输入方式:键盘和文件,有文件输入时需为二元式序列; 能够对输入的字符串做出正确的递归下降分析判断,并给出判断结果; 能发现输入串中的错误,包含非法字符,输入不匹配等;

能够处理一些可预见性的错误,如文件不存在,用户输入非法等。

五、数据结构设计:

全局:

局部(main()中):

六、程序结构描述:

? 设计方法:

本程序采用从键盘输入或文件读取两种输入方式,其中文件的内容需为二元式序列,然后按照递归下降分析的方法对输入的字符串进行分析判断,并输出判断结果,程序通过对输入串的检查能够发现输入串中的错误。程序规定的单词符号及其种别码见下表:

单词符号及其种别码表 单词符号 ( ) + - 种别码 1 2 3 4 单词符号 * / i # 种别码 5 6 7 8 ? 主要函数说明:

advance():将下一个字符送入current;

error():输出错误,表示不是该文法的句子;

error1();输出错误,输入内容不合法; init():初始化函数;

justify():判断文件读取内容是否合法,包括检查非法字符和不匹配现象 main():主函数

? 函数调用关系说明:

main()调用justify()、init()、E()、error1(); justify()调用error1();

A()、E()、E1()、F()、M()、F()、T()、T1()根据输入串可互相调用或递归调用,这些函数均可调用error()函数; A()、F()、M()调用advance()函数。

? 执行框图:

1) 总体结构图:

递归下降语法分析设计原理与实现技术实验报告.doc

递归下降语法分析设计原理与实现技术实验报告变更说明日期2014/4/16
推荐度:
点击下载文档文档为doc格式
5mopy6fai25zpak1cslt1is53085cn00i8f
领取福利

微信扫码领取福利

微信扫码分享