CN107463421B - 一种静态流程模型的编译执行方法及*** - Google Patents
一种静态流程模型的编译执行方法及*** Download PDFInfo
- Publication number
- CN107463421B CN107463421B CN201710573178.9A CN201710573178A CN107463421B CN 107463421 B CN107463421 B CN 107463421B CN 201710573178 A CN201710573178 A CN 201710573178A CN 107463421 B CN107463421 B CN 107463421B
- Authority
- CN
- China
- Prior art keywords
- model
- static flow
- memory
- flow model
- source code
- 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.)
- Active
Links
- 230000003068 static effect Effects 0.000 title claims abstract description 205
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000008569 process Effects 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 5
- 239000002699 waste material Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种静态流程模型的编译执行方法及***。该方法包括:获取静态流程模型;对静态流程模型的静态定义进行解析,得到解析后的静态流程模型;将解析后的静态流程模型存储在内存中,记为内存模型;对内存模型进行编码并对代码模板的代码槽进行填充,得到内存模型的源代码文件,保存源代码文件;对源代码文件中的源代码进行编译,生成源代码对应的动态链接库,保存动态链接库;当需要执行静态流程模型时,加载静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。本发明提供的静态流程模型的编译执行方法及***能够提高执行静态流程模型的效率,适用于复杂的流程实例的运行。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种静态流程模型的编译执行方法及***。
背景技术
计算机并不能直接接受和执行采用高级语言编写的源代码,先要翻译成机器语言,才能被计算机识别和执行。
静态流程模型的执行往往通过解释执行的技术实现,解释执行的效率往往由于需要根据每句计算机语句来实时转为机器指令,从而使得整个***的执行效率较低。流程模型的一次执行称为该流程对应的实例,一个静态模型执行多次即可产生多条实例,每条实例执行的活动集称为实例对应的轨迹。流程模型的每一次执行都要根据每句计算机语句来实时转为机器指令,即每执行一次就要翻译一次,占用了过多的计算机资源、执行效率低、不适用于复杂的流程实例的运行。
发明内容
本发明的目的是提供一种静态流程模型的编译执行方法及***,能够提高执行静态流程模型的效率,适用于复杂的流程实例的运行。
为实现上述目的,本发明提供了如下方案:
一种静态流程模型的编译执行方法,所述方法包括:
获取静态流程模型;
对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;
将解析后的静态流程模型存储在内存中,记为内存模型;
对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;
对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;
当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。
可选的,所述对所述内存模型进行编码,得到所述内存模型的源代码文件,具体包括:
提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;
根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;
如果是,则返回所述模型仓库中存在的内存模型对应的源代码文件;
如果否,对内存模型进行编码,形成源代码文件。
可选的,在所述对所述静态流程模型的静态定义进行解析之后,在所述将解析后的静态流程模型存储在内存中之前,还包括:
根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确;
如果是,则将解析后的静态流程模型存储在内存中,记为内存模型。
可选的,所述静态流程模型中的各个元素包括:所述静态流程模型的开始事件、结束事件、中间事件、普通任务、人工任务、脚本任务、选择网关、并行网关等。
可选的,所述参数配置包括:开始时间、结束时间、执行者、运行jar包路径、运行函数名、运行参数、运行方式、运行脚本、人工信息、默认输出流等。
可选的,所述全局配置包括所述静态流程模型的名称、创建者、版本号等。
本发明还提供了一种静态流程模型的编译执行***,所述***包括:
模型获取单元,用于获取静态流程模型;
模型解析单元,用于对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;
存储单元,用于将解析后的静态流程模型存储在内存中,记为内存模型;
源代码生成单元,用于对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;
编译单元,用于对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;
加载执行单元,用于当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。
可选的,所述源代码生成单元,具体包括:
参数配置提取子单元,用于提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;
查询子单元,用于根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;
返回子单元,用于当模型仓库中存在所述内存模型对应的源代码文件时,返回所述模型仓库中存在的内存模型对应的源代码文件;
编码子单元,用于当模型仓库中不存在所述内存模型对应的源代码文件时,对内存模型进行编码,形成源代码文件。
可选的,所述***还包括:
判断单元,用于根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明通过将静态流程模型进行解析,并读取模型的拓扑结构及参数配置,然后将静态流程模型转化为对应逻辑的程序源代码,并将源代码编译成动态链接库,并保存序源代码以及源代码编译成动态链接库,当静态流程模型实例需要运行时,加载对应的动态链接库到内存中,即可实现静态流程模型实例的执行。由于本发明将静态流程模型转化为了对应逻辑的程序源代码以及动态链接库,并对其进行了保存,这使得每次需要执行该静态流程模型时,只需加载动态链接库就可以直接进行执行,无需每次都将静态流程模型的源代码中的语句逐句转为机器指令,进而计算机再执行,避免了对计算机资源的浪费,提高了执行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例静态流程模型的编译执行方法流程图;
图2为本发明实施例静态流程模型的执行架构图;
图3为本发明实施例静态流程模型的解析流程图;
图4为本发明实施例源代码生成过程的流程图;
图5为本发明实施例加载动态链接库的流程图;
图6为本发明实施例静态流程模型的编译执行***结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种静态流程模型的编译执行方法及***,能够提高执行静态流程模型的效率,适用于复杂的流程实例的运行。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例静态流程模型的编译执行方法流程图,如图1所示,本发明静态流程模型的编译执行方法步骤如下:
步骤101:获取静态流程模型;
步骤102:对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;
步骤103:将解析后的静态流程模型存储在内存中,记为内存模型;
步骤104:对对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;
步骤105:对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;
步骤106:当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。
其中,步骤104具体包括:
提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;
根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;
如果是,则返回所述模型仓库中存在的内存模型对应的源代码文件;
如果否,对内存模型进行编码,形成源代码文件。
优选的,所述静态流程模型的编译执行方法还包括:
在对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型之后,根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确;
如果是,则将解析后的静态流程模型存储在内存中,记为内存模型。
在上述方法步骤中,所述静态流程模型中的各个元素包括:所述静态流程模型的开始事件、结束事件、中间事件、普通任务、人工任务、脚本任务、选择网关、并行网关等。
所述参数配置包括:开始时间、结束时间、执行者、运行jar包路径、运行函数名、运行参数、运行方式、运行脚本、人工信息、默认输出流等。
所述全局配置包括所述静态流程模型的名称、创建者、版本号等。
作为本发明的又一实施例,静态流程模型为一个确定过程的形式化或图示化描述,为了提高静态流程模型的执行效率,需要建立一个模型解析器读取模型的拓扑结构及参数设置,然后通过代码生成器将模型转化为对应逻辑的程序源代码,并通过编译器将源代码编译成动态链接库,当模型实例需要运行时,加载对应的动态链接库到内存中,即可实现模型实例的执行。最后调度器调度一个流程实例的状态切换还需要同时监控、通过调度算法调度多个流程实例。
图2为本发明实施例静态流程模型的执行架构图,如图2所示,模型解析器,模型解析器的主要职责是对静态流程模型的静态定义进行解析,得到静态流程模型的拓扑结构、静态流程模型中的各个元素(例如开始事件、结束事件、中间事件、普通任务、人工任务、脚本任务、选择网关、并行网关等)的相应参数配置(例如开始时间、结束时间、执行者、运行jar包路径、运行函数名、运行参数、运行方式、运行脚本、人工信息、默认输出流等)以及整个静态流程模型的全局配置(例如模型名称、模型创建者、模型版本号等)。
图3为本发明实施例静态流程模型的解析流程图,如图3所示,以静态流程模型的静态定义形式为XML文件配置为例,先通过对计算机语言的解析提取出各个标签对应的静态流程模型的全局配置及其拓扑结构,检查静态流程模型的控制流层面的正确性(例如是否含有开始事件和结束时间、是否存在孤立的结点、是否存在不满足元素语义的部分等);在保证静态流程模型的控制流层面的正确性的情况下,提取出各个模型元素的相关参数配置,然后对静态模型的数据流层面进行正确性的检查(例如是否存在没有初始化就作为某活动输入的变量,是否存在自始至终均无使用的变量等);在数据流层正确性保证的情况下,将整个静态流程模型存储在内存中的模型对象中,成为内存模型。该内存模型的拓扑结构、各个元素以及整个模型的参数均从XML定义文件中获得,以此得到了内存模型以供下一步使用。此处,内存模型的拓扑结构、各个元素以及整个模型的参数即为静态流程模型的拓扑结构、各个元素以及整个模型的参数。
代码生成器,代码生成器的目的是将内存模型对应的逻辑执行转化为代码的形式。为了避免"路径式"的代码生成方式带来的问题(例如代码过长、不宜处理多重选择等情况),我们设计了一种"过程感知"的代码生成方式,这一设计极大地减少了代码长度,并具有更强的鲁棒性。
图4为本发明实施例源代码生成过程的流程图,如图4所示,代码生成器首先需要输入内存模型和代码模板(代码模板是针对各种模型元素的语义进行对应执行的不随模型发生变化的代码内容,对代码模板中的代码槽进行填充以此来适应当前模型对应的内容,代码槽为随模型发生变化的代码内容),在内存模型中提取模型参数配置(例如模型名、版本号等),将这些参数配置填充在代码模板对应的模型参数槽中;然后查询当前的模型仓库中是否存在该内存模型版本相应的文件,若存在,则直接返回之前生成的该内存模型版本的源代码;若不存在,则需要通过对内存模型进行编码,形成相应的编码文件(例如XML、JSON等文件),该编码文件是通过现有技术的编码方式(例如内存对象封装为Json格式文件或XML格式文件等技术)对内存模型进行编码的,执行内存模型时向编码文件中读取源代码,从而使源代码的执行不是"路径式"的僵硬方式而是根据中间文件存储的内存模型进行灵活的"感知式"地执行;最后,创建该内存模型对应的源代码文件,并将填充后的代码模板作为源代码文件存入。
编译器,编译器主要是将静态流程模型对应的源代码编译成它对应的动态链接库。动态链接库是一种库,当程序运行中需要加载它时,才加载到内存中。
由于流程实例的执行是由对应的静态流程模型的逻辑执行决定的,所以当流程实例运行时,先调用相应的静态流程模型。但是,往往并不是提前将所有的静态流程模型直接加载到内存中,因为这样会造成内存极大的浪费。所以,流程模型要能够被动态地加载到内存中。
动态加载是一种计算机程序运行中的加载库或二进制到内存中的机制,检索动态加载库中函数和变量的地址,执行这些函数或访问这些变量,并能从内存中卸载动态链接库。程序在启动的时候不调用这些动态链接库,发现需要调用动态链接库中的函数时,再进行加载。动态加载大多数是由操作***或者I/O子***处理。在UNIX,Solaris,Linux中,常用的动态加载库后缀名是“*.so”,Windows***下的动态加载库后缀名是“*.dll”。也存在***不支持动态加载,如Plan 9。大多数的计算机语言都提供了对动态链接库的架加载操作,如加载动态连接库,查找静态流程模型逻辑执行的相关方法,处理异常,卸载动态连接库等。
图5为本发明实施例加载动态链接库的流程图,如图5所示,将静态流程模型源代码编译成动态链接库,当静态流程模型需要被加载时,加载动态链接库到内存中,当流程实例运行时,查找静态流程模型逻辑执行的相关方法,当不需要使用该静态流程模型时,可卸载动态链接库。
调度器,一个流程实例一般具有创建,激活,挂起,终止和完成。创建是指流程实例刚创建。流程实例正常执行的状态叫运行。当暂停此流程实例运行的状态叫挂起,当恢复时,流程状态可变成激活状态。若流程实例运行出现问题或异常的状态叫终止。顺序完成流程模型中所有任务的执行,叫完成。流程实例状态的切换需要由调度器负责,调度器不仅调度一个流程实例的运行,状态切换还需要同时监控、通过调度算法调度多个流程实例。
本发明提供的静态流程模型的编译执行方法通过将静态流程模型进行解析,并读取模型的拓扑结构及参数配置,然后将静态流程模型转化为对应逻辑的程序源代码,并将源代码编译成动态链接库,并保存序源代码以及源代码编译成动态链接库,当静态流程模型实例需要运行时,加载对应的动态链接库到内存中,即可实现静态流程模型实例的执行。由于本发明将静态流程模型转化为了对应逻辑的程序源代码以及动态链接库,并对其进行了保存,这使得每次需要执行该静态流程模型时,只需加载动态链接库就可以直接进行执行,无需每次都将静态流程模型的源代码中的语句逐句转为机器指令,进而计算机再执行,避免了对计算机资源的浪费,提高了执行效率。
本发明还提供了一种静态流程模型的编译执行***,图6为本发明实施例静态流程模型的编译执行***结构示意图,如图6所示,所述***包括:
模型获取单元601,用于获取静态流程模型;
模型解析单元602,用于对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;
存储单元603,用于将解析后的静态流程模型存储在内存中,记为内存模型;
源代码生成单元604,用于对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,保存所述源代码文件;
编译单元605,用于对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;
加载执行单元606,用于当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,以实现所述静态流程模型的执行。
其中,所述源代码生成单元604,具体包括:
参数配置提取子单元,用于提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;
查询子单元,用于根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;
返回子单元,用于当模型仓库中存在所述内存模型对应的源代码文件时,返回所述模型仓库中的所述源代码文件;
编码子单元,用于当模型仓库中不存在所述内存模型对应的源代码文件时,对内存模型进行编码,形成源代码文件。
所述***还包括:
判断单元,用于根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确。
所述静态流程模型中的各个元素包括:所述静态流程模型的开始事件、结束事件、中间事件、普通任务、人工任务、脚本任务、选择网关、并行网关等。
所述参数配置包括:开始时间、结束时间、执行者、运行jar包路径、运行函数名、运行参数、运行方式、运行脚本、人工信息、默认输出流等。
所述全局配置包括所述静态流程模型的名称、创建者、版本号等。
本发明提供的静态流程模型的编译执行***通过将静态流程模型进行解析,并读取模型的拓扑结构及参数配置,然后将静态流程模型转化为对应逻辑的程序源代码,并将源代码编译成动态链接库,并保存序源代码以及源代码编译成动态链接库,当静态流程模型实例需要运行时,加载对应的动态链接库到内存中,即可实现静态流程模型实例的执行。由于本发明将静态流程模型转化为了对应逻辑的程序源代码以及动态链接库,并对其进行了保存,这使得每次需要执行该静态流程模型时,只需加载动态链接库就可以直接进行执行,无需每次都将静态流程模型的源代码中的语句逐句转为机器指令,进而计算机再执行,避免了对计算机资源的浪费,提高了执行效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种静态流程模型的编译执行方法,其特征在于,所述方法包括:
获取静态流程模型;
对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;
将解析后的静态流程模型存储在内存中,记为内存模型;
对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,将所述源代码文件存入模型仓库;
对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;
每当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,通过加载动态链接库调用模型仓库中存储的该静态流程模型对应的源代码文件,以实现所述静态流程模型的执行。
2.根据权利要求1所述的编译执行方法,其特征在于,所述对所述内存模型进行编码,得到所述内存模型的源代码文件,具体包括:
提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;
根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;
如果是,则返回所述模型仓库中存在的内存模型对应的源代码文件;
如果否,对内存模型进行编码,形成源代码文件。
3.根据权利要求1所述的编译执行方法,其特征在于,在所述对所述静态流程模型的静态定义进行解析之后,在所述将解析后的静态流程模型存储在内存中之前,还包括:
根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确;
如果是,则将解析后的静态流程模型存储在内存中,记为内存模型。
4.根据权利要求1所述的编译执行方法,其特征在于,所述静态流程模型中的各个元素包括:所述静态流程模型的开始事件、结束事件、中间事件、普通任务、人工任务、脚本任务、选择网关、并行网关。
5.根据权利要求1所述的编译执行方法,其特征在于,所述参数配置包括:开始时间、结束时间、执行者、运行jar包路径、运行函数名、运行参数、运行方式、运行脚本、人工信息、默认输出流。
6.根据权利要求1所述的编译执行方法,其特征在于,所述全局配置包括所述静态流程模型的名称、创建者、版本号。
7.一种静态流程模型的编译执行***,其特征在于,所述***包括:
模型获取单元,用于获取静态流程模型;
模型解析单元,用于对所述静态流程模型的静态定义进行解析,得到解析后的静态流程模型,所述解析后的静态流程模型包括所述静态流程模型的拓扑结构、所述静态流程模型中的各个元素、各所述元素的参数配置以及所述静态流程模型的全局配置;
存储单元,用于将解析后的静态流程模型存储在内存中,记为内存模型;
源代码生成单元,用于对所述内存模型进行编码并对代码模板的代码槽进行填充,得到所述内存模型的源代码文件,将所述源代码文件存入模型仓库;
编译单元,用于对所述源代码文件中的源代码进行编译,生成所述源代码对应的动态链接库,保存所述动态链接库;
加载执行单元,用于每当需要执行所述静态流程模型时,加载所述静态流程模型对应的动态链接库到内存中,通过加载动态链接库调用模型仓库中存储的该静态流程模型对应的源代码文件,以实现所述静态流程模型的执行。
8.根据权利要求7所述的编译执行***,其特征在于,所述源代码生成单元,具体包括:
参数配置提取子单元,用于提取所述内存模型的参数配置,所述内存模型的参数配置包括所述内存模型对应的所述静态流程模型的名称和版本号;
查询子单元,用于根据所述内存模型的参数配置,查询模型仓库中是否存在所述内存模型对应的源代码文件;
返回子单元,用于当模型仓库中存在所述内存模型对应的源代码文件时,返回所述模型仓库中存在的内存模型对应的源代码文件;
编码子单元,用于当模型仓库中不存在所述内存模型对应的源代码文件时,对内存模型进行编码,形成源代码文件。
9.根据权利要求7所述的编译执行***,其特征在于,所述***还包括:
判断单元,用于根据解析后的静态流程模型判断所述静态流程模型在控制流层面和数据流层面是否正确。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710573178.9A CN107463421B (zh) | 2017-07-14 | 2017-07-14 | 一种静态流程模型的编译执行方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710573178.9A CN107463421B (zh) | 2017-07-14 | 2017-07-14 | 一种静态流程模型的编译执行方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107463421A CN107463421A (zh) | 2017-12-12 |
CN107463421B true CN107463421B (zh) | 2020-03-31 |
Family
ID=60544140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710573178.9A Active CN107463421B (zh) | 2017-07-14 | 2017-07-14 | 一种静态流程模型的编译执行方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107463421B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304229B (zh) * | 2018-01-30 | 2019-02-19 | 北京市安全生产科学技术研究院 | 一种安全生产vr实训关卡模型动态加载生成方法和*** |
CN109358846B (zh) * | 2018-09-19 | 2019-09-27 | 深圳大学 | 一种基于c语言的语法扩展方法、装置及终端设备 |
CN111596972B (zh) * | 2020-05-15 | 2023-09-26 | 北京小米松果电子有限公司 | 神经网络模型存储方法、加载方法、装置、设备及存储介质 |
CN116795378B (zh) * | 2023-08-18 | 2023-11-21 | 宁波数益工联科技有限公司 | 基于代码动态编译的流程编排执行方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004038225A (ja) * | 2002-06-28 | 2004-02-05 | Fujitsu Ltd | コンパイラプログラムおよびコンパイル処理方法 |
CN1975669A (zh) * | 2006-12-15 | 2007-06-06 | 中兴通讯股份有限公司 | Xml语言描述的业务逻辑映射到应用语言的方法 |
CN101256492A (zh) * | 2008-03-31 | 2008-09-03 | 宋乃辉 | 一种进行模型驱动架构的软件开发方法及其*** |
CN103135984A (zh) * | 2011-11-28 | 2013-06-05 | 软件股份公司 | 用于向分布式网络环境自动部署流程的方法和*** |
CN106484898A (zh) * | 2016-10-21 | 2017-03-08 | 用友网络科技股份有限公司 | 一种动态生成Web***页面的方法及装置 |
CN106649077A (zh) * | 2015-11-02 | 2017-05-10 | 中国船舶工业***工程研究院 | 一种自动生成tps的方法 |
-
2017
- 2017-07-14 CN CN201710573178.9A patent/CN107463421B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004038225A (ja) * | 2002-06-28 | 2004-02-05 | Fujitsu Ltd | コンパイラプログラムおよびコンパイル処理方法 |
CN1975669A (zh) * | 2006-12-15 | 2007-06-06 | 中兴通讯股份有限公司 | Xml语言描述的业务逻辑映射到应用语言的方法 |
CN101256492A (zh) * | 2008-03-31 | 2008-09-03 | 宋乃辉 | 一种进行模型驱动架构的软件开发方法及其*** |
CN103135984A (zh) * | 2011-11-28 | 2013-06-05 | 软件股份公司 | 用于向分布式网络环境自动部署流程的方法和*** |
CN106649077A (zh) * | 2015-11-02 | 2017-05-10 | 中国船舶工业***工程研究院 | 一种自动生成tps的方法 |
CN106484898A (zh) * | 2016-10-21 | 2017-03-08 | 用友网络科技股份有限公司 | 一种动态生成Web***页面的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107463421A (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463421B (zh) | 一种静态流程模型的编译执行方法及*** | |
CN105164641B (zh) | 扩展开发环境 | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
US8832125B2 (en) | Extensible event-driven log analysis framework | |
CN110704064B (zh) | 编译和执行智能合约的方法及装置 | |
CN104932905A (zh) | 一种aadl到c语言的代码自动生成方法 | |
US20100037213A1 (en) | Grammar-based generation of types and extensions | |
CN110704063A (zh) | 编译和执行智能合约的方法及装置 | |
US20180032320A1 (en) | Computer-implemented method for allowing modification of a region of original code | |
US20090328016A1 (en) | Generalized expression trees | |
CN110673837B (zh) | 代码修复方法及装置、电子设备、计算机可读存储介质 | |
CN110825386B (zh) | 代码的编译方法和装置、存储介质 | |
US9134973B2 (en) | Dynamic compiling and loading at runtime | |
CN111913741A (zh) | 对象拦截方法、装置、介质及电子设备 | |
CN112882718A (zh) | 编译处理方法、装置、设备及存储介质 | |
Bouraqadi et al. | Test-driven development for generated portable Javascript apps | |
CN106293687B (zh) | 一种打包流程的控制方法,及装置 | |
CN110110299B (zh) | 文本变换方法、装置以及服务器 | |
US9747085B2 (en) | Source code generation from prototype source | |
US20140359579A1 (en) | Combined data and instruction test content | |
CN109271237B (zh) | 仿真控制方法和装置 | |
US11714609B2 (en) | Automatic generation of source code implementing a regular expression | |
Wood et al. | Triton: a domain specific language for cyber-physical systems | |
CN115390846A (zh) | 编译构建方法、装置、电子设备和存储介质 | |
JP2006338190A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |