CN109491658A - 计算机可执行代码数据的生成方法及装置 - Google Patents

计算机可执行代码数据的生成方法及装置 Download PDF

Info

Publication number
CN109491658A
CN109491658A CN201710812384.0A CN201710812384A CN109491658A CN 109491658 A CN109491658 A CN 109491658A CN 201710812384 A CN201710812384 A CN 201710812384A CN 109491658 A CN109491658 A CN 109491658A
Authority
CN
China
Prior art keywords
natural language
computer
punctuation mark
description language
language text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710812384.0A
Other languages
English (en)
Inventor
郝孟涛
么士宇
雷可可
杨先强
刘娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Autonavi Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Autonavi Information Technology Co Ltd filed Critical Autonavi Information Technology Co Ltd
Priority to CN201710812384.0A priority Critical patent/CN109491658A/zh
Publication of CN109491658A publication Critical patent/CN109491658A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种计算机可执行代码数据的生成方法及装置,涉及计算机技术领域,主要目的在于将自然语言生成计算机可执行代码数据,减少对专业技术人员的依赖,提高计算机应用的开发和使用效率,降低计算机应用的开发成本。本发明主要技术方案包括:获取描述语言,所述描述语言至少包括自然语言文字及标点符号,所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系;对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码。本发明主要应用于计算机可执行代码数据生成的过程中。

Description

