[发明专利]在领域特定语言中集成编程脚本语言的方法及装置在审
申请号: | 201710276536.X | 申请日: | 2017-04-25 |
公开(公告)号: | CN106970802A | 公开(公告)日: | 2017-07-21 |
发明(设计)人: | 邢锦江;李剑;朱华;邹雪梅;陈险峰;朱峰登;史可华;董扬威;李亮 | 申请(专利权)人: | 北京航天飞行控制中心 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/45 |
代理公司: | 北京康信知识产权代理有限责任公司11240 | 代理人: | 吴贵明,张永明 |
地址: | 100094 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 领域 特定 语言 集成 编程 脚本语言 方法 装置 | ||
技术领域
本发明涉及自然语言处理领域,具体而言,涉及一种在领域特定语言中集成编程脚本语言的方法及装置。
背景技术
相关技术中的领域特定语言,一般只能在特定宿主软件系统中,针对特定领域的业务进行描述和处理。而编程脚本语言有其独立的语法体系,不能面向不同的应用领域进行进一步简化和改良。因此,存在以下几方面的问题:(1)一种全功能的领域特定语言需要大量语法描述。定义一种具有流程控制、条件判断、变量/类/函数定义、异常处理和集合操作等能力的语言,工作量相当于描述或编写一种语言编译器(如C++编译器),对于没有编译器知识背景的应用系统开发人员和各应用领域的专业人员来说几乎难以实现。(2)一般的领域特定语言功能有限。由于受自定义语法复杂程度的限制,它们一般不具有流程控制、条件判断、变量/类/函数定义、异常处理和集合操作的能力。各种命令行语言都属于这种情况。(3)难以与宿主业务流程无缝集成和联合执行。某些领域特定语言,如SQL语言,虽然具有强大的数据库查询和操作能力,但与应用系统的业务处理和执行是分离的。通过SQL语句进行数据库操作,需要宿主业务系统将相关操作需求拼接为字符串形式的SQL语句,并传送给数据库引擎,由数据库引擎解释执行该字符串。而对于需要重复使用的数据库操作,SQL语言使用事务(Transaction)描述,调用时需要在宿主业务中向其传递参数,由数据库引擎单独执行。(4)领域特定语言执行过程与宿主业务过程协调较难。比如数据库引擎出于性能的考虑,一般在收到宿主应用系统的业务调用执行请求后,默认使用后台线程异步执行SQL语句,因此应用业务过程需要通过协调技术实现与SQL语句执行的同步和结果的获取(如最新插入记录的自增长ID号),如强制以同步方式执行SQL语句,导致了业务逻辑设计的复杂化。(5)基于程序设计语言的二次开发技术门槛较高。虽然Java等程序设计语言是全功能的,能够实现对宿主应用系统的定制和扩展,但其语法复杂和严格程度都比一般的编程脚本语言高。而编程脚本语言(如Python)一般较为简洁、灵活。(6)使用程序设计语言不便于部署。虽然Antlr等工具实现了领域特定语言同Java语言的互操作,但经Java编写的代码必须要经过编译器重新编译才能使用,增加了部署难度。
针对相关技术中的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种在领域特定语言中集成编程脚本语言的方法及装置,以解决相关技术中难以将领域特定语言和通用编程脚本语言进行集成的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种领域特定语言中集成编程脚本语言的方法。该方法包括:确定领域特定语言和目标编程脚本语言的语法特征,其中,领域特定语言为依据领域而定的语言;依据领域特定语言和目标编程脚本语言的语法特征,确定目标编程脚本语言中的目标关键字和领域特定语言中的预留符号,其中,目标关键字用于识别待分析语句中的语言类别属于目标编程脚本语言,预留符号用于识别待分析语句中的语言类别属于领域特定语言;在基于领域特定语言和目标编程脚本语言的语法特征、目标关键字和预留符号的条件下,按照预设规则将领域特定语言与目标编程脚本语言建立映射关系;通过映射关系将领域特定语言与目标编程脚本语言进行集成。
进一步地,在通过映射关系将领域特定语言与目标编程脚本语言进行集成之后,该方法还包括:对待分析语句进行解析,确定待分析语句所属的语言类别;若待分析语句所属的语言类别为领域特定语言,根据待分析语句生成语法树,并根据语法树对待分析语句进行分析;若待分析语句所属的语言类别为目标编程脚本语言,将待分析语句输送至目标引擎进行分析;若待分析语句所属的语言类别为混合语言,将待分析语句发送至翻译器,其中,混合语言中包括领域特定语言和目标编程脚本语言。
进一步地,根据语法树对待分析语句进行分析包括:领域特定语言执行器接收语法树;以及基于语法树访问数据平台以获取数据信息。
进一步地,将待分析语句输送至目标引擎进行分析包括:目标引擎将待分析语句转化为预定类型的参数;传递转化后的参数。
进一步地,在确定目标编程脚本语言中的目标关键字和领域特定语言中的预留符号之后,该方法还包括:将目标关键字存储至特征符号表中;将预留符号存储至翻译表中;目标引擎将待分析语句转化为预定类型的参数包括:基于特征符号表和翻译表中的规则将待分析语句转化为预定类型的参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航天飞行控制中心,未经北京航天飞行控制中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710276536.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种快速构建应用系统的方法及装置
- 下一篇:一种软件系统演化的分析方法和装置