文档详情

编译原理实验报告——实验三 语法分析分析器.pdf

发布:2017-10-04约1.42万字共15页下载文档
文本预览下载声明
编译原理实验报告 实验名称: 编写语法分析分析器 实验类型: 验证型实验 指导教师: 庄 燕 滨 专业班级: 10 软件卓越 姓 名: 黄 子 轩 学 号: 电子邮件: 139.com 实验地点: 秋白楼B705 实验成绩: 日期:2013 年 6 月 5 日 1 一、实验目的 通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词 序列进行语法检查和结构分析,进一步掌握常用的语法分析方法。 1、选择最有代表性的语法分析方法,如 LL(1) 语法分析程序、算符优先分析程序和 LR 分析分析程序,并至少完成两个题目。 2 、选择对各种常见程序语言都用的语法结构,如赋值语句(尤指表达式)作为分析对 象,并且与所选语法分析方法要比较贴切。 二、实验过程 题目一、编写LL(1)语法分析分析器。 要求: (a ) 根据LL (1)分析法总控制流程图,编写一个分析对象的语法分析程序。可根据自 己的能力选择以下三项(由易到难)之一作为分析算法中的输入: Ⅰ:直接输入根据已知文法人工构造的分析表M 。 Ⅱ:输入已知文法的集合FIRST (x )和FOLLOW (U ),由程序自动生成该文法的分析表M 。 Ⅲ:输入已知文法,由程序自动生成该文法分析表M 。 (b )程序具有通用性,即所编制的LL (1)语法分析程序能够适用于不同文法以及各种 输 入单词串,并能判断该文法是否为算符文法和算符优先文法。 (c )有运行实例。对于输入的一个文法和一个单词串,所编制的语法分析程序应能正确地 判断,此单词串是否为该文法的句子,并要求输出分析过程。 题目二、编写算符优先分析器。 要求: (a)根据算符优先分析算法,编写一个分析对象的语法分析程序。读者可根据自己的能力 选择以下三项(由易到难)之一作为分析算法中的输入: Ⅰ:通过构造算符优先关系表,设计编制并调试一个算法优先分析程序 Ⅱ:输入FIRSTVT,LASTVT 集合,由程序自动生成该文法的算符优先关系矩阵。 Ⅲ:输入已知文法,由程序自动生成该文法的算符优先关系矩阵。 (b)程序具有通用性,即所编制的语法分析程序能够使用于不同文法以及各种输入单词串, 并能判断该文法是否为算符文法和算符优先文法。 (c)有运行实例。对于输入的一个文法和一个单词串,所编制的语法分析程序应能正确地 判断,此单词串是否为该文法的句子,并要求输出分析过程。 三、实验结果 (一)LL(1) : 实验结果: 2 (二)算符优先分析: 测试数据:E-E+T|T T-T*F|F F-(E)|i 实验结果:(输入串为i+i*i+i) 3 四、讨论与分析 4 确定的自上而下语法分析方法-预测分析法(LL(1)方法): LL (1)文法的判定: 对于文法G 的每一个非终结符U 的产生式:U→α1|α2 |…|αn 。 如果文法G 是一个LL(1)文法,则有SELECT(U→αi) ∩SELECT(U→αj )=Ф (i≠j ,i,j=1 ,2,…,
显示全部
相似文档