计算机可执行代码数据的生成方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种计算机可执行代码数据的生成方法及装置。
背景技术
随着互联互技术和计算机技术的发展,人们生活的方方面面都会应用到计算机应用程序,应用程序的开发越来越频繁和大众化。然而即使在计算机技术发达的今天,依然有很多工作需要具有较强专业技术背景的工作人员人工手动操作,并且这些工作在需要具有较强专业技术背景的工作人员人工手动操作的同时操作过程也很复杂,还需要专业人员编写繁琐复杂的计算机代码进行支持。
发明内容
有鉴于此,本发明提供的一种计算机可执行代码数据的生成方法及装置,主要目的在于将自然语言自动生成计算机可执行代码数据,减少对专业技术人员的依赖,提高计算机应用的开发和使用效率,降低计算机应用的开发成本。
为了解决上述问题,本发明主要提供如下技术方案:
第一方面,本发明提供了一种计算机可执行代码数据的生成方法,该方法包括:
获取描述语言,所述描述语言至少包括自然语言文字及标点符号,所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系;
对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码。
第二方面,本发明还提供一种计算机可执行代码数据的生成装置,该装置包括:
获取单元,用于获取描述语言,所述描述语言至少包括自然语言文字及标点符号,所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系;
编译单元,用于对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码。
第三方面,本发明还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的计算机可执行代码数据的生成方法。
第四方面,本发明还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的计算机可执行代码数据的生成方法。
第五方面,本发明还提供了一种终端设备,包括至少一个处理器;所述存储介质,用于存储所述处理器执行的程序,以及所述处理器执行所述程序过程中所需的数据;
所述处理器,用于运行程序,其中,所述程序运行时执行如上所述的计算机可执行代码数据的生成方法。
本发明提供的计算机可执行代码数据的生成方法及装置,其获取到的描述语言至少包含自然语言文字及标点符号,而所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系。相应的,对该描述语言进行编译处理,便能得到对应的计算机可执行代码数据,使得整个计算机可执行代码数据的生成,只需要输入自然语言文字及标点符号,之后由计算机对包含自然语言文字及标点符号的该描述语言执行编译,不再依赖具有较强专业技术背景的工作人员进行复杂代码的编写,在一定程度上减少对专业技术人员的依赖,提高计算机应用的开发和使用效率,降低计算机应用的开发成本。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种计算机可执行代码数据的生成方法的流程图;
图2示出了本发明实施例提供的另一种计算机可执行代码数据的生成方法的流程图;
图3示出了本发明实施例提供的一种计算机可执行代码数据的生成方法的语法树示意图;
图4示出了本发明实施例提供的一种计算机可执行代码数据的生成装置的组成框图;
图5示出了本发明实施例提供的一种计算机可执行代码数据的生成装置的组成框图;
图6示出了本发明实施例提供的一种计算机可执行代码数据的生成装置的组成框图;
图7示出了本发明实施例提供的一种计算机可执行代码数据的生成装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种计算机可执行代码数据的生成方法,如图1所示,该方法包括:
101、获取描述语言,所述描述语言至少包括自然语言文字及标点符号,所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系。
本发明实施例中的描述语言是一种自然语言文字辅以标点符号的语言,用于计算机程序应用专业领域,如数据查询等方面。其中,该自然语言文字可以是结构化的自然语言文字,也可以是非结构化的自然语言文字,具体的本发明实施例对此不进行限制。当其为结构化的自然语言文字时,是将自然语言文字按照一定的规则和结构组合而成的自然语言表达式,该自然语言表达式包括自然语言文字或者自然语言文字以及分隔自然语言文字的标点符号,该自然语言表达式可以为单句式,键值语句式,复合型语句式等,具体的本发明实施例对此不进行限制;其中,单句式,如,有车;键值语句式,如,性别男;复合型语句式,如,最近7天到达过地点北京市西城区北海公园大于1次。其中,自然语言表达式的组成规则和结构,可以理解为计算机自然语言的词法定义规则,由具体工作人员根据需求具体设置,本发明实施例对此不进行限制。在具体操作的过程中,非专业人员进行描述语言输入时,可以根据该自然语言表达式的组成规则和结构,进行对应自然语言文字的输入,具体的,可以根据提供的自然语言文字界面编辑器通过界面输入,也可以手动编写自然语言表达式输入,具体的本发明实施例对此不进行限制。
另外,该描述语言的组成不仅仅局限于一个自然语言表达式,也可以由多个自然语言表达式组合而成,当由多个自然语言表达式组成而成时,就需要在各个自然语言表达式之间辅以标点符号,用标点符号表达不同自然语言表达式之间的运算关系,该运算关系可以为但不局限于逻辑关系,或者逻辑关系以及优先级关系。故在执行本发明实施例之前,本发明实施例需要先定义每个标点符号的逻辑关系和优先级关系,以便在将该描述语言编译成计算机可执行代码数据时使用。其中,该逻辑关系和优先级关系可以通过逻辑运算符和优先级运算符来表示;该逻辑运算符可以为但不局限于与、或、非等,该优先级运算符可以为但不局限于括号、逗号等。
自然语言表达式和标点符号按照预设的规则结构组合成包含多个自然语言表达式的描述语言,该预设的规则结构可以理解为描述语言的语法定义,具体的需要根据应用的需求具体设置,本发明实施例对此不进行限制。例如,优先级关系的自然语言表达式之间用“,”号表达,多个并列条件之间后者优先用“()”号表达等。通过自然语言表达式和标点符号组合成的描述语言可以为以下形式,例如:性别男,年龄大于20岁,(有车|有房),最近7天到达过地点北京市西城区北海公园大于1次。
102、对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码。
编译就是把高级语言变成计算机可识别、可执行的语言。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码生成。目前,将自然语言编译成计算机可执行的语言是可执行的,由于本发明实施例中的描述语言,是上述按照预设的规则结构将自然语言文字辅以标点符号组合成的,标点符号表示了不同自然语言文字之间的逻辑关系以及优先级关系,那么,在执行本发明实施例时,是可以按照所述预设的规则结构对所述描述语言进行编译,得到所述描述语言对应的可执行计算机代码。在编译的过程中,将结构化的自然语言文字生成对应的计算机代码指令,以及将标点符号生成对应的计算机代码运算符;根据所述计算机代码运算符,将所述计算机代码指令进行逻辑组合生成计算机可执行代码数据。
本发明实施例中,其获取到的描述语言至少包含自然语言文字及标点符号,而所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系。相应的,对该描述语言进行编译处理,便能得到对应的计算机可执行代码数据,使得整个计算机可执行代码数据的生成,只需要输入自然语言文字及标点符号,再之后由计算机对包含自然语言文字及标点符号的该描述语言执行编译,不再依赖具有较强专业技术背景的工作人员进行复杂代码的编写,在一定程度上减少对专业技术人员的依赖,提高计算机应用的开发和使用效率,降低计算机应用的开发成本。
为了进一步详细的阐明计算机可执行代码数据的生成方法,本发明实施例将结合图2和图3进行具体说明。如图2和图3所示,该方法包括:
201、获取描述语言,所述描述语言至少包括自然语言文字及标点符号,所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系。
关于本发明实施例中的201的相关内容的描述,可以参考图1对应实施例中的具体描述,该处将不再赘述。
202、根据所述描述语言包括的自然语言文字和标点符号,确定所述描述语言的词法和语法是否符合预定的文法及词法规则的要求;若所述描述语言的词法和语法符合预定的文法及词法规则的要求,则执行203;若所述描述语言的词法和语法不符合预定的文法及词法规则的要求,则执行205。
值得说明的是,如上述图1对应实施例所述的,在获取上述的描述语言时,可以通过界面编辑器输入自然语言文字及标点符号,之后由界面编辑器根据接收通过界面编辑器输入的自然语言文字及标点符号,组成预定表达式得到描述语言;也可以按照预设的规则结构直接编写预定表达式得到该描述语言。不论通过哪种方式生成该描述语言,本发明实施例能够进行编译的描述语言,都应该符合预设的词法和语法规则,故在对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码的步骤之前,需要确定所述描述语言的词法和语法是否符合预定的文法及词法规则的要求,在确定符合要求之后,执行步骤203。在确定不符合要求时,无法对该描述语言进行编译,则执行步骤205。
203、对描述语言包括的自然语言文字及标点符号进行识别,得到对应的语法树,所述自然语言文字及标点符号为所述语法树的末端节点。
语法树是句子结构的图形表示,它代表了句子的推导结果,有利于理解句子语法结构的层次。简单说,语法树就是按照某一规则进行推导时所形成的树。如图3所示,本发明实施例中的自然语言文字及标点符号为所述语法树的末端节点。
在对描述语言进行编译时,首先根据预定义的词法对该描述语言进行词法分析,得到符号流,之后对符号流进行语法分析,得到语法树。其中,词法分析是计算机科学中将字符序列转换为单词序列的过程。进行词法分析的程序或者函数叫作词法分析器,也叫扫描器。词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上,将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等。
204、按照预定义的词法,遍历语法树,得到可执行计算机代码。
其中,所述自然语言文字为查询词,则按照预定义的词法,遍历语法树,得到可执行计算机代码,可以采用但不局限于以下的方法实现,该方法包括:
1、按照预定义的词法,遍历语法树。
2、若遍历到查询词,则根据预设的分词库,对所述查询词进行分词。
该处需要说明的是,如上所述的,在执行本发明实施例时,是根据预先设置的规则输入的自然语言,故为了方便将该自然语言编译成计算机可执行的代码数据,预先定义了分词库,该分词库中包含自然语言对应的代码指令,例如性别对应的代码指令为sex,男对应的代码指令为1。
3、根据所述查询词的分词结果,得到查询对象的存储信息和查询条件;
其中,编译过程中源程序的各种信息被保留在种种不同的表中,编译各阶段的工作都涉及到构造、查找、或更新有关的表,根据分词的结果查询对应的表,确定存储该分词的表信息。
4、若遍历到符号,则按照预定义的词法,将所述标点符号转换为运算符。
其中,将所述标点符号转换为运算符,即按照预先定义的标点符号优先级关系及逻辑关系进行翻译,例如之前定义“,”为“与”;“|”为“或”,则在本发明实施例中,将标点符号“,”解析为“与”,并将该逻辑关系“与”翻译成计算机代码逻辑连接符号“and”;将标点符号“|”解析为“或”,并将该逻辑关系“或”翻译成计算机代码逻辑连接符号“or”。
5、根据每个查询词对应的存储信息和查询条件,以及每个标点符号对应的运算符,生成计算机可执行的查询语句。
该处需要说明的是,若查询词对应的存储信息相同,则表示待查询的内容出自同一张表,其构成的计算机可执行的查询内容可以为一个表的内容,以SQL为例,其查询语句中的表格可以为同一个表。
205、输出提示所述描述语言的词法和语法不符合预定的文法及词法规则的要求的提示信息,并退出计算机可执行代码数据生成的应用。
本发明实施例中,获取的描述语言是由结构化自然语言文字及标点符号按照预设的规则结构组合而成,故其能够将该描述语言,经过解析、分词、翻译、组合等操作,生成计算机可执行代码数据;使得整个计算机可执行代码数据的生成,工作人员只需要输入自然语言文字及标点符号,再由计算机对该描述语言执行相应操作,不再依赖具有较强专业技术背景的工作人员进行复杂代码的编写,也能生成计算机可执行的计算机可执行代码数据,在一定程度上减少对专业技术人员的依赖,提高计算机应用的开发和使用效率,降低计算机应用的开发成本。
本发明实施例执行的过程中需要进行词法和语法的检查,在确定获取的描述语言的词法和语法正确的时候,才能进行分词、翻译和组合处理,故在词法定义阶段,可以定义不同的词法,该词法包括自然语言文字的表达式结构,逻辑运算符,优先级运算符等三种,另外,需要结合词法定义语法结构,也就是词法间如何组合成语法,即图1对应实施例中描述的自然语言表达式间的预设规则和结构。本发明实施例提供上述的检测方法,能够保证解析出的计算机可执行代码数据的正确性,提高了计算机代码的可执行性。
另外,在本发明实施例中,定义语法时,每一种语法都可以对应不同的回调函数,该回调函数作用在于遍历语法树时,不同的语法都会调用对应的回调函数。为了方便语法树的遍历,本发明实施例中语法一般定义为一种左递归的特殊类型递归,定义语法按照先后顺序决定语法解析优先级。例如,把单表达式词法的语法定义在前面,即会优先回调单表达式语法回调函数。当然,在执行的时候,也可以采用其他的递归类型,具体的可以根据实际需求设置,本发明实施例对此不进行限制。
另外,由于在获取计算机可执行代码数据的过程中可以使用出栈入栈的技术,故在遍历语法树的之前需要定义一个栈的数据结构,整个遍历采用深度优先的遍历方式,不同语法的回调函数会根据定义进行出栈入栈操,这些函数在操作出栈入栈过程中完成解析。比如单表达式语法的回调函数会解析表达式,对表达式进行分词,转换指令,生成该表达式对应的计算机指令代码,把计算机指令代码入栈;逻辑运算语法回调函数会把栈顶的两个计算机指令代码出栈,并对其进行逻辑运算组合,再生成中间计算机指令代码入栈;优先级运算语法回调函数会把栈顶的中间计算机指令代码出栈,添加优先级运算符入栈。根据该定义,对描述语言具体编译过程举例如下:
如,“性别男,(有车|有房)”,对该描述语言进行解析生成对应的语法树,遍历生成的语法树,调用的过程是优先调用表达式的回调函数,将“性别男”分词为“性别”及“男”,并根据指令库,把性别解析为sex,把男解析为1,表达式解析为sex=1,然后入栈,然后根据深度遍历规则,会遍历到表达式“有车”,回调函数解析为has_car=1,将其入栈,然后根据语法定义优先级关系解析表达式“有房”,回调函数解析为has_house=1,将其入栈,然后遍历到逻辑运算表达式“|”,回调函数将栈顶两个中间表达式出栈,拼装为has_car=1or has_house=1,并将其入栈,然后遍历到优先级表达式“()”,将栈顶中间代码出栈,两边加上优先级符号拼装为(has_car=1or has_house=1),并将其入栈,然后遍历到逻辑运算表达式“,”,将栈顶两个中间表达式出栈,拼装成中间代码sex=1and(has_car=1orhas_house=1),将该中间代码入栈。整个语法树遍历完成,最终栈内就是最终拼装的表达式。
基于上述方法实施例,本发明还提供一种计算机可执行代码数据的生成装置,该装置如图4所示,包括:
获取单元31,用于获取描述语言,所述描述语言至少包括自然语言文字及标点符号,所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系。
本发明实施例中的描述语言是一种自然语言文字辅以标点符号的语言,用于计算机程序应用专业领域,如数据查询等方面。其中,该自然语言文字可以是结构化的自然语言文字,也可以是非结构化的自然语言文字,具体的本发明实施例对此不进行限制。当其为结构化的自然语言文字时,是将自然语言文字按照一定的规则和结构组合而成的自然语言表达式,该自然语言表达式包括自然语言文字或者自然语言文字以及分隔自然语言文字的标点符号,该自然语言表达式可以为单句式,键值语句式,复合型语句式等,具体的本发明实施例对此不进行限制;其中,单句式,如,有车;键值语句式,如,性别男;复合型语句式,如,最近7天到达过地点北京市西城区北海公园大于1次。其中,自然语言表达式的组成规则和结构,可以理解为计算机自然语言的词法定义规则,由具体工作人员根据需求具体设置,本发明实施例对此不进行限制。在具体操作的过程中,非专业人员进行描述语言输入时,可以根据该自然语言表达式的组成规则和结构,进行对应自然语言文字的输入,具体的,可以根据提供的自然语言文字界面编辑器通过界面输入,也可以手动编写自然语言表达式输入,具体的本发明实施例对此不进行限制。
另外,该描述语言的组成不仅仅局限于一个自然语言表达式,也可以由多个自然语言表达式组合而成,当由多个自然语言表达式组成而成时,就需要在各个自然语言表达式之间辅以标点符号,用标点符号表达不同自然语言表达式之间的运算关系,该运算关系可以为但不局限于逻辑关系,或者逻辑关系以及优先级关系。故在执行本发明实施例之前,本发明实施例需要先定义每个标点符号的逻辑关系和优先级关系,以便在将该描述语言编译成计算机可执行代码数据时使用。其中,该逻辑关系和优先级关系可以通过逻辑运算符和优先级运算符来表示;该逻辑运算符可以为但不局限于与、或、非等,该优先级运算符可以为但不局限于括号、逗号等。
自然语言表达式和标点符号按照预设的规则结构组合成包含多个自然语言表达式的描述语言,该预设的规则结构可以理解为描述语言的语法定义,具体的需要根据应用的需求具体设置,本发明实施例对此不进行限制。例如,优先级关系的自然语言表达式之间用“,”号表达,多个并列条件之间后者优先用“()”号表达等。通过自然语言表达式和标点符号组合成的描述语言可以为以下形式,例如:性别男,年龄大于20岁,(有车|有房),最近7天到达过地点北京市西城区北海公园大于1次。
编译单元32,用于对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码。
编译就是把高级语言变成计算机可识别、可执行的语言。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码生成。目前,将自然语言编译成计算机可执行的语言是可执行的,由于本发明实施例中的描述语言,是上述按照预设的规则结构将自然语言文字辅以标点符号组合成的,标点符号表示了不同自然语言文字之间的逻辑关系以及优先级关系,那么,在执行本发明实施例时,是可以按照所述预设的规则结构对所述描述语言进行编译,得到所述描述语言对应的可执行计算机代码。在编译的过程中,将结构化的自然语言文字生成对应的计算机代码指令,以及将标点符号生成对应的计算机代码运算符;根据所述计算机代码运算符,将所述计算机代码指令进行逻辑组合生成计算机可执行代码数据。
进一步的,如图5所示,该装置还包括:
确定单元33,用于根据所述描述语言包括的自然语言文字和标点符号,确定所述描述语言的词法和语法是否符合预定的文法及词法规则的要求。
所述编译单元32还用于,在确定单元33确定符合时,执行对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码的步骤。
进一步的,如图6所示,所述自然语言文字为查询词,该装置的编译单元32包括:
识别模块321,用于对描述语言包括的自然语言文字及标点符号进行识别,得到对应的语法树,所述自然语言文字及标点符号为所述语法树的末端节点;其中,语法树是句子结构的图形表示,它代表了句子的推导结果,有利于理解句子语法结构的层次。简单说,语法树就是按照某一规则进行推导时所形成的树。在对描述语言进行编译时,首先根据预定义的词法对该描述语言进行词法分析,得到符号流,之后对符号流进行语法分析,得到语法树。其中,词法分析是计算机科学中将字符序列转换为单词序列的过程。进行词法分析的程序或者函数叫作词法分析器,也叫扫描器。词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上,将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等。
编译模块322,用于按照预定义的词法,遍历语法树,得到可执行计算机代码。其中,所述编译模块322具体可以用于:
按照预定义的词法,遍历语法树;
若遍历到查询词,则根据预设的分词库,对所述查询词进行分词;该处需要说明的是,如上所述的,在执行本发明实施例时,是根据预先设置的规则输入的自然语言,故为了方便将该自然语言编译成计算机可执行的代码数据,预先定义了分词库,该分词库中包含自然语言对应的代码指令,例如性别对应的代码指令为sex,男对应的代码指令为1。
根据所述查询词的分词结果,得到查询对象的存储信息和查询条件;
遍历到符号,则按照预定义的词法,将所述标点符号转换为运算符;其中,编译过程中源程序的各种信息被保留在种种不同的表中,编译各阶段的工作都涉及到构造、查找、或更新有关的表,根据分词的结果查询对应的表,确定存储该分词的表信息。
其中,将所述标点符号转换为运算符,即按照预先定义的标点符号优先级关系及逻辑关系进行翻译,例如之前定义“,”为“与”;“|”为“或”,则在本发明实施例中,将标点符号“,”解析为“与”,并将该逻辑关系“与”翻译成计算机代码逻辑连接符号“and”;将标点符号“|”解析为“或”,并将该逻辑关系“或”翻译成计算机代码逻辑连接符号“or”。
根据每个查询词对应的存储信息和查询条件,以及每个标点符号对应的运算符,生成计算机可执行的查询语句。
该处需要说明的是,若查询词对应的存储信息相同,则表示待查询的内容出自同一张表,其构成的计算机可执行的查询内容可以为一个表的内容,以SQL为例,其查询语句中的表格可以为同一个表格。
进一步的,如图7所示,所述获取单元31包括:
第一获取模块311,用于接收通过界面编辑器输入的自然语言文字及标点符号,并将所述自然语言文字及标点符号组成预定表达式得到描述语言。
和/或第二获取模块312,用于接收输入的预定表达式得到描述语言,所述预定表达式由自然语言文字及标点符号组合而成。
本发明实施例提供的计算机可执行代码数据的装置,其获取到的描述语言至少包含自然语言文字及标点符号,而所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系。相应的,对该描述语言进行编译处理,便能得到对应的计算机可执行代码数据,使得整个计算机可执行代码数据的生成,只需要输入自然语言文字及标点符号,之后由计算机对包含自然语言文字及标点符号的该描述语言执行编译,不再依赖具有较强专业技术背景的工作人员进行复杂代码的编写,在一定程度上减少对专业技术人员的依赖,提高计算机应用的开发和使用效率,降低计算机应用的开发成本。
并且本发明实施例提供上述的语法和词法检测方法,能够保证解析出的计算机可执行代码数据的正确性,提高了计算机代码的可执行性。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的计算机可执行代码数据的生成方法。
本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的计算机可执行代码数据的生成方法。
本发明实施例还提供了一种终端设备,包括至少一个处理器;所述存储介质,用于存储所述处理器执行的程序,以及所述处理器执行所述程序过程中所需的数据;
所述处理器,用于运行程序,其中,所述程序运行时执行如上所述的计算机可执行代码数据的生成方法。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (13)

