哈工程编译原理实验语法素材.doc

编译原理实验报告 学  号 姓  名 实验名称 语法分析实验—LL(1) 实验目的 输入:文法的多个产生式或产生式选项。 输出: 产生式中非终结符的first集合和follow集合。 判断该文法是否是LL(1)文法。 建立LL(1)文法的分析表。 对输入的符号串进行LL(1)分析,并给出分析结果。 实验方案 设文法G[S]=(VN,VT,P,S),则首字符集为: FIRST(α)={a | αaβ,a∈VT,α,β∈V *}。 若αε,ε∈FIRST(α)。 由定义可以看出,FIRST(α)是指符号串α能够推导出的所有符号串中处于串首的终结符号组成的集合。所以FIRST集也称为首符号集。 设α=x1x2…xn,FIRST(α)可按下列方法求得: 令FIRST(α)=Φ,i=1; 若xi∈VT,则xi∈FIRST(α); 若xi∈VN; ① 若εFIRST(xi),则FIRST(xi)∈FIRST(α); ② 若ε∈FIRST(xi),则FIRST(xi)-{ε}∈FIRST(α); i=i+1,重复(1)、(2),直到xi∈VT,(i=2,3,…,n)或xi∈VN且若εFIRST(xi)或in为止。 当一个文法中存在ε产生式时,例如,存在A→ε,只有知道哪些符号可以合法地出现在非终结符A之后,才能知道是否选择A→ε产生式。这些合法地出现在非终结符A之后的符号组成

文档评论(0)

1亿VIP精品文档

相关文档