[发明专利]编译计算机语言的方法和装置有效
申请号: | 201610200937.2 | 申请日: | 2016-03-31 |
公开(公告)号: | CN107291521B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 侯震宇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译 计算机语言 方法 装置 | ||
本发明公开了一种编译计算机语言的方法和装置。其中,该方法包括:依据预设语法检测待编译语句是否存在错误的语法单元;在检测结果为是的情况下,判断语法单元所在的子节点是否为对应的父节点中的可选节点;在判断结果为是的情况下,删除语法单元。本发明解决了由于现有技术中缺少对计算机语言进行容错编译的技术,导致的计算机语言编译效率低的技术问题。
技术领域
本发明涉及计算机技术应用领域,具体而言,涉及一种编译计算机语言的方法和装置。
背景技术
随着计算机语言的广泛运用,计算机语言的编译成为了计算机语言在使用过程中不可或缺的关键步骤,由于人工编写的计算机语言存在主观性,在计算机语言的语法上会出现初始的语法错误,因此如何高效正确的对人工编写的计算机语言进行编译成为了本领域技术人员需要解决的问题。
对计算机语言进行分析,编译,使其从人容易理解的语言变成计算机容易理解的语言,该编译基本过程是将源码变成认证Token序列,然后根据定义的语法grammer变成语法分析树(Parse Tree,简称PST),再经过语义分析变成抽象语法树(Abstract SyntaxTree,简称AST),这样得到的AST就可以被计算机理解了。
但是问题在于,由于被分析编译的源码由工程人员输入,经常有各种错误。对于简单的Token,例如使用了不该使用的字符,现有编译器大部分可以在生成PST阶段可以一定程度的容忍错误,尽量多的编译剩余的源码以便发现更多错误。但是如果出错的地方使其无法转换成对应的AST,因为AST是一个树形的嵌套结构,父节点依赖于所有字节点的正确生成,则会导致整个AST生成阶段无法进行。AST无法生成会导致依赖AST的功能无法使用,例如在编译中很多提示类型错误,在集成开发环境(Integrated DevelopmentEnvironment,简称IDE)中的提示用户可能用到的函数等。
现有技术中对所解析的语言的每一个语法单元进行特殊处理,判断其是否可以被允许进入更进一步的分析。但是工作量大,现实中对于一种计算机语言难以完整实现。依据上述提到的方法尽量生成AST,但是因为工作量太大且容易出错所以现实中难以实现。
针对上述由于现有技术中缺少对计算机语言进行容错编译的技术,导致的计算机语言编译效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种编译计算机语言的方法和装置,以至少解决由于现有技术中缺少对计算机语言进行容错编译的技术,导致的计算机语言编译效率低的技术问题。
根据本发明实施例的一个方面,提供了一种编译计算机语言的方法,包括:依据预设语法检测待编译语句是否存在错误的语法单元;在检测结果为是的情况下,判断语法单元所在的子节点是否为对应的父节点中的可选节点;在判断结果为是的情况下,删除语法单元。
根据本发明实施例的另一方面,还提供了一种编译计算机语言的装置,包括:检测模块,用于依据预设语法检测待编译语句是否存在错误的语法单元;判断模块,用于在检测结果为是的情况下,判断语法单元所在的子节点是否为对应的父节点中的可选节点;第一执行模块,用于在判断结果为是的情况下,删除语法单元。
在本发明实施例中,通过依据预设语法检测待编译语句是否存在错误的语法单元;在检测结果为是的情况下,判断语法单元所在的子节点是否为对应的父节点中的可选节点;在判断结果为是的情况下,删除语法单元,达到了在计算机语言存在多出错误的同时提升编译成功率的目的,从而实现了提升编译效率的技术效果,进而解决了由于现有技术中缺少对计算机语言进行容错编译的技术,导致的计算机语言编译效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610200937.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:应用程序中页面内容的显示方法和装置
- 下一篇:一种远程命令的处理方法和装置