自底向上分析开始时,首先在栈底放置什么符号,然后将输入符号逐个推入栈内()。A界符#及开始符号SB开始符号SC界符#号D当前的输入符号

题目
自底向上分析开始时,首先在栈底放置什么符号,然后将输入符号逐个推入栈内()。

A界符#及开始符号S

B开始符号S

C界符#号

D当前的输入符号


相似考题
更多“自底向上分析开始时,首先在栈底放置什么符号,然后将输入符号逐个推入栈内()。 ”相关问题
  • 第1题:

    在编译程序中,语法分析的方法有自底向上分析和自顶向下分析。自底向上分析方法从左向右扫描输入符号串,通过(54)分析其语法是否正确。例如,(55)就是一种自底向上的分析方法,与其他自底向上分析方法不同,它是根据(56)来进行归约的。 自顶向下分析方法从文法的开始符号出发,判断其能否(57)出输入符号串。采用自顶向下分析方法时,要求文法不含有(58)。

    A.移进—移进

    B.归约—归约

    C.移进—归约

    D.归约—移进


    正确答案:C

  • 第2题:

    栈中将允许操作的一端称作 。(请填栈顶或栈底,文字之间不要有空格等多余符号)


    栈顶

  • 第3题:

    开始往输入串末尾和分析栈stack中放“#”,然后把文法开始符号压栈。预测分析程序总是按_________和________。

    A.stack栈顶符号X 最后的输入符号b

    B.stack栈顶符号X 当前输入符号a

    C.stack栈尾符号X 当前输入符号a

    D.stack栈尾符号X 最后的输入符号b


    stack栈顶符号X、当前输入符号a

  • 第4题:

    对于文法G(S'): (0) S' → S (1) S → aS (2) S → bS (3) S → a 该文法的LR分析表如下: ACTION GOTO 状态 a b # S 0 s1 s2 3 1 s1 s2 r3 4 2 s1 s2 5 3 acc 4 r1 5 r2 下面是输入串aba#的LR分析过程的0~4步的格局,第5步的格局是 步骤 状态栈 符号栈 输入串 0 0 # aba# 1 01 #a ba# 2 012 #ab a# 3 0121 #aba # 4 0125 #abS # 5

    A.步骤 状态栈 符号栈 输入串 5 014 #aS #

    B.步骤 状态栈 符号栈 输入串 5 0124 #aS #

    C.步骤 状态栈 符号栈 输入串 5 015 #aS #

    D.步骤 状态栈 符号栈 输入串 5 0125 #aS #


    (1)因为文法含有左递归所以文法不是LL(1)文法。 考虑该文法对应的语言为正规式(a|b)*ab|b描述的集合。文法改写为: S→aA|bB A→aA|bB B→aA|bC|ε C→aA|bC C→aA|bC 对改写的文法验证: 对S:FIRST(aA)={a}FIRST(bB)={b}有FIRST(aA)∩FIRST(bB)=Ф 对A:FIRST(aA)={a}FIRST(bB)={b}有FIRST(aA)∩FIRST(6B)=Ф 对B:FIRST(bC)={b}FIRST(aA)={a}FOLLOW(B)={#}且3个集合彼此不相交 对C:FIRST(bC)={b}FIRST(aA)={a}有FIRST(aA)∩FIRST(6C)=Ф ∴经验证改写后的文法是LL(1)文法。 (2)对文法S→aSbS|bSaS|ε 验证: FIRST(aSbS)={a} FIRST(bSaS)={b} FOLLOW(S)={ab} 且3个集合的交集不为空集。 ∴文法不是LL(1)文法。 考虑文法对应的语言为含有相同个数的a、b串。文法改写为: S→aBS|bAS|εA→a|bAA B→b|aBB 对改写的文法验证: 对S:FIRST(aBS)={a}FIRST(bAS)={b}FOLLOW(S)={#} 且3个集合的交集不为空集。 对A:FIRST(a)={a}FIRST(6AA)={b}有FIRST(a)∩FIRST(6AA)=Ф 对B:FIRST(b)={b}FIRST(aBB)={a}有FIRST(b)∩FIRST(aBB)=Ф ∴经验证改写后的文法是LL(1)文法。 (3)因为文法含有左递归所以文法不是LL(1)文法。 文法改写为: S→A A→BA|ε B|aB|b (或S→aA|bS|ε A→a|A|bS) 对改写的文法验证: 对S:FIRST(A)={ab}∪{ε}FOLLOW(S)={#}有FIRST(A)∩FOLLOW(S)=Ф 对A:FIRST(a)={a}FIRST(bAA)={b}有FIRST(a)∩FIRST(bAA)=Ф 对B:FIRST(b)={b}FIRST(aBB)={a}有FIRST(b)∩FIRST(aBB)=Ф ∴经验证改写后的文法是LL(1)文法。 因为文法含有左递归,所以文法不是LL(1)文法。考虑该文法对应的语言为正规式(a|b)*ab|b描述的集合。文法改写为:S→aA|bBA→aA|bBB→aA|bC|εC→aA|bCC→aA|bC对改写的文法验证:对S:FIRST(aA)={a},FIRST(bB)={b},有FIRST(aA)∩FIRST(bB)=Ф对A:FIRST(aA)={a},FIRST(bB)={b},有FIRST(aA)∩FIRST(6B)=Ф对B:FIRST(bC)={b},FIRST(aA)={a},FOLLOW(B)={#},且3个集合彼此不相交对C:FIRST(bC)={b},FIRST(aA)={a},有FIRST(aA)∩FIRST(6C)=Ф∴经验证,改写后的文法是LL(1)文法。(2)对文法S→aSbS|bSaS|ε验证:FIRST(aSbS)={a},FIRST(bSaS)={b},FOLLOW(S)={a,b}且3个集合的交集不为空集。∴文法不是LL(1)文法。考虑文法对应的语言为含有相同个数的a、b串。文法改写为:S→aBS|bAS|εA→a|bAAB→b|aBB对改写的文法验证:对S:FIRST(aBS)={a},FIRST(bAS)={b},FOLLOW(S)={#}且3个集合的交集不为空集。对A:FIRST(a)={a},FIRST(6AA)={b},有FIRST(a)∩FIRST(6AA)=Ф对B:FIRST(b)={b},FIRST(aBB)={a},有FIRST(b)∩FIRST(aBB)=Ф∴经验证,改写后的文法是LL(1)文法。(3)因为文法含有左递归,所以文法不是LL(1)文法。文法改写为:S→AA→BA|εB|aB|b(或S→aA|bS|εA→a|A|bS)对改写的文法验证:对S:FIRST(A)={a,b}∪{ε},FOLLOW(S)={#},有FIRST(A)∩FOLLOW(S)=Ф对A:FIRST(a)={a},FIRST(bAA)={b},有FIRST(a)∩FIRST(bAA)=Ф对B:FIRST(b)={b},FIRST(aBB)={a},有FIRST(b)∩FIRST(aBB)=Ф∴经验证,改写后的文法是LL(1)文法。

  • 第5题:

    栈中将不允许操作的一端称作 。(请填栈顶或栈底,文字之间不要有空格等多余符号)


    错误