1.梳理第二章的内容,写一篇理解与总结。

  文法是用于描述语言的语法结构的形式规则。任何一种语言都有它自己的文法,不管它是机器语言还是自然语言。就像自然语言里有主谓宾这样的文法一样,机器语言也有描述它语言构成的特定文法。文法分四种类型,分别是0型文法、1型或上下文有关的、2型的或上下文无关的、3型文法或正规文法

  4种文法类型的定义是逐渐增加限制的,因此每一种正规文法都是上下文无关的,每一种上下文无关文法都是上下文有关的,而每一种上下文有关文法都是0型文法。称0型文法产生的语言为0型与语言。上下文有关文法、上下文无关文法和正规文法产生的语言分别称为上下文有关语言、上下文无关语言和正规语言

  描述上下文无关文法的句型推导的直观工具,即语法树,也称推导树。如果在推导的如何一步α=>β,其中α、β是句型,都是对α中的最左(最右)非终结符进行替换,则称这种推导为最左(最右)推导。在形式语言中,最右推导常被称为规范推导。由规范推导所得的句型称为右句型或规范句型

 

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

整数n        n=...|-1|0|1|2|...

标识符i      i=<标识符>

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

 

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

 

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

 

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

 

函数          (不会嘿嘿嘿)

 

程序          ::=<分程序>.