句法分析

句法分析_4分词条

  判断一个句子x是否符合给定句法的过程,也是检验x是否属于给定文法G所生成语言L(G)的过程。句法分析又称剖析。一类模式由文法G所描述也就是对x表示的模式的识别过程。因此,各种句法分析方法均可作为模式识别手段。当G为正则文法时,句法分析一般借助于有限自动机,看 x是否为相应的自动机所接受(见语言识别器)。当G为上下文无关文法时,实现句法分析可用各种剖析算法,其中主要的有自上而下的剖析、自下而上的剖析、CYK剖析算法和厄尔利剖析算法等。但G为上下文敏感文法或 O型文法时,还没有高效率的句法分析方法(见短语结构文法)。
  自上而下的剖析  这种剖析是“面向目标”的,从起始符S出发,利用产生式再写句型中的非终止符,以尝试逐步地匹配输入符号串x。若对某一阶段的子目标(x的一个前缀)匹配失败,就必须回溯,再进行其他尝试。如果一切尝试都已失败,则可断言x不属于 L(G)。例如,设G由产生式:①SaSbS,②SaS,③S→c规定,且输入符号串x=acbc,则对x的自上而下剖析过程如图1,依次利用产生式①、②、③,就可由 S出发导出x。这相当于自上而下地构成x的派生树(图2),剖析方法由此得名。

句法分析句法分析
 
句法分析句法分析
 
句法分析句法分析

  自下而上的剖析  与自上而下的剖析过程相反,这是从输入符号串x开始,尝试用产生式左端的非终止符代换句型中的句柄(即与产生式右端相同的子串),以期逐步达到将x缩为起始符S的目标。若某一阶段的尝试失败,也需要回溯并进行其他尝试。如果一切尝试失败,就可以断言x不属于L(G)。例如,以从左到右的次序代换句型中的句柄,对输入字符串x=acbc用前述文法进行自下而上的剖析,其过程如图3。由此可见,依次利用产生式③、②、①,可将x逐步缩减到S。这相当于自下而上地构造x的导出树(图2),故称自下而上的剖析方法。
  CYK剖析算法  句法分析这种算法是J.科克(Cocke)、D.H.杨格 (Younge)和 T.卡萨米(Kasami)三人于1967年前后各自独立地发现的,并以他们的姓的第一个字母命名。当上下文无关文法G 处于乔姆斯基范式,即产生式的形式为A ─→BCA ─→α 时,可用CYK算法对输入符号串x=a1a2an进行句法分析。具体步骤是构造一个三角形的表 T={tij|1≤in+1-j,j=1,2…,n},其中 ti1={A|若A─→aiG的产生式},i=1,…,n,且当 1<jn时,tij={A|若有某个k,1≤kj使Btik ,C∈ti+kj-k,且A─→BCG的产生式},1≤in+1-j。在构造好表T 以后,由起始符S 是否属于t1n来确定x是否属于L(G)。例如,设G由产生式s─→As,s─→b,A─→sA,A─→a规定,且输入符号串x=abab,则表T 如图4。因st14,故xL(G)。
  厄尔利剖析算法  这种算法是J.厄尔利于1968年提出的,是对一切上下文无关文法G=(N,∑,P,S)都适用的高效率句法分析方法。当输入符号串x=a1a2an时,先构造剖析表列I0I1,…,In,其步骤如下:
  ① 令j=0。对P 中每个形如s─→α 的产生式,把项目【s-→·α,0】添加到I0中。
  ② 若【B─→β·,i】在 Ij中,则对 Ii中每个形如【A─→α·Bγ,k】的项目,把【A─→αβ·γ,k】添加到Ij中,这里 ij
  ③ 若【A─→α·Bγ,i】在Ij中,则对P中每个形如B─→β的产生式,把项目【B─→·β,j】添加到Ij中。
  ④ 重复第2步和第3步,直到没有新项目可添加到Ij中为止。然后,若j=n则终止,否则用j+1代替j并执行下一步。
  ⑤ 对Ij-1中每个形如【A─→α·ɑjγ,i】的项目.把【A─→αɑjγ,i】添加到Ij中。转到第2步。在剖析表列I0I1,…,In构造完毕后,由项目【S─→α·,0】是否属于In来确定x是否属于L(G)。例如,设G由产生式S─→SA,S─→A,A─→ɑA,A─→b规定且输入符号串x=bab,则其剖析表列是
       I0           I1
    【S-→·SA,0】     【A-→b·,0】
    【S-→·A,0】     【S-→A·,0】
    【A-→·ɑA,0】     【S-→S·A,0】
    【A-→·b,0】     【A-→·ɑA,1】
                          【A-→·b,1】
       I2           I3
     【A-→a·A,1】 【A-→b·,2】
     【A-→·ɑA,2】    【A-→ɑA·,1】
     【A-→·b,2】     【S-→SA·,0】
因【S─→SA·,0】属于I3,故x属于L(G)。
  对于模式识别来说,句法分析是对输入模式的识别过程,也是对输入模式的结构进行分析的过程。由于它的重要性,除了上述方法外,不少研究者针对不同形式的文法进行了大量的工作,并已取得了不少有益的成果。
  参考书目
 A.V.Aho and J.D.Ullman,The Theory of Parsing, Tranlation and Compiling,Vol.1,Prentice-Hall, Englewood Cliffs, N.J., 1972.

 

附图

上传图片 

互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。如需转载,请注明来源于www.hudong.com

被引用: 句法分析已被如下媒体引用 我来补充
互动百科联盟苏州ITPro中文网 阿里站长百科
开放分类: 我来补充
计算机术语
计算机编程

讨论区

更多>>

编辑者

共4人协作

相关词条

DIRECTX
上下文无关文法
短语结构文法
欧宗瑛
进程调度
中国数学史
等价文法
数字水印
算符优先分析法
文法推断
更多

Copyright © 2005-2009 hudong.com Ltd. All Rights Reserved. 互动在线 版权所有