• 编译原理第二次作业9.11


    1.理解符号串与集合运算。

    L={A,B, … ,Z,a,b, … ,z}

    D={0,1, … ,9}

    说明下表示的含义:

    LUD:全部字母和数字在集合

    LD:由一个字母后跟一个数字组成的所有符号串的集合

    L4:由4个字母组成的所有符号串集合

    L*:由字母组成的所有符号串的集合

    D+:由一个或若干个数字组成的所有符号串集合

    L(LUD)*以字母开头,后跟字母、数字组成的所有符号串的集合

     

     

     

    1. 文法G(Z):Z->aZb|ab定义的是什么样的语言?

    答:

    因为Z->aZb

    所以Z->aaZbb

    因为 Z->ab

    所以Z-> aabb

    又因为Z->aZb

    所以aaZbb->aaabbb

    又因为Z->ab

    所以aabb->aaabbb

     LG={anbnn>=1} 

    因此定义LG)定义的是anbn

    3.写出教材22页例2.2中标识符的文法四元组形式(VN,NT,P,S)。

    有文法G=(Vn,Vt,P,S)

      Vn ={L(标识符)D(字母)H(数字)}Vt ={a,b,c,d,~~~,y,z,0,1,2,~~~,9}   

      P={

             <L>-><D>

        <L>-><L><D>

        <L>-><L><H>

        <D>->a

        <D>->b

        <D>->c

         ……

        <D>->z

        <H>->1

        <H>->2

        <H>->3

         ……

        <H>->9   

      }

      S=<L>

     

    4.写出下列表达式的最左推导、最右推导。

    G(E):

    E=> E + T | T

    T=>T * F | F

    F=>(E)| i

    • i*i+i
    • i+i*i
    • i+(i+i)

     注意观察最左和最右推导过程的不同。

    最左推导:
      E -> E + T
          -> T + T
          -> F + T
          -> i + T
          -> i + T * F
          -> i + F * F
          -> i + i * F
          -> i + i * i
    最右推导:
      E -> E + T
         -> E + T * F
         -> E + T * i
         -> E + F * i
         -> E + i * i
         -> T + i * i
         -> F + i * i
         -> i + i * i

  • 相关阅读:
    Unity--------------------万向锁的概念
    unity--------prefab嵌套prefab
    ListView嵌套 EditText的光标不显示
    maven clean package 时出现Failed to read artifact descriptor for的问题解决
    maven打包之后为什么class文件中没有注释了?
    Maven中maven-source-plugin,maven-javadoc-plugin插件的使用
    c3p0三种配置方式(automaticTestTable)
    db2设置共享内存
    解决Tomcat数据连接池无法释放
    DB2死锁的解决办法
  • 原文地址:https://www.cnblogs.com/chock/p/11514903.html
Copyright © 2020-2023  润新知