1 / 3
文档名称:

面向对象文法分析.pdf

格式:pdf   页数:3页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

面向对象文法分析.pdf

上传人:282975922 2016/3/15 文件大小:0 KB

下载得到文件列表

面向对象文法分析.pdf

相关文档

文档介绍

文档介绍:第23卷第1期计算机工程与设计 2002年1月文章编号1000—7024{2002101—0010—03 中图分类号:TP302 面向对象文法分析文献标识码:A 陈斌文,缪栋(第二炮兵工程学院303教研室,西安 710025) 摘要:针对编译中的文法分析部分进行了深入探讨,循序渐进地将文法分析进行面向对象方法实现从理论根据及示例可以看出:用面向对象方法进行文法分析,可以彻底解决传统文法分析中的左递归、歧义性及回溯问题,且实现起来很方便、灵活,并具有良好的可操作一_生与可扩展性关键词:文法分析:递归;面向对象 rammeranalysis (303Section,Xi。-mch,Xi。anl,710025) 1引言在文法分折中,传统做法的核心是把产生式看成一种改写规则,即用产生式右部字符串替换左部非终结符号的规则。这样做会有几个基本问题:文法错误的排除、文法歧义性、文法左递归等。、。本文针对传统文法分析中的缺陷,创造性地提出了面向对象文法概念,并实现了传统文法转换到面向对象文法的算法步骤 2文法的面向对象特性及其生成算法 21传统文法与对象特一的联系传统定义中,一个文法(G)是一个四元组G=(N,T,P, s)“,其中:①N是非终结符号的有限集合:②;◎P是形如A::=q的产生式的有限集台,其中A∈N,Ⅱ∈v,V=(ToN):④S是N中的区分符号,称为开始符号或句子符号从定义中可看出:P中的每个产生式都是一个标准的 BNT表达式,它的左部是一个非终结符,, 这使我们联想到c1斗中的类的构造函数,它是用一些对象来构造一个新的对象。因此,可如此设计:每个非终结符号都可被看成是某种类型对象,以该非终结符号为左部的 BNF表达式右端则可看成是该类型对象的一个构造函数。其次,按文法中的产生式定义,由开始符号S能推导出其它所有非终结符号,这也相应于面向对象中的基樊与派生类的关系:基类指针可指向派生类对象。目此,传统文法中的所有非终结符号的集合,可转化为一个面向对象方法中的类的集合其中开始符号S所对应的类可派生出其它所有的类即这种类的集合可成其为一个类库,而s所对应的类则是该类库的基类文法中的所有产生式,都是该产生式左端非终结符号所对应的类的一个构造函数 (1)面向对象文法定义在21节的基础上,我们可以将个传统文法转化为一个类库。但实际应用(编译)时,当词法分析模块的输八于系统从操作系统读八数据以后,应该用源程序中的哪些部分构造哪些类对象(非终结符号), 却不能确定举一个很简单的例子,一个典型的传统文法是如下定义: 收璃日期;2000—10—08 作者苘介:陈斌文(1972-),,讲师,、制导误差与精度分析攫栋(1940一I】男,浙维普资讯 因为该文法中只有一个非终结符号,所以该类库中只有一个娄,暂记为E,这一个类很容易实现。当输入子系统读入数据为一十id值时构造类E的一个实例化对象没有问题:但当输^子系统读入数据为id+id—jd??时究竟用所读入数据的哪些部分来构造一个类E的