kzg

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1. 梳理第二章的内容,写一篇理解与总结。
  2. <句子>::=<主语>|<谓语>

      <主语>::=<代词>|<名词>

      <代词>::=我|你|他|它

      <名词>::=教师|大学生|.....

      <谓语>::=<动词>|<直接宾语>

      <动词>::=是|学习.....

      <直接宾语>::=<代词>|<名词>

  3. 例子G(S):S-->01 | 0S1

    0S1-->0011一步到位,换掉左边一个非终结符变成右边终极符形式,叫做直接推导,也称作一步推导

    最左推导:如果在推导过程中每次都优先换掉最左边的非终结符,就是最左推导啦

    最右推导:就是最左反过来,每次都先换最右边的非终结符。

    举个例子,有文法:    找 i+i

           G(E):

      E=> E + T | T

      T=>T * F | F

      F=>(E)| i

    最左:E --> E+T--->T+T--->F+T--->i+T -->i+F -->i+i

    最右:E -->E+T -->E+F -->E+i -->T+i -->F+i -->i+i

    4)分析树

    分析树,又称推导树,是推导过程的图示化方法,是一棵有序有向树,因此具有树的性质。

    还是上面的例子,找 i*i+i

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

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

  4. 这个表不会

     

     

2. 尝试写出PL/0 语言的文法。(或者你认为比较好的语言规则)

整数n      n-->0|1|2|3|……|8|9

标识符i     i->a|b|c|……|y|z|A|B|C|……|Y|Z (<字母>{<字母>|<数字>} )

表达式e     ::= [+|-] <项> {<加减运算符><项>}

条件语句    ::= if <条件> then <语句>

赋值语句    ::= <id> :=<表达式>

复合语句    :: = begin<语句>{;<语句>} end

函数        ::= =<主函数>

程序       ::=<分程序>::=[<常量说明部分>][<变量说明部分>][<过程说明部分>]<语句>

posted on 2019-09-27 20:48  kzg  阅读(101)  评论(0)    收藏  举报