您好、欢迎来到现金彩票网!
当前位置:双彩网 > 线性文法 >

编译原理文法分类和推导树 学步园

发布时间:2019-06-08 00:44 来源:未知 编辑:admin

  引言:上篇博客简单介绍了一下文法的基础知识,这篇博客重点介绍文法的分类和推导树。

  1956年,Noam Chomsky根据对产生式所施加限制的不同行,把分发分为了四种类型,并定义了相应的四类形式语言,如下:

  0型文法也称为短语文法。一个很重要的结论是,0型文法的能力相当于图灵机。任何0型语言都是递归可枚举的;反之,递归可枚举集必定是一个0型语言。

  0型文法是限制最少的一个文法,产生式只需满足左部包含一个非终结符(大写)即可,例如:A0→A0 , A1→B。

  1型文法又称为上下文有关文法,在0型文法的基础上,新加一条限制:产生式右部长度大于等于左部长度,例外情况是 S→ε,即推导出来的是空集。例如0A0→011000。

  2型文法又称为上下文无关文法,在1型文法的基础上继续添加限制:产生式左部都是非终结符。例如:A→ab,AB→BAc。

  3型文法是最严格的一种文法,也称之为正规文法,在2型文法的基础上继续添加限制:即其产生式的右部至多有两个符号,而且具有下面形式之一: A →a ,A →aB, 其中A,B∈VN ,a∈VT 。注意3型文法只能是左线性或右线性,不能二者同时有,左线性和右线性指的是产生式右部,非终结符所在位置是左还是右。

  如果所有的终端结点都是与终结符关联的,每棵推导树的终端结点自左至右所构成的字符串是文法G的一个句型,则该字符串是文法G的一个句子,此时该推导树是完全推导树。

  3.若一结点n至少有一个它自己除外的子孙,并且有标记A,则A肯定在VN中;

  4.   加果结点n的直接子孙,从左到右的次序是结点n1,n2……nk,其标记分别是:A1,A2,…,Ak,那么A一>A1,A2…Ak,一定是p中的一个产生式。

  由产生式可以得到VT={a,b},VN={S,A},分解出S→aASa,即S→aAS,S→a,A→SbASSba,即A→SbA,A→SS,A→ba,根据分解出的产生式,可以得到推导树:

  正规式又叫正则表达式,是一种表示正规级的工具,每个正规式对应一个正规文法(3型文法)。

  例如语言L={a^mb^nm=0,n=1}的正规式:因为*代表0到多个、m的值为大于等于0,所以a^m可以表示为a*,而n大于等于1,可以使用bb*来表示,所以语言L的正规式可以表示为a*bb*。

http://jubileeny.net/xianxingwenfa/170.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有