zoukankan      html  css  js  c++  java
  • 作业十四

    1. 已知算符优先关系矩阵如下表:

     

    +

    *

    i

    (

    )

    #

    +

    >

    <

    <

    <

    >

    >

    *

    >

    >

    <

    <

    >

    >

    i

    >

    >

    >

    >

    (

    <

    <

    <

    <

    =

    )

    >

    >

    >

    >

    #

    <

    <

    <

    <

    =

     写出符号串(i+i)*i#的算符优先分析过程。

    关系

    输入串

    动作

    #

    <

    (i+i)*i#

    移进

    #(

    <

    i+i)*i#

    移进

    #(i

    >

    +i)*i#

    归约

    #(N

    <

    +i)*i#

    移进

    #(N+

    <

    i)*i#

    移进

    #(N+i

    >

    )*i#

    归约

    #(N+N

    >

    )*i#

    归约

    #(N

    =

    )*i#

    移进

    #(N)

    >

    *i#

    归约

    #N

    -

    *i#

    移进

    #N*

    <

    i#

    移进

    #N*i

    >

    #

    归约

    #N*N

    >

    #

    归约

    #N

     

    #

    接受

    2.接上个作业(P121练习1),完成4),5)两个步骤。

    1)计算FIRSTVT LASTVT

    2)找三种关系对。

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

    4)是否算符优先文法?

    5)给出输入串(a,(aa))#的算符优先分析过程。

     答:

      文法为: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

     

     

     

     >

    >

    >

    ^

     

     

     

     >

    >

    >

    (

    <

    <

    <

    =

    <

     

    )

     

     

     

     >

    >

    >

    ,

    <

    <

    <

    >

    >

     

    #

    <

    <

    <

     

     

    =

    (4)

    (5)

     

    关系

    输入串

    动作

     

    #

    <

    (a,(a,a))#

    移进

     

    #(

    <

    a,(a,a))#

    移进

     

    #(a

    >

    ,(a,a))#

    归约

     

    #(N

    <

    ,(a,a))#

    移进

     

    #(N,

    <

    (a,a))#

    移进

     

    #(N,(

    <

    a,a))#

    移进

     

    #(N,(a

    >

    ,a))#

    归约

     

    #(N,(N

    <

    ,a))#

    移进

     

    #(N,(N,

    <

    a))#

    移进

     

    #(N,(N,a

    >

    ))#

    归约

     

    #(N,(N,N

    >

    ))#

    归约

     

    #(N,(N

    =

    ))#

    移进

     

    #(N,(N)

    >

    )#

    归约

     

    #(N,N

    >

    )#

    归约

     

    #(N

    =

    )#

    移进

     

    #(N)

    >

    #

    归约

     

    #N

     

    #

    接受

    3.尝试编写自下而上的语法分析程序。

    可以只写表达式部分。

    4.写出a+b*(c-d)+e/(c-d)↑n 的逆波兰表达式,三元式,四元式。

    答:

    三元式:(1)(-  cd

        (2)(* b(1)

        (3)(+ a(2)

        (4)(-  cd

        (5)(↑  (4)n

        (6)(/ e(5)

        (7)(+ (3)(6)

    四元式:(-cdt1

        (*bt1t2

        (+at2t3

        (-cdt4

        (↑,t4nt5

        (/et5t6

        (+t3t6

    逆波兰式:abcd-*ecd-n/+

  • 相关阅读:
    js语言结构小记(一)
    jquery插件:fancybox
    转载(深刻地了解到了js数组是引用类型)
    sqlite 页面结构分析
    有限状态机(FSM)的设计与实现(二)
    sqlite源码中的一个潜在Bug
    一种整数数据压缩存储的算法实现
    构建自己的内存池(一)
    sqlite Btree结构分析
    构建自己的内存池(二)
  • 原文地址:https://www.cnblogs.com/xuechendong/p/12033974.html
Copyright © 2011-2022 走看看