yacc是一个生成编译程序的工具,它的输入是文法G的产生式规则,它的输出是文法G的(29)。A.优先分析器B.LL(1)分析器C.LR(1)分析器D.LALR(1)分析器

题目

yacc是一个生成编译程序的工具,它的输入是文法G的产生式规则,它的输出是文法G的(29)。

A.优先分析器

B.LL(1)分析器

C.LR(1)分析器

D.LALR(1)分析器


相似考题
更多“yacc是一个生成编译程序的工具,它的输入是文法G的产生式规则,它的输出是文法G的(29)。A.优先分析 ”相关问题
  • 第1题:

    ●试题二

    对文法G[S]:S→a|∧|(T);T→T,S|S;回答问题1~问题3。

    【问题1】

    对文法G进行改写,然后对每个非终结符写出不带回溯的递归子程序。

    【问题2】

    经改写后的文法是否是LL (1) 的?指出它的预测分析表中 (1) ~ (3) 处的内容。

    【问题3】

    说明输入串(a,a)是否为G的句子。


    正确答案:
    ●试题二[问题1]【答案】改写文法为:(0)S→a;(1)S→∧;(2)S→(T);(3)T→SN;(4)N→,SN;(5)N→ε非终结符FIRST集FOLLOW集S{a,∧,(}{#,,,}}T{a,∧,c}{}}…N{,,ε}.{}}…对左部为N的产生式可知:FIRST(→,SN)={,}FIRST(→ε)={ε}FOLLOW(N)={}}[问题2]【答案】文法是LL(1)的。(1)→SN;(2)→(T);(3)→ε[问题3]【答案】输入串(a,a)#是文法的句子。【解析】对于文法S→a|∧|(T)T→T,S|S由于SELECT(N→,SN)∩SELECT(N→ε)={,}∩{}}=,所以文法是LL(1)的。也可由预测分析表中无多重入口判定文法是LL(1)的。(3)对输入串(a,a)#的分析过程为:可见输入串(a,a)#是文法的句子。

  • 第2题:

    一个文法G,若(),则称它是LL(1)文法。

    A.G无二义性

    B.G中产生式不含左递归

    C.G中产生式不含左公因子

    D.G的LL(1)分析表中不含多重定义的条目(即:不存在有多个取值的单元格)


    G 的 LL ( 1 )分析表中不含多重定义的条目

  • 第3题:

    编译程序可以自动生成,通过编译程序产生器实现。例如能自动产生词法分析程序的工具YACC,和自动产生语法分析程序的工具LEX。


    目标程序

  • 第4题:

    一个文法G,若(),则称它是LL(1)文法。

    A.G中不含左递归

    B.G无二义性

    C.G的LL(1)分析表中不含多重定义的条目

    D.G中产生式不含左公因子


    C

  • 第5题:

    27、用Yacc处理二义文法的两大默认规则为() ①对于归约-归约冲突,选择在Yacc程序中最先出现的那个产生式归约 ②对于归约-归约冲突,选择在Yacc程序中后出现的那个产生式归约 ③对于移近-归约冲突,优先移近 ④对于移近-归约冲突,优先归约

    A.①③

    B.①④

    C.②③

    D.②④


    ①③