zoukankan      html  css  js  c++  java
  • 作业13 自下而上语法分析

    1.已知文法:

    E→E+T | T

    T→T*F | F

    F→(E) | i

    以句柄作为可归约串,写出符号串‘i+i*i#’的"移进-归约"分析过程。

     答:该符号串‘i+i*i#‘的语法树如下:

      

       符号串‘i+i*i#’的"移进-归约"分析过程如下:

      

    步骤

    符号栈

    输入符号串

    动作

    (1)

    #

    i+i*i#

    移进

    (2)

    #i

    +i*i#

    归约

    (3)

    #F

    +i*i#

    归约

    (4)

    #T

    +i*i#

    归约

    (5)

    #E

    +i*i#

    移进

    (6)

    #E+

    i*i#

    移进

    (7)

    #E+i

    *i#

    归约

    (8)

    #E+F

    *i#

    归约

    (9)

    #E+T

    *i#

    移进

    (10)

    #E+T*

    i#

    移进

    (11)

    #E+T*i

    #

    归约

    (12)

    #E+T*F

    #

    归约

    (13)

    #E+T

    #

    归约

    (14)

    #E

    #

    接受

     

    2.P121练习1的(1)(2)。

    1)计算FIRSTVT和 LASTVT。

    2)找三种关系对。

    3)构造算符优先关系表。

    答:文法为:S->a | ^ | (T)

          T->T,S | S

      (1) FIRSTVT(S)={a,^,(}

         FIRSTVT(T)={, ,a,^,(}

         LASTVT(S)={a,^,)}

         LASTVT(T)={,,a,^,)}

       (2)  三种关系对

        =

       (T)

       #S#

          <

       #S

         (T

         ,S

       >

       S#

       T)

       T,

      (3)构造算符优先关系表

      

     

    a

    ^

    (

    )

    ,

    #

    a

     

     

     

     >

    ^

     

     

     

     >

    (

    =

     

    )

     

     

     

     >

    ,

     

    #

     

     

    =

  • 相关阅读:
    常用命令
    linux是文件里的内容整齐
    centos 7新机使用前操作
    Symmetric Tree @leetcode
    Binary Tree Inorder Traversal @leetcode
    [转]快速排序
    Remove Duplicates from Sorted Array @leetcode
    Remove Element @leetcode
    随笔1
    Unique Binary Search Trees @leetcode
  • 原文地址:https://www.cnblogs.com/hs01/p/11980637.html
Copyright © 2011-2022 走看看