首页 > 编程语言 > 详细

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

时间:2019-09-26 09:32:31      阅读:116      评论:0      收藏:0      [点我收藏+]

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

函数

程序

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

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

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

原文:https://www.cnblogs.com/hqling/p/11588513.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!