1.一种计算机可执行代码数据的生成方法,其特征在于,包括:
获取描述语言,所述描述语言至少包括自然语言文字及标点符号,所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系;
对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
根据所述描述语言包括的自然语言文字和标点符号,确定所述描述语言的词法和语法是否符合预定的文法及词法规则的要求;
若符合,则执行对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码的步骤。
3.根据权利要求1或2所述的方法,其特征在于,对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码包括:
对描述语言包括的自然语言文字及标点符号进行识别,得到对应的语法树,所述自然语言文字及标点符号为所述语法树的末端节点;
按照预定义的词法,遍历语法树,得到可执行计算机代码。
4.根据权利要求3所述的方法,其特征在于,所述自然语言文字为查询词,则按照预定义的词法,遍历语法树,得到可执行计算机代码包括:
按照预定义的词法,遍历语法树;
若遍历到查询词,则根据预设的分词库,对所述查询词进行分词;
根据所述查询词的分词结果,得到查询对象的存储信息和查询条件;
若遍历到符号,则按照预定义的词法,将所述标点符号转换为运算符;
根据每个查询词对应的存储信息和查询条件,以及每个标点符号对应的运算符,生成计算机可执行的查询语句。
5.根据权利要求4所述的方法,其特征在于,所述获取描述语言包括:
接收通过界面编辑器输入的自然语言文字及标点符号,并将所述自然语言文字及标点符号组成预定表达式得到描述语言;
或者,接收输入的预定表达式得到描述语言,所述预定表达式由自然语言文字及标点符号组合而成。
6.一种计算机可执行代码数据的生成装置,其特征在于,包括:
获取单元,用于获取描述语言,所述描述语言至少包括自然语言文字及标点符号,所述标点符号用于分隔自然语言文字以及表示自然语言文字之间的运算关系;
编译单元,用于对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码。
7.根据权利要求6所述的装置,其特征在于,该装置进一步包括;
确定单元,用于根据所述描述语言包括的自然语言文字和标点符号,确定所述描述语言的词法和语法是否符合预定的文法及词法规则的要求;
所述编译单元还用于,在确定单元确定符合时,执行对所述描述语言包括的自然语言文字及标点符号进行编译,得到所述描述语言对应的可执行计算机代码的步骤。
8.根据权利要求6或7所述的装置,所述编译单元包括:
识别模块,用于对描述语言包括的自然语言文字及标点符号进行识别,得到对应的语法树,所述自然语言文字及标点符号为所述语法树的末端节点;
编译模块,用于按照预定义的词法,遍历语法树,得到可执行计算机代码。
9.根据权利要求8所述的装置,其特征在于,所述自然语言文字为查询词,所述编译模块用于:
按照预定义的词法,遍历语法树;
若遍历到查询词,则根据预设的分词库,对所述查询词进行分词;
根据所述查询词的分词结果,得到查询对象的存储信息和查询条件;
若遍历到符号,则按照预定义的词法,将所述标点符号转换为运算符;
根据每个查询词对应的存储信息和查询条件,以及每个标点符号对应的运算符,生成计算机可执行的查询语句。
10.根据权利要求9所述的装置,其特征在于,所述获取单元包括:
第一获取模块,用于接收通过界面编辑器输入的自然语言文字及标点符号,并将所述自然语言文字及标点符号组成预定表达式得到描述语言;
和/或,第二获取模块,用于接收输入的预定表达式得到描述语言,所述预定表达式由自然语言文字及标点符号组合而成。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1-5中任意一项所述的计算机可执行代码数据的生成方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-5中任意一项所述的计算机可执行代码数据的生成方法。
13.一种终端设备,其特征在于,包括至少一个处理器;所述存储介质,用于存储所述处理器执行的程序,以及所述处理器执行所述程序过程中所需的数据;
所述处理器,用于运行程序,其中,所述程序运行时执行权利要求1-5中任一项所述的计算机可执行代码数据的生成方法。
CN201710812384.0A 2017-09-11 2017-09-11 计算机可执行代码数据的生成方法及装置 Pending CN109491658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710812384.0A CN109491658A (zh) 2017-09-11 2017-09-11 计算机可执行代码数据的生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710812384.0A CN109491658A (zh) 2017-09-11 2017-09-11 计算机可执行代码数据的生成方法及装置

