[发明专利]用于线性广义LL识别和上下文感知解析的方法和系统有效
申请号: | 201580037492.4 | 申请日: | 2015-07-10 |
公开(公告)号: | CN106663094B | 公开(公告)日: | 2020-03-27 |
发明(设计)人: | 洛林·G·克雷默三世 | 申请(专利权)人: | 洛林·G·克雷默三世 |
主分类号: | G06F40/211 | 分类号: | G06F40/211 |
代理公司: | 北京天昊联合知识产权代理有限公司 11112 | 代理人: | 顾丽波;井杰 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 线性 广义 ll 识别 上下文 感知 解析 方法 系统 | ||
一种计算机系统和一种文法分析的方法,用以生成用于运行时识别的代码,以产生在随后的解析期间给定语句要遵循的方向的列表或多个列表的图形表示。所述计算机系统实施所述方法以:解析文法以创建中间表示;构造表示文法的所有特征的用于分析的图形,所述特征包括递归、交替、备选项的分组、和循环;处理所述图形中的每个决策点,用以生成所述中间表示;生成返回在运行时解析决策中使用的方向的列表的识别函数的代码;并且修补每个决策点标记以引用或内联每个决策点的顶层识别代码。
相关申请的交叉引用
本申请要求于2015年7月10日提交的美国申请No.14/796,782和于2014年7月11日提交的美国临时申请No.62/023771的优先权,其以引用方式并入全文。
技术领域
如本文所示和所述的本发明的实施例涉及根据形式文法的规则的形式语言中的符号串的解析。具体地,实施例提供了在不存在歧义的情况下具有O(n)性能的改进的通用LL(从左至右,最左侧推导)解析处理。
背景技术
解析(parsing)(也称为语法分析)是对可以是字符串或类似格式的一组符号进行分析的处理,其中,“字符串(string)”是项目(在此情况下为符号)的序列,其中序列是有限的且符号是从被称为字母表的一组可能的符号中选择的。解析处理可应用于自然语言、计算机语言和包括DNA序列的类似系统。解析处理应用特定于被处理的语言的形式文法的一组规则。解析处理是计算机实现的处理,并且在计算机科学领域并且更具体地在计算语言学领域中所理解的意义上使用该术语。
在计算语言学中,解析处理还被理解为用于指代通过计算机处理器和程序对自然语言或计算机语言中的句子或其它单词串进行形式分析得到其组成部分,并得出显示每个组成部分与每另一个组成部分之间的语法关系的解析树。该解析树还可以包含关于被处理的句子或单词串的语义信息和其它相关信息。
在计算机科学中的一些应用中,解析处理用于计算机语言的分析,并且涉及对输入的代码进行语法分析得到其组成部分,以有助于起到将以一种计算机语言编写的代码转换为可执行形式(即,计算机处理器能够执行的计算机语言)的功能的编译器和/或解释器的后续功能。
发明内容
一种计算机系统和一种文法分析的方法,用以生成用于运行时识别的代码,以产生在随后的解析期间给定语句要遵循的方向(direction)的列表或多个列表的图形表示。所述计算机系统实施所述方法以:解析文法以创建中间表示;构造表示文法的所有特征的用于分析的图形,所述特征包括递归、交替(alternation)、备选项的分组、和循环;处理所述图形中的每个决策点,用以生成所述中间表示;生成返回运行时解析决策中使用的方向列表的识别函数的代码;并且修补每个决策点标记(token)以引用或内联每个决策点的顶层识别代码。
附图说明
在附图的图中通过示例而非限制的方式示出了本发明的实施例,其中相同的附图标记指示类似的元件。应当注意,在本公开中对本发明的“一”或“一个”实施例的引用不一定是指相同的实施例,并且它们意味着至少一个。
图1是代码的图形表示的一个实施例的流程图。
图2是代码的图形表示的一个实施例的流程图。
图3A至图3D是根据图1的递归子图的推导的一个实施例的示图。
图4是用于代码生成的处理的流程图。
图5是决策点分析处理的一个实施例的流程图。
图6是决策点分析列表处理的一个实施例的流程图。
图7、图8和图9示出了运行时分析处理的最简单的版本(使用受限制的GOTO模型)。
图7是总体框架的流程图。
图8是添加到方向列表的处理的流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于洛林·G·克雷默三世,未经洛林·G·克雷默三世许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580037492.4/2.html,转载请声明来源钻瓜专利网。