zoukankan      html  css  js  c++  java
  • 编译原理第二次作业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

  • 相关阅读:
    [转]只有程序员才能看懂的幽默
    论安防集成管理平台规范标准建设的重要性和必要性
    视频集成技术演进与创新实践
    (转)jQuery中Ajax事件beforesend及各参数含义
    (转)如何打一手好Log
    marquee标签
    如何学习Git,如何使用Git
    学习vue
    python安装教程
    Jmeter压力测试(入门篇)
  • 原文地址:https://www.cnblogs.com/chock/p/11514903.html
Copyright © 2011-2022 走看看