Publications (1)

Publication Number Publication Date
CN109491658A true CN109491658A (zh) 2019-03-19

Family

ID=65687525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710812384.0A Pending CN109491658A (zh) 2017-09-11 2017-09-11 计算机可执行代码数据的生成方法及装置

Country Status (1)

Country Link
CN (1) CN109491658A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992261A (zh) * 2019-04-30 2019-07-09 武汉亚为电子科技有限公司 一种基于人工智能的语音在线编程方法及装置
CN110187873A (zh) * 2019-06-03 2019-08-30 秒针信息技术有限公司 一种规则代码生成方法和装置
CN110647360A (zh) * 2019-08-20 2020-01-03 百度在线网络技术(北京)有限公司 协处理器的设备执行代码的处理方法、装置、设备及计算机可读存储介质
CN110874215A (zh) * 2019-11-19 2020-03-10 深圳市宜居云科技有限公司 电器或电气设备的驱动控制方法及系统
CN111178052A (zh) * 2019-12-20 2020-05-19 中国建设银行股份有限公司 构建机器人流程自动化应用的方法和装置
CN111443904A (zh) * 2020-03-12 2020-07-24 清华大学深圳国际研究生院 一种生成可执行代码的方法及计算机可读存储介质
CN112162738A (zh) * 2020-10-26 2021-01-01 广东粤港澳大湾区硬科技创新研究院 数据转化方法、装置、终端设备及存储介质
CN112394926A (zh) * 2020-12-03 2021-02-23 钟月珠 一种基于自然语言模型的码床系统
CN112579058A (zh) * 2019-09-27 2021-03-30 陕西星邑空间技术有限公司 应用程序的开发方法及相关装置
CN112714044A (zh) * 2020-12-28 2021-04-27 北京恒光信息技术股份有限公司 基于形式语言协议的网络数据解析方法及装置
CN113031952A (zh) * 2019-12-25 2021-06-25 上海高德威智能交通系统有限公司 深度学习模型的执行代码的确定方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226606A (zh) * 2013-04-28 2013-07-31 浙江核新同花顺网络信息股份有限公司 查询选取方法及系统
CN103646032A (zh) * 2013-11-11 2014-03-19 漆桂林 一种基于本体和受限自然语言处理的数据库查询方法
US20140201241A1 (en) * 2013-01-15 2014-07-17 EasyAsk Apparatus for Accepting a Verbal Query to be Executed Against Structured Data
CN104657439A (zh) * 2015-01-30 2015-05-27 欧阳江 用于自然语言精准检索的结构化查询语句生成系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140201241A1 (en) * 2013-01-15 2014-07-17 EasyAsk Apparatus for Accepting a Verbal Query to be Executed Against Structured Data
CN103226606A (zh) * 2013-04-28 2013-07-31 浙江核新同花顺网络信息股份有限公司 查询选取方法及系统
CN103646032A (zh) * 2013-11-11 2014-03-19 漆桂林 一种基于本体和受限自然语言处理的数据库查询方法
CN104657439A (zh) * 2015-01-30 2015-05-27 欧阳江 用于自然语言精准检索的结构化查询语句生成系统及方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992261A (zh) * 2019-04-30 2019-07-09 武汉亚为电子科技有限公司 一种基于人工智能的语音在线编程方法及装置
CN110187873A (zh) * 2019-06-03 2019-08-30 秒针信息技术有限公司 一种规则代码生成方法和装置
CN110647360A (zh) * 2019-08-20 2020-01-03 百度在线网络技术(北京)有限公司 协处理器的设备执行代码的处理方法、装置、设备及计算机可读存储介质
CN112579058A (zh) * 2019-09-27 2021-03-30 陕西星邑空间技术有限公司 应用程序的开发方法及相关装置
CN110874215A (zh) * 2019-11-19 2020-03-10 深圳市宜居云科技有限公司 电器或电气设备的驱动控制方法及系统
CN111178052A (zh) * 2019-12-20 2020-05-19 中国建设银行股份有限公司 构建机器人流程自动化应用的方法和装置
CN113031952A (zh) * 2019-12-25 2021-06-25 上海高德威智能交通系统有限公司 深度学习模型的执行代码的确定方法、装置及存储介质
CN111443904A (zh) * 2020-03-12 2020-07-24 清华大学深圳国际研究生院 一种生成可执行代码的方法及计算机可读存储介质
CN111443904B (zh) * 2020-03-12 2023-04-07 清华大学深圳国际研究生院 一种生成可执行代码的方法及计算机可读存储介质
CN112162738A (zh) * 2020-10-26 2021-01-01 广东粤港澳大湾区硬科技创新研究院 数据转化方法、装置、终端设备及存储介质
CN112394926A (zh) * 2020-12-03 2021-02-23 钟月珠 一种基于自然语言模型的码床系统
CN112714044A (zh) * 2020-12-28 2021-04-27 北京恒光信息技术股份有限公司 基于形式语言协议的网络数据解析方法及装置
CN112714044B (zh) * 2020-12-28 2022-06-07 北京恒光信息技术股份有限公司 基于形式语言协议的网络数据解析方法、装置及存储介质

