我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:多盈娱乐注册 > 多带图灵机 >

编译原理之形式语言文法分类

归档日期:08-08       文本归类:多带图灵机      文章编辑:爱尚语录

  形式语言理论(formal language theory)是用数学方法研究自然语言(如英语)和人工语言(如程序设计语言)的产生方式、一般性质和规则的理论。形式语言是模拟这些语言的一类数学语言,它采用数学符号,按照严格的语法规则构成。从广义上说,形式语言是符号取自某个字母表的字符串的集合。如同自然语言具有语法规则一样,形式语言也是由形式文法生成的。一个形式文法是一个有穷变元集合,这些变元也称为非终结符或语法范畴。每个变元都可以用来定义语言,定义方式可以是递归的,即通过一些称为终结符的原始符号,加上变元自身,递归地加以定义。和变元有关的规则称为产生式,产生式决定了语言是如何构造出来的。一个典型的产生式表示:给定变元所代表的语言包含这样一些字符串,它们是通过连结运算,将另外某些变元语言中的字符串和若干终结符连结起来而得到的。

  PS:形式语言理论是编译原理的重要理论基础,形式语言理论中主要讨论了语言和文法的数学机制以及语言和文法的分类。文法是形式语言中一个十分重要的基本概念。

  1,字母表与符号:字母表是元素的非空又穷集合。例如,由26个英文字母组成的集合是一个字母表。字母表记为∑。字母表中的元素称为符号。例如,26个英文字母中的元素a,b,c等等都称为符号。

  a,符号串:符号的又穷序列称为符号串。有字母表中的任意符号组成的序列都是符号串。什么符号也不包含的符号串称为空符号串,以希腊字母 ε 表示。

  b,符号串的长度:符号串所包含符号的个数,称为符号串的长度。设x是一符号串,它的长度记为x,例如,x = string, x = 6。特别有 ε  = 0,即空符号串的长度等于0。

  c,符号串的连接。设x,y是两个符号串,则xy 称为x 与 y 的连接。特别有εa = aε = a,其中,a是任意符号串。

  d,符号串集合的乘积。设A,B是两个符号串集合,AB表示A与B的乘积,则定义AB={ xy x∈A,y∈B}。特别有 {ε}A = A{ε} = A , φA = Aφ = φ,其中,φ为空集。

  f,符号串的方幂。同一符号串的连接可写成方幂的形式。设x是一符号串,则定义

  g,符号串集合的方幂。同一符号串集合的乘积也可以写成方幂的形式。设符号串集合 A,则定义

  h,符号串集合的正闭包。设符号串集合A的正闭包记为A+,则有 A+ = A1 ∪ A2 ∪ A3 ... An , 即A+为集合A上所有符号串的集合。

  i,符号串集合的自反闭包,设符号串集合A的自反闭包记为A* ,则有,A* = {ε} ∪ A+ = A+ ∪ {ε} 。对于集合A来说A的正闭包和A的星闭包的区别在于是否包含 ε (空符号串),包含空符号串的是星闭包,不包含的是正闭包。

  文法是编译原理的基础,是描述一门程序设计语言和实现其编译器的方法。文法是定义描述语言的语法结构的一组形式规则,一个程序语言的文法之目的就是用适当条数的语法规则把该程序语言的全部成分描述出来。文法可定义为一个四元组,文法G = (Vn,Vt,P,S)。其中,Vn 是一个非空有穷的非终结符号集,Vt 是一个终结符号集,P是一个产生式集合,S∈Vn 是文法的识别符(也称做开始符号)。从文法的开始符号出发反复使用其中的产生式对非终结符进行替换和展开推导出语言中的各种句子。在定义文法之前,需要先定义产生式。

  Vn:非空有穷的非终结符号集。在英文表示中所有的大写字母都是非终结符号是可分解的,小写字母都是终结符号是不可分解的。在中文表示中所有的带 “ ”是非终结符号是可分解的,不带 的是终结符号是不可分解的。

  Vt:非空有穷的终结符号集。在英文表示中所有的大写字母都是非终结符号是可分解的,小写字母都是终结符号是不可分解的。在中文表示中所有的带 “ ”是非终结符号是可分解的,不带 的是终结符号是不可分解的。

  P:非空有穷的产生式集合。产生式又称重写规则,它意味着能将一个符号串用另一个符号串替换,可以用产生式的右部符号串替换左部的符号串。产生式可以通过 “::=”或  ”→“ 来定义(用来定义语法结果),即 α→β 且 V = Vn ∪ Vt , Vn ∩ Vt = φ , α ∈ V+ , β∈ V* 。

  S:称作识别符号或开始符号的一个非终结符,它至少要在一条产生式中作为左部出现。

  1,0 型文法(短语文法):0 型文法所有产生式的左部 α 和右部 β 都是符号串,对它们没作任何限制。即产生式的左部至少有一个非终结符右边随意。若对0 型文法的产生式作某些限制,则可以给出其他三种类型的文法。

  2,1 型文法(上下文有关文法):1型文法所有产生式左部可以含有一个、两个或两个以上的字符,但其中必须至少有一个非终结符。产生式右部的符号串的长度必须大于等于左边符号串的长度。对于产生式 “S→ε”是1  型文法中的一个特例。

  3,2 型文法(上下文无关文法 左线 型文法的所有产生式左部是单个非终结符,右部是由终结符和非终结符组成的符号串。

  4,3 型文法(右线 型文法所有的产生式右部是单个终结符或单一终结符后跟着单一非终结符。产生式右部符号串长度小于等于2。

  解释:我们判断文法G是什么类型文法时可以从最复杂的3型进行判断,依次向下判断,如果不符合3型的,那再看是不是2型的,不是2型的,再看是不是1型的。对于文法G来说产生式集合P中有两条产生式左部不是单个非终结符(Ay→yA,Az→yzz),所以文法G不是3 型文法也不是2 型文法( 2 型文法和3 型文法都要求P中的每条产生式左部必须为单个非终结符)。再看是不是1 型文法,文法G中P的每条产生式都满足产生式左部由1个或2个字符构成并且必须含有一个非终结符,每条产生式的右部符号串的长度都大于等于左部符号串的长度。即文法G是1 型文法。

  PS:4个文法类型的定义是逐渐增加限制的。因此每一种正规文法都是上下文无关的,每一种上下文无关文法都是上下文有关的,而每一种上下文有关文法都是0型文法。 从外到内四种文法对产生式的限制越来越多,其语言的描述能力越来越弱。

  参考:形式语言文法定义G=(N,∑,P,S),其中N为终止符集合,∑为终止符集合,P为产生式集合,S为起始语句G=(N,\sum,P,S),其中N为终止符集合,\sum为终止符集合,P为产生式集合,S...

  马上就要编译原理的考试了,看了看去年试卷,做几道题,发现自己对文法的概念都很模糊,下面整理了一下四种文法的基本概念:那么什么是文法呢?乔姆斯基把文法分成四种类型,即0型、1型、2型和3型。这几类文法...

  1.文法的分类Chomsky文法分类将文法分为四种,逐渐对产生式施加限制形成一个层次:0型:G=(VT,VN,S,P)规则形式:α→β,α,β∈(VT,VN)*,α≠ε推导:γαδ⇒γβδ1型(上下文...

  形式语言1.形式语法定义无论哪种语言都是句子和符号串的集合,描述一种语言的三种方法:1.穷举法:把语言中的所有句子都枚举出来。2.文法描述:语言中的每个句子用严格定义的规则来构造,利用规则生成语言中合...

  一、对程序设计语言的描述从语法、语义和语用三个因素考虑:a)语法:对语言结构的定义;b)语义:语言的含义;c)语用:从使用的角度描述语言。形式语言理论是编译的理论基础。二、字母表:元素的非空有穷集合;...

  在上下文无关文法的定义中,要求产生式的左部是一个非终结符,而产生式的右部是非终结符和终结符串。但是有一类产生式非常特殊。它们形如V→ϵV\rightarrow\epsilon这里V是非终结符,而ϵ\e...

  2.1对于文法G[Z],已知u是句型,则判断()是正确的A只要使用规范推导,无论如何一定可以从Z推导出uB只要依据产生式进行归约,则u一定可以归约成ZC上面的A和B都是对的D上面的A和B都是错的2.2...

  1,   实验名称文法类型的判断和推到序列的生成2,   实验目的输入:一组任意的文法规则和任意符号串。输出:相应的Chomsky文法类型和推导。3,   实验原理1,文法定义:文法G定义为四元组(V...

  文法:以有穷的集合描述无穷的计划的工具。字母表:元素的非空有穷集合,其中的元素称为符号,因此也叫符号集。符号串:由字母表中的元素组成的任何有穷序列,串中的元素个数叫做符号串的长度,空符号串ε,长度为0...

  当我们要描述一种语言时,需要给出这种语言的所有句子,当句子的数目是有限可数时,就要都列出来;当句子是一个无穷集,也就是无限不可数时,就要给出可以表示它们的结构的描述方法或者说,句子的组成规则。这种规则...

  学习《统计自然语言处理-宗成庆》这本书时,对理论部分第三章-形式语言与自动机存在许多困惑,因为抽象的概念比较多,而且例子比较少,理解起来比较晦涩,故自己整理下这方面知识,以期巩固知识,加深理解。一...

  点开这篇博文的人应该大多学过或在学《形式语言与自动机原理》这门课,有时候称为《计算理论导引》,这篇博文的目的是给迷茫的学弟学妹指明这门课的实践运用之路。如果你们学校这门课有实验课或是期末写论文的话,本...

  什么是属性文法一个属性文法是在上下文无关文法的基础上,允许每个文法符号XXX(终结符或非终结符)根据处理的需要,定义与XXX相关的属性。对属性的处理有计算、传递信息等,属性处理的过程也就是语义处理过程...

  摘要:形式语言与自动机是计算机科学的理论基础,对于计算机科学与技术专业人才的计算思维能力培养极其重要。本文首先从Chomsky谱系出发,对形式语言的概念和类别进行了阐述,然后按照形式文法与自动机之间的...

  常用的语法分析方法包括自顶向下和自底向上的方法,在上一篇文章中已经介绍了自顶向下的语法分析方法,本文将介绍自底向上的语法分析方法。...

  [编译原理读书笔记][第4章语法分析]标签(空格分隔):未分类首先介绍概念,然后介绍适合手工实现的技术,最后介绍用于自动化的工具的算法,然后因为经常包含语法错误,讨论如何扩展语法分析方法,以便从常见错...

  0.写在前面计算语言学,这种偏向工科的文科名字,又该怎么定义语言呢?语言的形式有是什么样子?怎么才能形式化语言以使得计算呢?自动机是什么东西,和图灵机有关系么?说了这么多有什么用呢?这一个个疑问,我们...

  形式语言1.关于语言的定义人类所特有的用来表达意思、交流思想的工具,是一种特殊的社会现象,由语音、词汇和语法构成一定的系统。2.语言描述的三种途径...

  3-1.构造上下文无关文法用以产生:(a)有相同数目的和的所有符号串。(b)。3-2.有以下文法:其中:求3-3.写一个程序模拟一个确定性的PDA。3-4.设文法由如下规则定义:给出下列句子形式的派生...

  本程序的基本数据结构是一个字符型的二维数组。 先将文本文件一行一行的读入二维字符数组中,每一行只有一个产生式; 然后将二维数组中的每一行进行判断处理,先通过扫描找到每一行的推导符号“-”; 对“-”前面以及后面的字符...

  以及判别 我们说人线类,看课本的定义非常晦涩。我尝试着用通俗的线类文法。我们结合各个博主的说法,来形成我们自己的说法。我们看到的文法都至少属于0型文法。1型、2型、3型都逐步对0型文法加条件。非常正确...

  编译原理(九) LR(0)文法分析法(算法描述和C++代码实现)12-02

  形式语言与自动机_笔记整理(三)_图灵机与递归语言、递归可枚举语言12-25阅读数 1012

  1. 用C/C++语言编写方法的化简和改造程序,实现以下功能之一(如实现两个功能,则满分为110分;如实现三个功能,则满分为120分): (1) 无用符号和无用产生式的删除,参考课本中算法2.1和算法2.2。 (2) ε-产生式的消除,参...

  介绍文法和语言的定义,字母表(符号集)和字符串上的操作,文法的类型,上下文无关文法及其语法树,提供典型例题和详细解答。...

  用C语言编写实现编译原理实验判断文法是不是LL1文法的程序。程序简单易懂,且基本功能都实现了。

  压缩文法使用的前提:在文法中无U::=U的情况,在本例中未进行该项的判别,需要人工识别该类规则       在写压缩代码前本来想借鉴网上的代码,但是代码运行实在是太差了,还是自己写吧。由...

  机器学习教程Objective-C培训交互设计视频教程颜色模型设计制作学习

本文链接:http://cakesbyrita.net/duodaitulingji/1109.html