编译原理-LL(1)文法源代码(实验三).docx

、实验目的及要求 1 ?掌握LL(1)分析法的基本原理; 掌握LL(1)分析表的构造方法; 用LL ( 1 )分析法分析高级语言表达式。 了解LL (1)分析器的工作过程。 文法:无二义性的算术表达式的文法 把词法分析作为语法分析的子程序实现( 5分) 独立的语法分析程序(4分) 对表达式文法消除左递归、构造 LL (1)分析表 LL (1)分析表可以直接输入(4分),也可以用程序实现(5分) 给一个表达式,给出分析过程(分析栈、输入串、所用规则) (4分) 生成一个棵语法树(5分)用二叉树的形式表示出来 二、实验内容及原理 1、实验原理 (1 )、LL (1)文法的定义 LL(1)分析法属于确定的自顶向下分析方法。 LL(1)的含义是:第一个 L表明自顶向下 分析是从左向右扫描输入串,第 2个L表明分析过程中将使用最左推导, 1表明只需向右看 一个符号便可决定如何推导,即选择哪个产生式 (规则)进行推导。 LL(1)文法的判别需要依次计算 FIRST集、FOLLOWI和SELLEC■集,然后判断是否为LL(1) 文法,最后再进行句子分析。 需要预测分析器对所给句型进行识别。 即在LL(1)分析法中,每当在符号栈的栈顶出现 非终极符时,要预测用哪个产生式的右部去替换该非终极符; 当出现终结符时,判断其与剩 余输入串的第一个字符是否匹配,如果匹配,则继续分析,否则报错。 LL(1

文档评论(0)

1亿VIP精品文档

相关文档