4.文法和语言总结与梳理

江枫思渺然 提交于 2019-11-30 12:36:36

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

答:在第二章文法和语言的学习中,首先了解了文法和语言的概念,当我们要表述一种语言时,我们无法列出语言包含的全部句子,这时候就需要用一些规则来说明或是定义句子的组成结构,而这种组成结构就是文法。我们可以用适当条数的文法规则把语言的全部句子描述出来,文法是以有穷的集合刻画无穷的集合的一个工具。

        接着学习了何为符号,何为符号串以及符号串的一些简单运算,例如:符号串的头尾,固有头和固有尾;符号串的连接;符号串的方幂;符号串集合,闭包等。

文法和语言的形式定义,将文法G定义为四元组(Vn,Vt,P,S),Vn为非终结符(或语法实体,或变量)集,Vt为终结符集,P为规则的集合,且至少包含一个非终结符,Vn,Vt,P是非空有穷集,S是识别符或开始符,它是一个非终结符。Vn和Vt不包含公共的元素。

       文法的类型分为四种:即0型、1型、2型和3型。0型文法为短语文法,即所有产生式都是α→β这种结构,α∈(Vn∪Vt)*且至少含有一个非终结符。1型文法也称为上下文有关文法即每个产生式α→β均满足|β|≥|α|,仅S→ε除外。2型文法也称为上下文无关的,即P中的每一个产生式α→β满足:α是一个非终结符,β∈(Vn∪Vt)*。3型文法也称为正规文法,即P中的每一个产生式的形式都是A→aB或A→a,其中A和B都是非终结符,a∈Vt*

      语法树是一种描述上下文无关文法的句型推导的直观工具,也称为推导树或分析树。假设G为文法,S是文法的开始符号,αβδ是文法G的一个句型。短语:S*=>αAδ,且A+=>β,则β是句型αβδ相对于非终结符A的短语。直接短语:若有A=>β,则β是句型αβδ的直接短语。句柄:一个右句型的直接短语称为该句型放入句柄。

      文法的二义性:如果一个文法存在某个句子对应两棵不同的语法树,包含两个或两个以上的最右(最左)推导,则该文法是二义性。

      语言的二义性:若某种语言根本不存在无二义性的文法,则成为二义性的语言。

 

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

整数n

<数字>->0|1|2...|8|9

标识符i

<标识符i>-><字母><数字>

表达式

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

条件语句

<条件语句>-> if<条件>then<语句>

赋值语句

<赋值语句>-><标识符>-><表达式>

复合语句

<复合语句>-> begin<语句>{;<语句>} end

函数

程序

<程序>-><分程序>.

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!