论文部分内容阅读
句法分析是结构模式识别系统的重要组成部分之一。然而,传统上句法分析单元的实现方式是通过编写专门的过程语言的代码。当应用领域需要识别的文法规模十分庞大时,编写出能够快速对样本进行识别的程序,并不容易。本文尝试通过将句法分析算法与关系代数模型紧密集成,利用关系数据库系统能够组织和快速检索海量数据的特点,增强句法分析单元处理复杂文法样本的能力,同时减轻用户的编码负担。我们给出了Earley (?)(?)法分析算法的扩展关系模型。在此框架中,任意部分推导树集合可对应表示为关系代数中一个关系;部分推导树之间的运算被表示为关系代数运算;语法分析算法被对应表示为一条递归查询语句;过程语言描述的运算过程与递归查询的查询执行在单个运算、控制结构、数据结构三个方面存在对应关系。依据此框架,我们给出一种新的Earley语法分析关系代数算法,及其公用表表达式(CTE)实现和存储过程的实现。并通过原型系统验证了该方法的可行性。属性文法兼有决策理论方法和结构方法两者的特点,所以在模式识别领域中受到广泛的注意。因此进一步本文尝试将基于关系代数的方法推广应用于属性文法的语义分析问题,给出一种基于关系代数的Earley综合属性语法制导翻译算法。将其应用于一个基本的综合属性计算问题——算术表达式求值问题,算法可在读入表达式词法分析结果的同时,计算出表达式的值。从而验证了该方法的可行性。已知了Earley语法分析算法与关系数据库间存在的这些对应关系,在今后的算法设计中就可以全部或部分地利用这些关系,有选择地将句法分析问题全部或部分转化为数据库查询问题,借助关系数据库系统处理海量数据的优势,增强句法分析单元处理复杂文法样本的能力。此外,借助本文给出的扩展关系代数运算,可以方便地表达Earley语法分析算法运算过程中产生的语法分析项目或部分推导树之间的关系。理论方面,由于已知这些对应关系,对于一个领域的某些问题,通过类比,有可能从另一个领域获得启发。例如,我们可以通过比较二者,发现相对查询执行而言,过程语言所描述的算法在某些方面具有更高执行效率的原因。这些无疑是数据库查询处理可以借鉴的。