本申请公开了一种事件响应方法、系统、电子设备及存储介质,所属技术领域为计算机技术。所述事件响应方法包括:接收用户输入的标准源程序;其中,所述标准源程序包括值描述信息,所述值描述信息用于约束变量和/或函数参数的取值范围;基于所述值描述信息生成所述标准源程序对应的数据字典和语法树;将所述语法树转化为目标代码,并将所述目标代码和所述数据字典进行打包得到虚拟机字节码,以便标准虚拟机加载所述虚拟机字节码;若监听到用户的操作事件,则在符合所述值描述信息的情况下利用所述标准虚拟机执行所述操作事件对应的指令,以便实现对所述操作事件的响应。本申请能够降低数据值范围控制语句的复杂度,提高事件响应效率。
【技术实现步骤摘要】
本申请涉及计算机,特别涉及一种事件响应方法、系统、电子设备及存储介质。
技术介绍
1、为了缩短开发周期、快速实现业务功能,通常设计用户语言与计算机进行交互。用户语言通常用于编写程序,以便实现特定事件进行响应;例如,若检测到电磁炉工作模式调节事件,可以改变电磁炉当前的功率;若检测到风扇档位调节事件,则改变电机当前的转速。
2、相关技术中,用户语言通常使用数据类型+控制流语句的方式进行数据值范围控制,但是上述数据值范围控制的语句冗长,编写复杂度较高且程序运行后对事件响应效率较低。
3、因此,如何降低数据值范围控制语句的复杂度,提高事件响应效率是本领域技术人员目前需要解决的技术问题。
技术实现思路
1、本申请的目的是提供一种事件响应方法、系统、电子设备及存储介质,能够降低数据值范围控制语句的复杂度,提高事件响应效率。
2、为解决上述技术问题,本申请提供一种事件响应方法,包括:
3、接收用户输入的标准源程序;其中,所述标准源程序包括值描述信息,所述值描述信息用于约束变量和/或函数参数的取值范围;
4、基于所述值描述信息生成所述标准源程序对应的数据字典和语法树;其中,所述数据字典中加载有所述值描述信息,所述语法树中的节点符合所述值描述信息;
5、将所述语法树转化为目标代码,并将所述目标代码和所述数据字典进行打包得到虚拟机字节码,以便标准虚拟机加载所述虚拟机字节码;其中,所述虚拟机字节码中包括所述值描述信息对应的数据表;</p>6、若监听到用户的操作事件,则在符合所述值描述信息的情况下利用所述标准虚拟机执行所述操作事件对应的指令,以便实现对所述操作事件的响应。
7、可选的,基于所述值描述信息生成所述标准源程序对应的数据字典和语法树,包括:
8、根据所述标准源程序中变量表、常量表和函数表的内容生成所述数据字典;
9、根据所述标准源程序中语句表的语句内容生成初始语法树;
10、判断所述初始语法树中的节点是否符合所述数据字典中加载的所述值描述信息;若是,则将所述初始语法树设置为所述标准源程序对应的所述语法树;若否,则输出所述标准源程序编写错误的提示信息。
11、可选的,将所述目标代码和所述数据字典进行打包得到虚拟机字节码,包括:
12、对所述目标代码进行打包,得到事件表、事件索引表和逻辑数据表;
13、对所述数据字典中除了所述值描述信息之外的其他内容进行打包,得到变量表、变量配置表、函数表、函数索引表和函数配置表;
14、对所述数据字典中的所述值描述信息进行打包,得到变量值描述表和/或函数参数值描述表;
15、根据所述目标代码的打包结果和所述数据字典的打包结果生成所述虚拟机字节码。
16、可选的,若所述值描述信息用于约束变量的取值范围,则在符合所述值描述信息的情况下利用所述标准虚拟机执行所述操作事件对应的指令,包括:
17、将所述操作事件转换为事件列表和变量上下文;其中,所述事件列表包括事件变量名和事件变量值;
18、根据所述事件变量名查询所述事件变量值是否符合所述值描述信息;
19、若是,则查询所述事件列表对应的目标指令,并利用所述标准虚拟机根据所述变量上下文执行所述目标指令。
20、可选的,在利用所述标准虚拟机根据所述变量上下文执行所述目标指令的过程中,还包括:
21、若检测到变量取值操作或变量赋值操作,则停止执行所述目标指令;
22、判断取值操作或赋值操作对应的值是否符合所述值描述信息;
23、若是,则继续执行所述目标指令;
24、若否,则输出指令执行错误的提示信息。
25、可选的,所述值描述信息还用于约束函数参数的取值范围,则在利用所述标准虚拟机根据所述变量上下文执行所述目标指令的过程中,还包括:
26、若检测到函数调用操作,则停止执行所述目标指令;
27、判断函数调用操作对应的目标函数的实参组合是否符合所述值描述信息;
28、若是,则继续执行所述目标指令;
29、若否,则输出指令执行错误的提示信息。
30、可选的,所述值描述信息包括范围型值描述信息和/或枚举型值描述信息。
31、本申请还提供了一种事件响应系统,该系统包括:
32、源程序接收模块,用于接收用户输入的标准源程序;其中,所述标准源程序包括值描述信息,所述值描述信息用于约束变量和/或函数参数的取值范围;
33、编译模块,用于基于所述值描述信息生成所述标准源程序对应的数据字典和语法树;其中,所述数据字典中加载有所述值描述信息,所述语法树中的节点符合所述值描述信息;还用于将所述语法树转化为目标代码,并将所述目标代码和所述数据字典进行打包得到虚拟机字节码,以便标准虚拟机加载所述虚拟机字节码;其中,所述虚拟机字节码中包括所述值描述信息对应的数据表;
34、事件响应模块,用于若监听到用户的操作事件,则在符合所述值描述信息的情况下利用所述标准虚拟机执行所述操作事件对应的指令,以便实现对所述操作事件的响应。
35、本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述事件响应方法执行的步骤。
36、本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述事件响应方法执行的步骤。
37、本申请提供了一种事件响应方法,包括:接收用户输入的标准源程序;其中,所述标准源程序包括值描述信息,所述值描述信息用于约束变量和/或函数参数的取值范围;基于所述值描述信息生成所述标准源程序对应的数据字典和语法树;其中,所述数据字典中加载有所述值描述信息,所述语法树中的节点符合所述值描述信息;将所述语法树转化为目标代码,并将所述目标代码和所述数据字典进行打包得到虚拟机字节码,以便标准虚拟机加载所述虚拟机字节码;其中,所述虚拟机字节码中包括所述值描述信息对应的数据表;若监听到用户的操作事件,则在符合所述值描述信息的情况下利用所述标准虚拟机执行所述操作事件对应的指令,以便实现对所述操作事件的响应。
38、本申请接收的标准源程序中包括值描述信息,基于值描述信息可以生成标准源程序对应的数据字典和语法树,使得数据字典中加载有上述值描述信息,且语法树中的节点符合值描述信息中关于变量和/或函数参数的取值范围的约束。本申请将语法树转化为目标代码,进而根据目标代码和数据字典打包为虚拟机字节码,以便标准虚拟机加载虚拟机字节码。在检测到用户的操作事件后,可以在符合值描述信息对变量和/或函数参数取值范围的约束的情况下执行所述操作事件对应的指令,进而实现对操作事件的响应。本申请中使用值描述信息对数据取值范围进行描述,并在程序编译和运行时使用值描述信息进行数据值校验,无需使用冗本文档来自技高网
...
【技术保护点】
1.一种事件响应方法,其特征在于,包括:
2.根据权利要求1所述事件响应方法,其特征在于,基于所述值描述信息生成所述标准源程序对应的数据字典和语法树,包括:
3.根据权利要求1所述事件响应方法,其特征在于,将所述目标代码和所述数据字典进行打包得到虚拟机字节码,包括:
4.根据权利要求1所述事件响应方法,其特征在于,若所述值描述信息用于约束变量的取值范围,则在符合所述值描述信息的情况下利用所述标准虚拟机执行所述操作事件对应的指令,包括:
5.根据权利要求4所述事件响应方法,其特征在于,在利用所述标准虚拟机根据所述变量上下文执行所述目标指令的过程中,还包括:
6.根据权利要求4所述事件响应方法,其特征在于,所述值描述信息还用于约束函数参数的取值范围,则在利用所述标准虚拟机根据所述变量上下文执行所述目标指令的过程中,还包括:
7.根据权利要求1至6任一项所述事件响应方法,其特征在于,所述值描述信息包括范围型值描述信息和/或枚举型值描述信息。
8.一种事件响应系统,其特征在于,包括:
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述事件响应方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述事件响应方法的步骤。
...
【技术特征摘要】
1.一种事件响应方法,其特征在于,包括:
2.根据权利要求1所述事件响应方法,其特征在于,基于所述值描述信息生成所述标准源程序对应的数据字典和语法树,包括:
3.根据权利要求1所述事件响应方法,其特征在于,将所述目标代码和所述数据字典进行打包得到虚拟机字节码,包括:
4.根据权利要求1所述事件响应方法,其特征在于,若所述值描述信息用于约束变量的取值范围,则在符合所述值描述信息的情况下利用所述标准虚拟机执行所述操作事件对应的指令,包括:
5.根据权利要求4所述事件响应方法,其特征在于,在利用所述标准虚拟机根据所述变量上下文执行所述目标指令的过程中,还包括:
6.根据权利要求4所述事件响应方法,其特征在...
【专利技术属性】
技术研发人员:杨清广,谢一铭,李日璐,王春华,
申请(专利权)人:广东优特云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。