全球旧事资料 分类
生命是永恒不断的创造,因为在它内部蕴含着过剩的精力,它不断流溢,越出时间和空间的界限,它不停地追求,以形形色色的自我表现的形式表现出来。--泰戈尔
编译原理实验报告
题目:对下面的文法对象,使用c语言构造它的预测分析程序;并任意给一算术表达式题目进行分析测试.分析对象对象定义如下:算术表达式项|算术表达式项|算术表达式-项项因式|项因式|项/因式因式变量|(算术表达式)变量字母字母ABCDEFGHIJKLMNOPQRSTUVWXYZ实验日期指导教师:实验日期:2005615至2005630日期指导教师吴取劲班级:计算机029班学号:20029440913姓名:陈强班级学号姓名
一、分析
语法分析部分我们我们采用ll(1)方法实现,采用ll(1)方法实现语法发分析要求文法满足以下要求:一个文法能否用确定的自顶向下分析与文法中相同左部的每个产生式右部的开始符号集合有关,当有右部能ε时则与其左部非终结符的后跟符号集合也有关,此外在产生式中不存在左递归即经过压缩,无左递归,无回溯。它的基本思想是从左到右扫描源程序,同时从识别符号开始生成句子的最左推导,并只向前查看一个输入符号,便能唯一确定应选择的规则。下面将确切地定义满足确定的自顶向下分析条件的文法即LL1文法及LL1文法的判别并介绍如何对非LL1文法进行等价变换问题,也就是消除一个文法中的左递归和左公共因子。注意:注意:一个文法中含有左递归和左公共因子绝对不是LL1文法,所以也就不可能用确定的自顶向下分析法,对此结论可以证明。然而,某些含有左递归和左公共因子的文法在通过等价变换把它们消除以后可能变为LL1文法,但需要用LL1文法的定义判别,也就是说文法中不含左递归和左公共因子,只是LL1文法的必要条件。LL1文法的定义(5种定义):一个文法符号串的开始符号集合定义如下:定义1设GVT,VN,S,P是上下文无关文法α是任意的文法符号串FIRSTα是从α推导出的串的开始符号的终结符集合。。。。
fFIRSTαaαaβa∈VT,αβ∈V若αε则规定ε∈FIRSTα.当一个文法中相同左部非终结符的右部存在能ε的情况则必须知道该非终结符的后跟符号的集合中是否含有其它右部开始符号集合的元素。为此,我们定义一个文法非终结符的后跟符号的集合如下:定义2设GVT,VN,S,P是上下文无关文法,A∈VN,S是开始符号FOLLOWA{aSμAβ且a∈VT,a∈FIRSTβμ∈VTβ∈V}若SμAβ且βε则∈FOLLOWAr
好听全球资料 返回顶部