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

一种用于实物编程的编译方法与编译引擎与流程

2022-06-12 00:21:17 来源:中国专利 TAG:


1.本发明涉及实物编领域,具体涉及一种用于实物编程的编译方法与编译引擎。


背景技术:

2.实物编程是在图形化编程语言的基础上,将屏幕中的代码块实物化表达程序逻辑。
3.在实物编程体系中,一般缺乏高级语言的支撑,缺乏统一标准,通过代码块信息获取,其他类似方式直接调用底层接口,代码块信息和底层硬件耦合性强,不具备通用性及扩展性。


技术实现要素:

4.本发明的目的是,针对背景技术中列举的种种情况,为克服现有技术的缺陷,提供一种用于实物编程的编译方法与编译引擎。
5.为了实现上述目的,本发明提供以下技术方案:
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.(1)本发明中,将指令信息编译成实物编程语言,然后将实物编程语言编译成可供硬件实体以及软件孪生设备执行的脚本语言或其他可执行编码,从而驱动硬件实体以及软件孪生设备。本发明通过实物编程语言进行解耦,将硬件编程与底层接口进行隔离,使得编程逻辑不再强依赖硬件底层接口,使得编程逻辑可独立运行,完成高复杂度的逻辑编程,适应复杂的编程场景。
34.(2)本发明中通过云边一体化的方式,将指令数据以及对象数据存储在云端,利用云端一体的统一的编译引擎既可以运行于实物编程场景,又可以运行于虚拟场景,通过轻量化的配置及支持多种可执行代码和/或可执行脚本,具有高度的场景适应性。
附图说明
35.图1是实施例1中,用于实物编程的编译方法流程图。
36.图2是实施例1中,利用检验器进行校验的流程图。
37.图3是实施例1中,利用编译器进行编译的流程图。
38.图4是本发明中,编译引擎的示意图。
39.图5是实施例2中,用于实物编程的编译方法流程图。
40.图6是实施例6中,计算机设备的一种示例。
41.图7是实施例7中,计算机可读介质的一种示例。
具体实施方式
42.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
44.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
45.为了使本领域技术人员在阅读实施例的时候能够更好地理解实施例的具体技术方案并帮助本领域技术人员通过阅读本发明的实施例来实现本发明的技术方案,首先对本发明中提到的一些技术术语进行解释,解释的目的不是为了限定本发明。
46.所述实物编程是一种特殊的编程形式,作为一种有形的编程语言。实物编程可以是:在图形化编程语言的基础上,将屏幕中的代码块实物化,封装到类似于积木块、指令块等实物模块当中,这些实物模块被赋予不同的属性或功能,如函数、变量、逻辑、传感器等。它们可以通过不同的拼接、排布方式表达程序逻辑,并对指令做出响应。在本发明中,实物编程可以体现为一种程序,这种程序可以在电子设备中被存储、交互或执行。
47.需要说明的是,本发明中所述的实物编程设备可以是编程机或智能积木,也可以是可编程装置,如智能音箱、智能台灯、智能手表等等。
48.以下将结合附图对具体的实施例进行详细的说明。
49.实施例1
50.如图1所示,一种用于实物编程的编译方法,所述编译方法嵌入实物编程系统,编译引擎配置于云服务器,所述编译引擎至少包括校验器和编译器;
51.所述编译方法包括:
52.当针对实物编程设备进行实物编程时,所述编译引擎
53.s11接收指令信息,利用所述校验器对指令信息的语法进行校验、对编程对象数据进行校验、对接口数据进行校验;
54.s12利用所述编译器解析对象数据、解析事件数据、解析编程指令数据,并将其编译成实物编程语言;
55.s13利用所述编译器将实物编程语言编译成能够被硬件实体执行的脚本或编码。
56.本发明中,实物编程语言为将指令信息编译完成后的代码语言。实物编程语言是实物编程系统中重要的一环,它是介于实物编程块和硬件程序之间的中间语言,它的作用是屏蔽具体硬件的差异性,并能方便地转译成不同硬件平台上的程序。本发明中实物编程语言和计算机编程语言相比,有相似的部分(比如逻辑控制、流程控制、运算符等),但也存在一些差异;所述差异部分在于实物编程语言具备体现实物可编程设备的各种能力,它除了包含编程语言的语法体系外还包含与实物相关的语言元素,比如动作、传感器消息事件、传感器参数等部分。
57.在一些优选的方式中,利用所述校验器对指令信息的语法进行校验、对编程对象数据进行校验、对接口数据进行校验,具体实现为:
58.所述校验器包括语法校验组件、接口校验组件与对象校验组件;
59.首先利用语法校验组件对指令信息的语法进行校验,校验指令信息是否存在语法错误;
60.然后利用对象校验组件对编程对象数据进行校验,校验编程对象是否存在,并且从缓存中校验指令数据以及对象数据,如果该对象的指令数据或者对象数据不存在,则从云端同步指令数据以及对象数据;
61.最后利用接口校验组件对接口数据进行校验,校验接口数据是否存在。
62.所述接口指的是能够为实物编程设备引用及读取的接口。
63.具体地,如图2所示,利用检验器进行校验的流程为:
64.指令信息输入,
65.对指令信息进行语法校验,如果语法不正确,则结束,
66.如果指令信息的语法正确,则进行对象校验,拉取对象数据,进行校验,如果对象数据或者该对象指令数据不存在,则从云端同步指令数据以及对象数据,如果编程对象及该对象指令数据存在,则进行接口校验,如果接口数据存在,则进入实物编程语言编译阶段。
67.在一些优选的方式中,利用所述编译器解析对象数据、解析事件数据、解析编程指令数据,并将其编译成实物编程语言,具体实现为:
68.所述编译器包括指令解析器、对象解析器与事件解析器;首先,利用对象解析器解析对象数据,并将对象数据编译成实物编程语言;然后利用事件解析器解析事件数据,并将事件数据编译成实物编程语言;最后利用指令解析器解析指令数据,并将指令数据编译成
实物编程语言。
69.具体地,如图3所示,利用编译器进行编译的流程为:
70.首先解析对象数据,将对象数据编译成实物编程语言;
71.然后解析事件数据,如果事件存在,则在对象中注册事件信息以及消息信息;将事件数据编译成实物编程语言;
72.最后解析指令数据,并将其编译成实物编程语言。
73.在一些优选的方式中,将实物编程语言编译成能够被硬件实体执行的脚本或编码,具体实现为:
74.生成实物编程设备与编程指令匹配的编译数据,发送给实物编程设备,实物编程设备的执行模块或者执行机构执行编程指令并反馈执行数据。
75.实施例2
76.如图5所示,一种用于实物编程的编译方法,所述编译方法嵌入实物编程系统,编译引擎配置于云服务器,所述编译引擎至少包括校验器和编译器;
77.所述编译方法包括:
78.当虚拟化编程系统进行虚拟化编程时,所述编译引擎
79.s21接收针对软件孪生体的虚拟化编程指令,利用所述校验器对虚拟化编程指令信息的语法进行校验、对编程对象数据进行校验、对接口数据进行校验;
80.s22利用所述编译器解析对象数据、解析事件数据、解析编程指令数据,并将其编译成实物编程语言;
81.s23利用所述编译器将实物编程语言编译成能够被软件孪生体对应的实物编程设备执行的脚本或编码。
82.在一些实施方式中,步骤s23为:利用所述编译器将实物编程语言编译成能够被软件孪生体和/或软件孪生体对应的实物编程设备执行的脚本或编码。在一些实施方式中,两者(软件孪生体和软件孪生体对应的实物编程设备)是同步执行的。
83.本发明中,实物编程语言为将指令信息编译完成后的代码语言。
84.在一些优选的方式中,将实物编程语言编译成能够被软件孪生体对应的实物编程设备执行的脚本或编码,具体实现为:
85.虚拟化编程系统中,生成实物编程设备与虚拟化编程指令匹配的编译数据,发送给实物编程设备,实物编程设备的执行模块或者执行机构执行虚拟化编程指令并反馈执行数据。
86.在一些实施方式中,参考图4,所述实物编程系统还包括虚拟化平台,所述虚拟化平台采集实物编程设备的数据信息和实物编程的过程信息,以数字孪生的方式建立虚拟化编程系统,所述虚拟化编程系统执行虚拟化编程,生成虚拟化编程指令,编译引擎接收针对软件孪生体的虚拟化编程指令,按照上述的编译方法进行编译,生成实物编程设备与虚拟化编程指令匹配的编译数据,发送给实物编程设备,实物编程设备执行虚拟化编程指令并反馈执行数据。
87.具体地,在虚拟化平台上,已有实物编程设备多种形态或结构的虚拟化模型,即用户针对实物编程设备软件孪生体(虚拟化形象)发起编程指令,以期对实物编程设备进行控制。举例说明,在web端通过发送虚拟化编程指令达到对实物编程设备控制的效果,即:为了
达成对智能积木构成的大厦造型(实物编程设备)进行的控制;在web端向大厦的通讯模块发送控制信号(虚拟化编程指令),采用以上所述的编译引擎和所述的编译方法,控制信号指示大厦顶端的灯柱闪动;
88.由于具有共通的编程指令数据、实物编程语言语法标准、模型标准、编程场景数据、编程执行数据,在虚拟化编程系统中,智能积木构成的大厦(软件孪生体)能够执行控制信号,并执行大厦顶端的灯柱闪动。
89.在一些实施方式中,智能积木构成的大厦和虚拟化系统中的大厦(软件孪生体)顶端的灯柱同时实现闪动。
90.本实施例中,所述模型标准包括实体形态、实物编程语言语法标准和功能接口;在本发明中所述实体可以是编程机或智能积木,也可以是可编程装置,如智能音箱、智能台灯、智能手表等等;所述实物编程语言语法标准详见实施例1所述的实物编程语言所具备的一些要求;所述功能接口指的是能够被所述实物编程设备引用及读取的接口。
91.本实施例中的其他实施方式可以与实施例1相同或者相似。
92.实施例3
93.在一些优选的方式中,参考图4,所述编译引擎还包括缓存中心,所述缓存中心包括指令缓存器与对象缓存器;所述指令缓存器用于缓存指令信息;所述对象缓存器用于缓存对象信息。
94.在一些优选的方式中,所述缓存中心还包括语言关键字与标准库;所述语言关键字用于存储实物编程语言的关键字;所述标准库用于存储实物编程语言的标准库函数。
95.所述标准库函数包括实物编程程序,实物编程程序(可执行函数)是面向可编程硬件的程序,程序体需要指明程序执行的硬件对象。考虑到多实物互动的场景需求,在程序里需要对多个硬件对象编程,并且不同硬件上的传感器需要能将消息事件通过网络方式传播出去,收到事件的硬件,根据程序规则执行相应动作。因此实物编程程序整体上是符合ta(trigger-action)模式的程序。通过本地或网络上的硬件传感器事件来触发动作的执行。实物编程程序可以按模板模式结构来布局。
96.在一些优选的方式中,所述语言关键字包括语法关键词、对象和事件关键词。
97.所述语法关键词可以为and、or、case_begin、case、case_end、false、loop_begin、loop、not、true,end和function。
98.对象和事件关键词可以为objid、send、receive、action和event等,这些关键词是用于实物编程语言面向实物对象和事件驱动的关键词。比如,可以用于指明哪个实物编程设备,发送什么广播,或接受什么广播,执行什么动作。
99.实施例4
100.在一些优选的方式中,所述编译器还包括脚本生成器;所述脚本生成器将实物编程语言进行二次编译,形成能够被硬件实体或软件孪生设备执行的脚本或编码。
101.所述编译器还包括其他编译器,其他编译器为其他可将实物编程语言进行二次编译的编译器,二次编译后能够形成可供硬件实体或软件孪生设备执行的其他可执行编码。
102.本发明中,所述实物编程语言为将指令信息编译完成后的代码语言。
103.可以根据不同的需求将实物编程语言编译成不同的脚本语言或者可执行编码,交由多端执行引擎执行,从而驱动实体硬件设备或软件孪生设备,实现实物编程语言在不同
的环境中的适配,使其既可以适用于不同的硬件环境,也可以适配于软件数字孪生环境,从而从根本上实现云边一体化。
104.具体地,以lua脚本执行引擎为例,假设为2个实物互动场景:亮度传感器实物和风扇实物。亮度传感器实物执行的是:根据其探测到的光强发送广播消息事件,风扇实物执行的是:不发送消息数据,低亮度时执行开风扇,高亮度时关闭风扇。
105.实施例5
106.本发明的编译引擎主要功能是将代码块信息编译成实物编程语言,并且将实物编程语言进一步转换成可执行脚本或其他可执行编码,交由执行引擎进行驱动,从而驱动实体硬件设备或/和软件孪生设备。
107.在实物编程体系中,以及,虚拟化编程体系中,本发明的编译引擎都可以进行指令编译,并将编译后的内容交由执行引擎驱动,从而驱动实体硬件设备或者软件孪生设备。
108.作为一种实现形式,本发明的编译引擎可将整个编译过程执行为三个阶段,分别为预编译阶段,语言编译阶段,脚本编译阶段。具体的阶段和步骤并不局限于此。
109.第一阶段,即预编译阶段:校验指令信息的语法正确性,并且从云端同步本地缓存中不存在的对象数据以及指令信息数据。
110.第二阶段,即语言编译阶段:将指令信息编译成实物编程语言;
111.第三阶段,即脚本编译阶段:可以根据不同的需求,将实物编程语言编译成不同的脚本语言或者可执行编码,交由多端执行引擎执行。从而实现预设的编程语言在不同的环境中的适配,使其既可以适用于不同的硬件环境,也可以适配于软件数字孪生环境,从而从根本上实现云边一体化。
112.实施例6
113.一种计算机设备,在本发明中可以配置为云端服务器,如图6所示,包括存储器102、处理器101以及存储在所述存储器上并可在所述处理器上运行的计算机程序103,所述处理器在执行所述计算机程序时能够实现以上所述的用于实物编程的编译方法中的步骤。
114.实施例7
115.如图7所示,一种计算机可读介质91,其上存储有计算机程序,所述计算机程序被处理器执行时能够实现以上所述的用于实物编程的编译方法中的步骤。
116.在本实施例中,所述计算机程序可以是实施例6中的计算机程序。
117.在本实施例中,所述计算机可读存储介质可以被实施例6中的计算机设备所运行。
118.本领域普通技术人员可以理解实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
119.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例的所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
120.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
再多了解一些

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

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

相关文献