Similar Documents

Publication Publication Date Title
CN109491658A (zh) 计算机可执行代码数据的生成方法及装置
US10698682B1 (en) Computerized software development environment with a software database containing atomic expressions
US9146712B2 (en) Extensible code auto-fix framework based on XML query languages
US8806452B2 (en) Transformation of computer programs and eliminating errors
CN110502227B (zh) 代码补全的方法及装置、存储介质、电子设备
CN110059176B (zh) 一种基于规则的通用文本信息抽取和信息生成方法
CN104375875B (zh) 用于应用程序的编译优化的方法以及编译器
Angelov et al. PGF: A portable run-time format for type-theoretical grammars
CN108563561B (zh) 一种程序隐性约束提取方法及系统
WO2021253641A1 (zh) 着色语言翻译方法
CN110096264A (zh) 一种代码运行方法及装置
CN107515739A (zh) 提高代码执行性能的方法及装置
US11500619B1 (en) Indexing and accessing source code snippets contained in documents
CN111381828A (zh) 生成代码文件的语法树的方法、装置及电子设备
Fliedl et al. From OWL class and property labels to human understandable natural language
CN111381826A (zh) 生成代码文件的语法树的方法、装置及电子设备
KR102614967B1 (ko) 자바스크립트의 중간 언어 기반 의미론 추출 자동화 시스템 및 방법
CN115374764A (zh) 一种基于用户故事的需求模型自动生成方法及系统
Mailund Domain-Specific Languages in R: Advanced Statistical Programming
CN111381814A (zh) 生成代码文件的语法树的方法、装置及电子设备
CN113031952A (zh) 深度学习模型的执行代码的确定方法、装置及存储介质
CN111381827A (zh) 生成代码文件的语法树的方法、装置及电子设备
WO2024108986A1 (zh) 一种通信网络业务处理方法和装置
Grigorev et al. String-embedded language support in integrated development environment
JP5181788B2 (ja) ソースプログラムの言語変換装置、方法及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200423

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 100081 01-A051, 3rd floor, 55 Suzhou Street, Haidian District, Beijing

Applicant before: AUTONAVI INFORMATION TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190319