一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

CIL指令的动态扩展方法及系统与流程

2022-06-11 09:37:57 来源:中国专利 TAG:

cil指令的动态扩展方法及系统
技术领域
1.本发明涉及命令行处理技术领域,具体地说是cil指令的动态扩展方法及系统。


背景技术:

2.命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。当前cli指令都是通过静态指令的方式存储在应用中,每次使用命令组合都需要重新录入。当前控制台操作指令,指令集合是固定的,用户不能对其修改和扩展,只能被动的接受和使用。但是在使用过程中,不同的指令会因为业务的需求而产生关联,现有静态指令不能搭建起指令间的联系,业务的处理就会变得被动和繁琐。
3.如何实现cil指令的动态扩展,是需要解决的技术问题。


技术实现要素:

4.本发明的技术任务是针对以上不足,提供cil指令的动态扩展方法及系统,来解决如何实现cil指令的动态扩展的技术问题。
5.第一方面,本发明的cil指令的动态扩展方法,通过增设临时存储和语法分析的方式,在已有指令的基础上提供可扩展的组合指令,所述方法包括如下步骤:
6.配置指令集,所述指令集存储有多个基础指令以及用户新增的指令信息;
7.用户输入新指令,所述新指令为基于已有指令自定义的组合指令;
8.对于输入的新指令,以所述指令集为基础,对所述新指令进行语法解析,将所述新指令分解为多个已存在的基础指令,并从指令集中整合出所需要的指令信息;
9.基于指令集对分解得到的基础指令进行有效性校验,如果分解得到的基础指令均能够在指令集中查找得到,所述新指令有效,且指令分解成功;
10.执行所述新指令,逐条执行分解得到的基础指令,并将执行过程中相关的指令信息写入临时存储文件中,以便于下一条指令使用;
11.对于执行成功的新指令,查看指令集中是否存在所述新指令,如果不存着,将所述新指令命名后存入指令集中。
12.作为优选,所述指令集以yaml文件的形式存储有多个基础指令以及用户新增的指令信息;
13.所述指令信息包括指令别名、指令具体实现指令以及指令所需参数,所述指令所需参数包括指令执行所需参数以及指令执行后生成参数;
14.对于分解得到的基础指令,逐条执行指令,从临时存储文件中读取指令执行所需参数,并=并将执行过程中生成的指令执行后生成参数写入临时存储文件中。
15.作为优选,对所述新指令进行语法解析之前,判断指令集合中是否存在所述新指令,若没有则对新指令进行语法分析。
16.作为优选,所述新指令为由多条指令集中已存在的基础指令两两组合得到的组合
指令,通过特殊标记符号进行标识;
17.新指令中每条指令的运行存在先后关系,所述指令运行的先后关系为指令层次。
18.作为优选,以所述指令集为基础,对所述新指令进行语法解析,包括如下步骤:
19.分割组合指令,所述分割组合指令为基于特殊标记符号将所述新指令分解为多个已存在的基础指令后;
20.整合指令层次,所述整合指令层次为通过二叉树的形式将分解得到的基础指令进行存储,并基于整合指令层次按顺序对分解得到的基础指令进行执行;
21.指令参数检验,所述指令参数校验为通过如下方法进行指令参数校验:
22.基础指令的组合需要满足如下条件:先执行指令的生成参数包含在后执行指令的所需参数当中;
23.如果新指令不满足,则说明新指令不能组合,校验不通过,反之则表明校验通过可以进行执行。
24.第二方面,本发明的cil指令的动态扩展系统,通过执行如第一方面任一项所述的cil指令的动态扩展方法,对cil进行动态扩展,所述系统包括:
25.配置模块,所述配置模块用于配置指令集,所述指令集存储有多个基础指令以及用户新增的指令信息;
26.新指令输入模块,所述新指令输入模块用于输入新指令,所述新指令为基于已有指令自定义的组合指令;
27.指令解析模块,对于输入的新指令,所述指令解析模块用于判断指令集合中是否存在所述新指令,若没有,则以所述指令集为基础,对所述新指令进行语法解析,将所述新指令分解为多个已存在的基础指令,并从指令集中整合出所需要的指令信息;
28.指令校验模块,所述指令校验模块用于基于指令集对分解得到的基础指令进行有效性校验,如果分解得到的基础指令均能够在指令集中查找得到,所述新指令有效,且指令分解成功;
29.指令执行模块,所述指令执行模块用于执行所述新指令,逐条执行分解得到的基础指令,并将执行过程中相关的指令信息写入临时存储文件中,以便于下一条指令使用;
30.新指令存入模块,对于执行成功的新指令,所述新指令存入模块用于查看指令集中是否存在所述新指令,如果不存着,将所述新指令命名后存入指令集中。
31.作为优选,所述指令集以yaml文件的形式存储有多个基础指令以及用户新增的指令信息;
32.所述指令信息包括指令别名、指令具体实现指令以及指令所需参数,所述指令所需参数包括指令执行所需参数以及指令执行后生成参数;
33.对于分解得到的基础指令,所述指令执行模块用于逐条执行指令,从临时存储文件中读取指令执行所需参数,并将执行过程中生成的指令执行后生成参数写入临时存储文件中。
34.作为优选,对所述新指令进行语法解析之前,所述指令解析模块用于判断指令集合中是否存在所述新指令,若没有则对新指令进行语法分析。
35.作为优选,所述新指令为由多条指令集中已存在的基础指令两两组合得到的组合指令,通过特殊标记符号进行标识;
36.新指令中每条指令的运行存在先后关系,所述指令运行的先后关系为指令层次。
37.作为优选,所述执行解析模块用于以所述指令集为基础,通过如下步骤对所述新指令进行语法解析:
38.分割组合指令,所述分割组合指令为基于特殊标记符号将所述新指令分解为多个已存在的基础指令后;
39.整合指令层次,所述整合指令层次为通过二叉树的形式将分解得到的基础指令进行存储,并基于整合指令层次按顺序对分解得到的基础指令进行执行;
40.指令参数检验,所述指令参数校验为通过如下方法进行指令参数校验:
41.基础指令的组合需要满足如下条件:先执行指令的生成参数包含在后执行指令的所需参数当中;
42.如果新指令不满足,则说明新指令不能组合,校验不通过,反之则表明校验通过可以进行执行。
43.本发明的cil指令的动态扩展方法及系统具有以下优点:使用临时存储的方式通过对指令的执行结果进行有选择的保存进而搭建起独立指令之间的联系,对已存在的cli指令的动态组合,用户可以根据自身业务扩充cli指令集,提高了cli指令的自由度,提升用户业务处理的效率。
附图说明
44.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.下面结合附图对本发明进一步说明。
46.图1为实施例1cil指令的动态扩展方法的原理框图;
47.图2为实施例1cil指令的动态扩展方法中新指令的执行流程框图;
48.图3为实施例1cil指令的动态扩展方法中指令集数据格式及组合方式;
49.图4为实施例1cil指令的动态扩展方法中新指令解析流程框图。
具体实施方式
50.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
51.本发明实施例提供cil指令的动态扩展方法及系统,用于解决如何实现cil 指令的动态扩展的技术问题。
52.实施例1:
53.本发明cil指令的动态扩展方法,通过增设临时存储和语法分析的方式,在已有指令的基础上提供可扩展的组合指令,该方法包括如下步骤:
54.s100、配置指令集,所述指令集存储有多个基础指令以及用户新增的指令信息;
55.s200、用户输入新指令,所述新指令为基于已有指令自定义的组合指令;
56.s300、对于输入的新指令,以所述指令集为基础,对所述新指令进行语法解析,将所述新指令分解为多个已存在的基础指令,并从指令集中整合出所需要的指令信息;
57.s400、基于指令集对分解得到的基础指令进行有效性校验,如果分解得到的基础指令均能够在指令集中查找得到,所述新指令有效,且指令分解成功;
58.s500、执行所述新指令,逐条执行分解得到的基础指令,并将执行过程中相关的指令信息写入临时存储文件中,以便于下一条指令使用;
59.s600、对于执行成功的新指令,查看指令集中是否存在所述新指令,如果不存着,将所述新指令命名后存入指令集中。
60.本实施例中,指令集合中以yaml文件的形式存储着自带的基础指令和用户新增的指令信息。指令信息包括指令别名、指令具体实现指令以及指令所需参数,指令所需参数包括指令执行所需参数以及指令执行后生成参数。“指令别名”是对指令的简称方便后续组合操作的输入,“指令具体实现”是在指令执行过程中与实际执行对应的指令,“指令所需参数”是在指令执行过程中需要用户主动提供的数据,“指令执行后生成参数”是将指令的生成结果匹配到对应的参数中,等待其他指令的调用。
61.每一条指令在指令集中存储,其中包含4条基本属性,即上述的指令别名、、指令具体实现、指令所需参数以及指令执行后生成参数。
62.指令的组合是由目前在指令集当中已经存在的指令经过变换整合得到,两条指令是否能够组合生成新指令需要先执行指令的生成参数包含在后执行指令所需参数当中。
63.步骤s200中,新指令为基于已有指令自定义的组合指令。每一条新指令都对应着组合指令集,组合指令用特殊的标记符号进行组合表示,如图3中使用的“{}”同时也使用固定的标记对组合进行限定。每一个新的组合指令都是由多条指令集中存在的指令两两组合得到,每条指令的运行存在先后关系,这种先后关系体现出来就是指令的层次。
64.步骤s300对新指令进行语法解析。和传统的指令解析相比,组合指令解析添加了对组合指令进行判定识别的语法逻辑。先寻找指令集合是否存在本条组合指令,若没有则对组合指令进行语法分析,通过语法分析将组合指令分解为若干条已存在的基础指令,并从指令集合中整合出指令所需要的参数以及返回的参数。分析成功则将新增合指令存储在指令集合中。
65.作为步骤s300的具体实施,以指令集为基础,对新指令进行语法解析,包括分割组合指令、整合指令层次和指令参数检验三个步骤。
66.每一条新指令都对应着组合指令集,组合指令用特殊的标记符号进行组合表示,如图3中使用的“{}”同时也使用固定的标记对组合进行限定。分割组合指令为基于特殊标记符号将所述新指令分解为多个已存在的基础指令后。
67.每一个新的组合指令都是由多条指令集中存在的指令两两组合得到,每条指令的运行存在先后关系,这种先后关系体现出来就是指令的层次。整合指令层次是通过树状结构,通过二叉树的形式将分解得到的基础指令进行存储并且按顺序执行。
68.基础指令的组合需要先执行的指令的生成参数包含在后执行指令的所需参数当中,如若不满足则说明指令不能组合校验不通过,反之则表明校验通过可以进行执行。
69.步骤500为执行指令,当新指令执行时,将从新指令当中解析得到的基础指令按照顺序执行,在执行过程中需要的目标参数从临时存储文件中获得,同时新生成的目标参数
存储在临时存储文件中,以提供给下一条指令使用。
70.临时存储文件用来存储上一条基础指令生成的目标结果。根据得到的基础指令所需要的参数,将基础指令得到的结果进行有选择地按照特定格式保存。
71.如附图2对可扩展的cli功能作进一步描述:
72.(1)用户输入自定义的新指令,新指令由已有指令通过组合得到;
73.(2)通过语法分析,以指令集为基础将新指令分解成多个基础指令;
74.(3)如果分解得到的基础指令都可以在指令集当中查找到,则说明用户提供的新指令有效,反之则提示错误;
75.(4)将在基础指令执行过程中生成的目标结果写入到临时存储文件中,以供下一条指令的使用;
76.(5)执行成功则查看指令集中是否包含本条新指令,如果有则结束,如果没有就提示出入新组合指令的名字,并将新指令存储在指令集当中。
77.该方法主要用于cli指令操作中,通过新增额外的临时存储和语法分析的方式在已有指令的基础上提供可扩展的组合指令,用户对cli指令的使用更加自由,同时新指令是在已存在指令上通过组合扩展而来,不需要重编译过程,也不需要用户对源码有较高的掌握,降低了使用门槛,节约了时间。
78.实施例2:
79.本发明cil指令的动态扩展系统,包括配置模块、新指令输入模块、指令解析模块、指令校验模块、指令执行模块、以及新指令存入模块。配置模块用于配置指令集,所述指令集存储有多个基础指令以及用户新增的指令信息;新指令输入模块用于输入新指令,所述新指令为基于已有指令自定义的组合指令;对于输入的新指令,所述指令解析模块用于判断指令集合中是否存在所述新指令,若没有,则以所述指令集为基础,对所述新指令进行语法解析,将所述新指令分解为多个已存在的基础指令,并从指令集中整合出所需要的指令信息;指令校验模块用于基于指令集对分解得到的基础指令进行有效性校验,如果分解得到的基础指令均能够在指令集中查找得到,所述新指令有效,且指令分解成功;指令执行模块用于执行所述新指令,逐条执行分解得到的基础指令,并将执行过程中相关的指令信息写入临时存储文件中,以便于下一条指令使用;对于执行成功的新指令,所述新指令存入模块用于查看指令集中是否存在所述新指令,如果不存着,将所述新指令命名后存入指令集中。
80.本实施例中,指令集合中以yaml文件的形式存储着自带的基础指令和用户新增的指令信息。指令信息包括指令别名、指令具体实现指令以及指令所需参数,指令所需参数包括指令执行所需参数以及指令执行后生成参数。“指令别名”是对指令的简称方便后续组合操作的输入,“指令具体实现”是在指令执行过程中与实际执行对应的指令,“指令所需参数”是在指令执行过程中需要用户主动提供的数据,“指令执行后生成参数”是将指令的生成结果匹配到对应的参数中,等待其他指令的调用。
81.每一条指令在指令集中存储,其中包含4条基本属性,即上述的指令别名、、指令具体实现、指令所需参数以及指令执行后生成参数。
82.指令的组合是由目前在指令集当中已经存在的指令经过变换整合得到,两条指令是否能够组合生成新指令需要先执行指令的生成参数包含在后执行指令所需参数当中。
83.新指令为基于已有指令自定义的组合指令。每一条新指令都对应着组合指令集,组合指令用特殊的标记符号进行组合表示,例如使用的“{}”同时也使用固定的标记对组合进行限定。每一个新的组合指令都是由多条指令集中存在的指令两两组合得到,每条指令的运行存在先后关系,这种先后关系体现出来就是指令的层次。
84.指令解析模块用于先寻找指令集合是否存在本条组合指令,若没有则对组合指令进行语法分析,通过语法分析将组合指令分解为若干条已存在的基础指令,并从指令集合中整合出指令所需要的参数以及返回的参数。分析成功则将新增合指令存储在指令集合中。
85.以指令集为基础,指令解析模块通过三个步骤对新指令进行语法解析,三个步骤为分割组合指令、整合指令层次和指令参数检验。
86.每一条新指令都对应着组合指令集,组合指令用特殊的标记符号进行组合表示,使用的“{}”同时也使用固定的标记对组合进行限定。分割组合指令为基于特殊标记符号将所述新指令分解为多个已存在的基础指令后。
87.每一个新的组合指令都是由多条指令集中存在的指令两两组合得到,每条指令的运行存在先后关系,这种先后关系体现出来就是指令的层次。整合指令层次是通过树状结构,通过二叉树的形式将分解得到的基础指令进行存储并且按顺序执行。
88.基础指令的组合需要先执行的指令的生成参数包含在后执行指令的所需参数当中,如若不满足则说明指令不能组合校验不通过,反之则表明校验通过可以进行执行。
89.当新指令执行时,指令执行模块用于将从新指令当中解析得到的基础指令按照顺序执行,在执行过程中需要的目标参数从临时存储文件中获得,同时新生成的目标参数存储在临时存储文件中,以提供给下一条指令使用。
90.临时存储文件用来存储上一条基础指令生成的目标结果。根据得到的基础指令所需要的参数,将基础指令得到的结果进行有选择地按照特定格式保存。
91.上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献