CN111124485A - 一种基于中间语言的形式化规约语言简化方法 - Google Patents
一种基于中间语言的形式化规约语言简化方法 Download PDFInfo
- Publication number
- CN111124485A CN111124485A CN201911328421.6A CN201911328421A CN111124485A CN 111124485 A CN111124485 A CN 111124485A CN 201911328421 A CN201911328421 A CN 201911328421A CN 111124485 A CN111124485 A CN 111124485A
- Authority
- CN
- China
- Prior art keywords
- list
- type
- pars
- parameter
- lolisa
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于中间语言的形式化规约语言简化方法,将应用程序转化为中间语言程序,然后将中间语言程序映射为Lolisa语言程序;所述中间语言程序包括类型finitpar_type和结构list_pars,采用类型finitpar_type将参数形式化为Type类型,采用结构list_pars将形式化参数列表整合为list类型。本发明将应用程序转化为中间语言程序,中间语言将简化形式化语言的语法,然后根据中间语言和底层的Lolisa语言的转换关系,将中间语言程序转化为Lolisa编写的形式化程序。本发明简化了形式化语言的数据类型和文法规则,提高了形式化验证的用户友好度。
Description
技术领域
本发明属于计算机应用的技术领域,具体涉及一种基于中间语言的形式化规约语言简化方法。
背景技术
随着软件系统越来越复杂,软件开发的成本也不断提升,使得软件测试越来越重要。现有的测试方法主要有传统的用例测试,通过执行大量的测试用例发现程序存在的漏洞,这一方法需要大量的人工编写测试用例,且无法覆盖所有的程序代码。
基于Coq形式化符号执行虚拟机[2](formal symbolic process virtualmachine,FSPVM)以及可扩展的形式化语言Lolisa能够对程序自动形式化建模和验证(YangZ,Lei H.Formal Process Virtual Machine for Smart Contracts Verification[J].International Journal of Performability Engineering,2018)。应用程序被等价的翻译为由形式化高阶语言Lolisa描述的形式化程序,该程序由形式化验证解释器解释执行并且改变形式化内存状态,在这一过程中由Coq的形式化内核来进行执行和验证,最终的程序执行结果将和预先给出的后置条件进行对比,从而判断程序是否存在漏洞。
现阶段,规约化语言Lolisa的语法较为复杂,使其难以广泛实际应用。Lolisa的绝大多数文法有四层语法构成:语句层、表达式层、值层以及类型层。语句层的文法直接形成形式化程序,语句层在表达式层之上构建;表达式层和值层都遵循GADTs规则,使之都需要类型层来构成。同时表达式层需要值层构造复杂的对象,表达式直接的或者通过构建参数列表作为语句的构建单元。参数列表在表达式层上构建,用于函数相关的语句中存储对应的参数,Lolisa为不同的参数列表分别定义了相应的列表类型,使得参数列表语法相当复杂。
发明内容
本发明的目的在于提供一种基于中间语言的形式化规约语言简化方法,旨在解决上述问题,简化形式化语言的数据类型和文法规则,以提高形式化验证方法的用户友好度。
本发明主要通过以下技术方案实现:一种基于中间语言的形式化规约语言简化方法,将应用程序转化为中间语言程序,然后将中间语言程序映射为Lolisa语言程序;所述中间语言程序包括类型finitpar_type和结构list_pars,采用类型finitpar_type将参数形式化为Type类型,采用结构list_pars将形式化参数列表整合为list类型。
为了更好地实现本发明,进一步的,主要包括以下步骤:
步骤S1:使用新类型finitpar_type整合用于构建参数列表的Lolisa表达式,形式化源码中的参数;
步骤S2:将形式化参数组织为统一的list类型的形式化参数列表,将源码中的参数列表转化为list_pars的四元组,list_pars的元素用于存储不同类型的形式化参数列表;
步骤S3:在语句中嵌入相对应的取元素操作,实现取出list_pars中元素的功能;
步骤S4:将步骤S3中得到的中间语言参数列表转化为符合Lolisa文法规则的Lolisa参数类型,使用Coq中的match方法从前往后遍历中间语言参数列表中的每一个元素,同时将各元素转化为符合Lolisa类型格式的参数,并整合到Lolisa中的参数列表。
为了更好地实现本发明,进一步的,所述步骤S1中采用构造子pEop、pStruct、pEfun、pEvar、pEauto、pEonst分别依次形式化运算操作、结构体声中的成员变量、作为实参或者默认参数的函数、变量、auto类型变量、常量。
为了更好地实现本发明,进一步的,所述步骤S2主要包括以下步骤:
步骤S2-1:四元组list_pars第一个元素类型为list(prod nat type),用于存储函数声明的函数参数列表或者lambda声明所需要的变量捕捉列表;
步骤S2-2:四元组list_pars第二个元素类型为list(prod3 type(option nat)(option finitpar_type)),用于存储函数声明或函数定义所需要的参数列表;
步骤S2-3:四元组list_pars第三个元素类型为list(prod type str_name),用于存储结构体定义中的的成员变量声明列表;
步骤S2-4:四元组list_pars第四个元素类型为list(finitpar_type),用于存储函数调用所需要的参数列表或者创建类对象所需要的参数列表。
为了更好地实现本发明,进一步的,所述步骤S3主要包括以下步骤:
步骤S3-1:定义相应的取list_pars中元素的操作:getLpars、getLfinitpars、getLstructMens、getLfcpars,返回参数列表;
步骤S3-2:将取操作嵌入到相应的Lolisa语句层文法中。
为了更好地实现本发明,进一步的,所述步骤S3-2主要包括以下步骤:
步骤S3-2-1:函数声明和lambda声明语句中使用getLpars获取list_pars中的第一个元素;
步骤S3-2-2:函数声明和函数定义语句中使用getLfinitpars获取list_pars中的第二个元素;
步骤S3-2-3:储结构体声明语句中使用getLstructMens获取list_pars中的第三个元素;
步骤S3-2-4:函数调用和创建类对象语句中使用getLfcpars获取list_pars中的第四个元素。
为了更好地实现本发明,进一步的,所述步骤S4主要包括以下步骤:
步骤S4-1:采用list2pars将list_pars中list(prod nat type)类型的参数列表转化为Lolisa中的pars参数列表;
步骤S4-2:采用list2cppars将list_pars中list(prod nat type)类型的参数列表转化为Lolisa中的capture_pars参数列表;
步骤S4-3:采用list2structMens将list_pars中list(prod type str_name)类型的参数列表转化为Lolisa中的struct_mem参数列表;
步骤S4-4:采用list2finitpars将list_pars中list(prod3 type(option nat)(option finitpar_type))类型的参数列表转化为Lolisa中的fun_init_pars参数列表;
步骤S4-5:采用list2fcallps将list_pars中list(finitpar_type)类型的参数列表转化为Lolisa中的fcall_pars参数列表;
步骤S4-6:采用list2callps将list_pars中list(finitpar_type)类型的参数列表转化为Lolisa中的call_pars参数列表。
所述形式化验证是指从数学上完备地证明或验证程序的实现方案是否确实实现了程序设计所描述的功能。
所述形式化方法是基于数学的特种技术,适合于软件和硬件系统的描述、开发和验证。
所述规约语言是指在计算机科学领域的使用的一种形式语言。编程语言是用于系统实现的、可以直接运行的形式语言。与之不同,规约语言主要用于系统分析和设计的过程中。
中间语言是一种面向语法,易于翻译成目标程序的源程序的等效内部表示代码。
Lolisa[1]是一种基于Coq的形式化规约语言(Yang Z,Lei H.Lolisa:Formalsyntax and semantics for a subset of the solidity programming language[J].arXiv preprint arXiv:1803.09885,2018.)。
本发明的有益效果:
(1)本发明包括新类型和新结构的定义,以及新类型的转化方法。本方法基于Lolisa规约化语言,首先,将应用程序转化为中间语言程序,中间语言程序将简化形式化语言的语法,然后根据中间语言和底层的Lolisa语言的转换关系,将中间语言程序转化为Lolisa编写的形式化程序。本方法能简化形式化语言的数据类型和文法规则,提高形式化验证方法的用户友好度。
(2)中间语言程序中添加了新的类型finitpar_type以及结构list_pars,实现中间语言和Lolisa之间的相互转化。简化了Lolisa参数列表形式。待检测源程序被转化为用户友好的中间语言程序,然后根据中间语言和Lolisa语言的对应关系,将中间语言映射为Lolisa语言程序。
(3)本发明将Lolisa中各种参数类型统一形式化为Type类型,从而简化形式化语言的文法。
(4)本发明将Lolisa中各种参数列表类型整合为list类型,从而简化形式化语言的文法。
附图说明
图1为本发明的原理框图;
图2为本发明的流程图。
具体实施方式
实施例1:
一种基于中间语言的形式化规约语言简化方法,如图1所示,将应用程序转化为中间语言程序,然后将中间语言程序映射为Lolisa语言程序;所述中间语言程序包括类型finitpar_type和结构list_pars,采用类型finitpar_type将参数形式化为Type类型,采用结构list_pars将形式化参数列表整合为list类型。
本发明包括新类型和新结构的定义,以及新类型的转化方法。本方法基于Lolisa规约化语言,首先,将应用程序转化为中间语言程序,中间语言将简化形式化语言的语法,然后根据中间语言和底层的Lolisa语言的转换关系,将中间语言程序转化为Lolisa编写的形式化程序。本方法能简化形式化语言的数据类型和文法规则,提高形式化验证方法的用户友好度。
实施例2:
一种基于中间语言的形式化规约语言简化方法,如图2所示,主要包括以下步骤:
步骤S1:使用新类型finitpar_type整合用于构建参数列表的Lolisa表达式,形式化源码中的参数;
步骤S2:将形式化参数组织为统一的list类型的形式化参数列表,将源码中的参数列表转化为list_pars的四元组,list_pars的元素用于存储不同类型的形式化参数列表;
步骤S3:在语句中嵌入相对应的取元素操作,实现取出list_pars中元素的功能;
步骤S4:将步骤S3中得到的中间语言参数列表转化为符合Lolisa文法规则的Lolisa参数类型,使用Coq中的match方法从前往后遍历中间语言参数列表中的每一个元素,同时将各元素转化为符合Lolisa类型格式的参数,并整合到Lolisa中的参数列表。
实施例3:
本实施例是在实施例2的基础上进行优化,所述步骤S1中采用构造子pEop、pStruct、pEfun、pEvar、pEauto、pEonst分别依次形式化运算操作、结构体声中的成员变量、作为实参或者默认参数的函数、变量、auto类型变量、常量。
本实施例的其他部分与上述实施例2相同,故不再赘述。
实施例4:
本实施例是在实施例2的基础上进行优化,所述步骤S2主要包括以下步骤:
步骤S2-1:四元组list_pars第一个元素类型为list(prod nat type),用于存储函数声明的函数参数列表或者lambda声明所需要的变量捕捉列表;
步骤S2-2:四元组list_pars第二个元素类型为list(prod3 type(option nat)(option finitpar_type)),用于存储函数声明或函数定义所需要的参数列表;
步骤S2-3:四元组list_pars第三个元素类型为list(prod type str_name),用于存储结构体定义中的的成员变量声明列表;
步骤S2-4:四元组list_pars第四个元素类型为list(finitpar_type),用于存储函数调用所需要的参数列表或者创建类对象所需要的参数列表。
本实施例的其他部分与上述实施例2相同,故不再赘述。
实施例5:
本实施例是在实施例2的基础上进行优化,所述步骤S3主要包括以下步骤:
步骤S3-1:定义相应的取list_pars中元素的操作:getLpars、getLfinitpars、getLstructMens、getLfcpars,返回参数列表;
步骤S3-2:将取操作嵌入到相应的Lolisa语句层文法中。
步骤S3-2-1:函数声明和lambda声明语句中使用getLpars获取list_pars中的第一个元素;
步骤S3-2-2:函数声明和函数定义语句中使用getLfinitpars获取list_pars中的第二个元素;
步骤S3-2-3:储结构体声明语句中使用getLstructMens获取list_pars中的第三个元素;
步骤S3-2-4:函数调用和创建类对象语句中使用getLfcpars获取list_pars中的第四个元素。
本实施例的其他部分与上述实施例2相同,故不再赘述。
实施例6:
本实施例是在实施例2的基础上进行优化,所述步骤4主要包括以下步骤:
步骤S4-1:采用list2pars将list_pars中list(prod nat type)类型的参数列表转化为Lolisa中的pars参数列表;
步骤S4-2:采用list2cppars将list_pars中list(prod nat type)类型的参数列表转化为Lolisa中的capture_pars参数列表;
步骤S4-3:采用list2structMens将list_pars中list(prod type str_name)类型的参数列表转化为Lolisa中的struct_mem参数列表;
步骤S4-4:采用list2finitpars将list_pars中list(prod3 type(option nat)(option finitpar_type))类型的参数列表转化为Lolisa中的fun_init_pars参数列表;
步骤S4-5:采用list2fcallps将list_pars中list(finitpar_type)类型的参数列表转化为Lolisa中的fcall_pars参数列表;
步骤S4-6:采用list2callps将list_pars中list(finitpar_type)类型的参数列表转化为Lolisa中的call_pars参数列表。
本实施例的其他部分与上述实施例2相同,故不再赘述。
实施例7:
一种基于中间语言的形式化规约语言简化方法,中间语言添加了新的类型finitpar_type以及结构list_pars,实现中间语言和Lolisa之间的相互转化。简化了Lolisa参数列表形式。中间语言整体转化过程如图1所示,待检测源程序被转化为用户友好的中间语言程序,然后根据中间语言和Lolisa语言的对应关系,将中间语言映射为Lolisa语言程序。如图2所示,包括以下步骤:
S1、使用新类型finitpar_type整合用于构建参数列表的Lolisa表达式,形式化源码中的参数。新类型定义如下:
.构造子pEop、pStruct、pEfun、pEvar、pEauto、pEonst依次用来形式化运算操作、结构体声中的成员变量、作为实参或者默认参数的函数、变量、auto类型变量、常量。finitpar_type将各类参数整合为Type类型。
S2、将形式化参数组织为统一的list类型的形式化参数列表。将源码中的参数列表转化为list_pars的四元组,list_pars的元素用于存储不同类型的形式化参数列表。四元组中只需正确的填入一个元素,其他三个元素将被置为空。四元组的定义如下:
S2-1、四元组list_pars第一个元素类型为list(prod nat type),用于存储函数声明的函数参数列表或者lambda声明所需要的变量捕捉列表。
S2-2、四元组list_pars第二个元素类型为list(prod3 type(option nat)(option finitpar_type)),用于存储函数声明或函数定义所需要的参数(可带默认值)列表。
S2-3、四元组list_pars第三个元素类型为list(prod type str_name),用于存储结构体定义中的的成员变量声明列表。
S2-4、四元组list_pars第四个元素类型为list(finitpar_type),用于存储函数调用所需要的参数列表或者创建类对象所需要的参数列表。
S3、在语句中嵌入相对应的取元素操作,实现取出list_pars中特定元素的功能。
S3-1、定义相应的取list_pars中元素的操作:getLpars、getLfinitpars、getLstructMens、getLfcpars,返回参数列表。
S3-2、将取操作嵌入到相应的Lolisa语句层文法中。
S3-2-1、函数声明和lambda声明语句中使用getLpars获取list_pars中的第一个元素。
S3-2-2、函数声明和函数定义(可带默认值)语句中使用getLfinitpars获取list_pars中的第二个元素。
S3-2-3、储结构体声明语句中使用getLstructMens获取list_pars中的第三个元素。
S3-2-4、函数调用和创建类对象语句中使用getLfcpars获取list_pars中的第四个元素。
S4、将S3中得到的结果,即符合S2中定义的中间语言参数列表,转化为符合Lolisa文法规则的Lolisa参数类型。使用Coq中的match方法,从前往后遍历中间语言参数列表中的每一个元素,同时将各元素转化为符合Lolisa类型格式的参数,且将他们整合为Lolisa中的参数列表。list2pars,list2cppars,list2structMens,list2finitpars,list2fcallps,list2callps方法用于相应元素和列表的转换。
S4-1、list2pars用于将list_pars中list(prod nat type)类型的参数列表转化为Lolisa中的pars参数列表。
S4-2、list2cppars用于将list_pars中list(prod nat type)类型的参数列表转化为Lolisa中的capture_pars参数列表。
S4-3、list2structMens用于将list_pars中list(prod type str_name)类型的参数列表转化为Lolisa中的struct_mem参数列表。
S4-4、list2finitpars用于将list_pars中list(prod3 type(option nat)(option finitpar_type))类型的参数列表转化为Lolisa中的fun_init_pars参数列表。
S4-5、list2fcallps用于将list_pars中list(finitpar_type)类型的参数列表转化为Lolisa中的fcall_pars参数列表。
S4-6、list2callps用于将list_pars中list(finitpar_type)类型的参数列表转化为Lolisa中的call_pars参数列表。
上述形式化方法中的pars、capture_pars、struct_mem、fun_init_pars、fcall_pars、call_pars为规约化语言Lolisa中参数列表类型。
本发明包括新类型和新结构的定义,以及新类型的转化方法。本方法基于Lolisa规约化语言,首先,将应用程序转化为中间语言程序,中间语言将简化形式化语言的语法,然后根据中间语言和底层的Lolisa语言的转换关系,将中间语言程序转化为Lolisa编写的形式化程序。本方法能简化形式化语言的数据类型和文法规则,提高形式化验证方法的用户友好度。
本方法定义新的类型finitpar_type,将Lolisa中各种参数类型统一形式化为Type类型,从而简化形式化语言的文法。
本方法定义新的类型list_pars,将Lolisa中各种参数列表类型整合为list类型,从而简化形式化语言的文法。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (7)
1.一种基于中间语言的形式化规约语言简化方法,其特征在于,将应用程序转化为中间语言程序,然后将中间语言程序映射为Lolisa语言程序;所述中间语言程序包括类型finitpar_type和结构list_pars,采用类型finitpar_type将参数形式化为Type类型,采用结构list_pars将形式化参数列表整合为list类型。
2.根据权利要求1所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,主要包括以下步骤:
步骤S1:使用新类型finitpar_type整合用于构建参数列表的Lolisa表达式,形式化源码中的参数;
步骤S2:将形式化参数组织为统一的list类型的形式化参数列表,将源码中的参数列表转化为list_pars的四元组,list_pars的元素用于存储不同类型的形式化参数列表;
步骤S3:在语句中嵌入相对应的取元素操作,实现取出list_pars中元素的功能;
步骤S4:将步骤S3中得到的中间语言参数列表转化为符合Lolisa文法规则的Lolisa参数类型,使用Coq中的match方法从前往后遍历中间语言参数列表中的每一个元素,同时将各元素转化为符合Lolisa类型格式的参数,并整合到Lolisa中的参数列表。
3.根据权利要求2所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,所述步骤S1中采用构造子pEop、pStruct、pEfun、pEvar、pEauto、pEonst分别依次形式化运算操作、结构体声中的成员变量、作为实参或者默认参数的函数、变量、auto类型变量、常量。
4.根据权利要求2所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,所述步骤S2主要包括以下步骤:
步骤S2-1:四元组list_pars第一个元素类型为list(prod nat type),用于存储函数声明的函数参数列表或者lambda声明所需要的变量捕捉列表;
步骤S2-2:四元组list_pars第二个元素类型为list(prod3 type(option nat)(option finitpar_type)),用于存储函数声明或函数定义所需要的参数列表;
步骤S2-3:四元组list_pars第三个元素类型为list(prod type str_name),用于存储结构体定义中的的成员变量声明列表;
步骤S2-4:四元组list_pars第四个元素类型为list(finitpar_type),用于存储函数调用所需要的参数列表或者创建类对象所需要的参数列表。
5.根据权利要求4所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,所述步骤S3主要包括以下步骤:
步骤S3-1:定义相应的取list_pars中元素的操作:getLpars、getLfinitpars、getLstructMens、getLfcpars,返回参数列表;
步骤S3-2:将取操作嵌入到相应的Lolisa语句层文法中。
6.根据权利要求5所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,所述步骤S3-2主要包括以下步骤:
步骤S3-2-1:函数声明和lambda声明语句中使用getLpars获取list_pars中的第一个元素;
步骤S3-2-2:函数声明和函数定义语句中使用getLfinitpars获取list_pars中的第二个元素;
步骤S3-2-3:储结构体声明语句中使用getLstructMens获取list_pars中的第三个元素;
步骤S3-2-4:函数调用和创建类对象语句中使用getLfcpars获取list_pars中的第四个元素。
7.根据权利要求4所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,所述步骤S4主要包括以下步骤:
步骤S4-1:采用list2pars将list_pars中list(prod nat type)类型的参数列表转化为Lolisa中的pars参数列表;
步骤S4-2:采用list2cppars将list_pars中list(prod nat type)类型的参数列表转化为Lolisa中的capture_pars参数列表;
步骤S4-3:采用list2structMens将list_pars中list(prod type str_name)类型的参数列表转化为Lolisa中的struct_mem参数列表;
步骤S4-4:采用list2finitpars将list_pars中list(prod3 type(option nat)(option finitpar_type))类型的参数列表转化为Lolisa中的fun_init_pars参数列表;
步骤S4-5:采用list2fcallps将list_pars中list(finitpar_type)类型的参数列表转化为Lolisa中的fcall_pars参数列表;
步骤S4-6:采用list2callps将list_pars中list(finitpar_type)类型的参数列表转化为Lolisa中的call_pars参数列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911328421.6A CN111124485B (zh) | 2019-12-20 | 2019-12-20 | 一种基于中间语言的形式化规约语言简化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911328421.6A CN111124485B (zh) | 2019-12-20 | 2019-12-20 | 一种基于中间语言的形式化规约语言简化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124485A true CN111124485A (zh) | 2020-05-08 |
CN111124485B CN111124485B (zh) | 2023-03-10 |
Family
ID=70500836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911328421.6A Active CN111124485B (zh) | 2019-12-20 | 2019-12-20 | 一种基于中间语言的形式化规约语言简化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124485B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN301838176S (zh) * | 2011-08-04 | 2012-02-15 | 河南卡特尔生物医药有限公司 | 药品包装盒(洛丽莎) |
CN102811257A (zh) * | 2012-07-27 | 2012-12-05 | 南京邮电大学 | 一种网络服务自动发布和组合方法 |
US20170124497A1 (en) * | 2015-10-28 | 2017-05-04 | Fractal Industries, Inc. | System for automated capture and analysis of business information for reliable business venture outcome prediction |
CN108037913A (zh) * | 2017-12-21 | 2018-05-15 | 西安邮电大学 | 一种xUML4MC模型到MSVL语言程序的转换方法、计算机程序 |
CN108459860A (zh) * | 2018-03-28 | 2018-08-28 | 成都链安科技有限公司 | 区块链智能合约形式化验证代码转换器及转换方法 |
CN109143953A (zh) * | 2018-06-26 | 2019-01-04 | 华东师范大学 | 一种基于中间语言的plc程序验证方法 |
CN109375899A (zh) * | 2018-09-25 | 2019-02-22 | 杭州趣链科技有限公司 | 一种形式验证Solidity智能合约的方法 |
CN109947644A (zh) * | 2019-03-07 | 2019-06-28 | 中南民族大学 | 基于模型抽取的安全协议javascript语言实施的分析方法及装置 |
-
2019
- 2019-12-20 CN CN201911328421.6A patent/CN111124485B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN301838176S (zh) * | 2011-08-04 | 2012-02-15 | 河南卡特尔生物医药有限公司 | 药品包装盒(洛丽莎) |
CN102811257A (zh) * | 2012-07-27 | 2012-12-05 | 南京邮电大学 | 一种网络服务自动发布和组合方法 |
US20170124497A1 (en) * | 2015-10-28 | 2017-05-04 | Fractal Industries, Inc. | System for automated capture and analysis of business information for reliable business venture outcome prediction |
CN108037913A (zh) * | 2017-12-21 | 2018-05-15 | 西安邮电大学 | 一种xUML4MC模型到MSVL语言程序的转换方法、计算机程序 |
CN108459860A (zh) * | 2018-03-28 | 2018-08-28 | 成都链安科技有限公司 | 区块链智能合约形式化验证代码转换器及转换方法 |
CN109143953A (zh) * | 2018-06-26 | 2019-01-04 | 华东师范大学 | 一种基于中间语言的plc程序验证方法 |
CN109375899A (zh) * | 2018-09-25 | 2019-02-22 | 杭州趣链科技有限公司 | 一种形式验证Solidity智能合约的方法 |
CN109947644A (zh) * | 2019-03-07 | 2019-06-28 | 中南民族大学 | 基于模型抽取的安全协议javascript语言实施的分析方法及装置 |
Non-Patent Citations (2)
Title |
---|
YANG Z 等: "Optimization of executable formal interpreters developed in higher-order logic theorem proving systems", 《IEEE ACCESS》 * |
刘才兴 等: "面向实现的协议形式化描述语言", 《计算机工程与应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111124485B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3745256B1 (en) | External code integrations within a computing environment | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
US8429627B2 (en) | Asynchronous preemptive edit time semantic analysis of a graphical program | |
Cabral et al. | Formal specification generation from requirement documents | |
CN107704382B (zh) | 面向Python的函数调用路径生成方法和系统 | |
CN111309292B (zh) | 一种基于MATLAB/Simulink的全模型可执行程序构建方法 | |
CN103019928A (zh) | 一种自动化测试方法和系统 | |
CN103942086A (zh) | 基于aadl的创建、分析和仿真混成系统模型的方法 | |
Freitas et al. | Automatic translation from Circus to Java | |
Garis et al. | Translating Alloy specifications to UML class diagrams annotated with OCL | |
CN111124485B (zh) | 一种基于中间语言的形式化规约语言简化方法 | |
Wu et al. | Unit testing for domain-specific languages | |
CN109271237B (zh) | 仿真控制方法和装置 | |
Bartels et al. | Formal modeling and verification of low-level software programs | |
Aarssen et al. | Concrete syntax with black box parsers | |
Adam et al. | Retrofitting Type-safe Interfaces into Template-based Code Generators. | |
Sarstedt et al. | A New Approach to Combine Models and Code in Model Driven Development. | |
CN107656731A (zh) | 一种Matlab模型的一键编译方法 | |
George et al. | Programming language inter-conversion | |
Laarman | Achieving QVTO & ATL Interoperability: An Experience Report on the Realization of a QVTO to ATL Compiler | |
Bartels et al. | Model transformations to mitigate the semantic gap in embedded systems verification | |
Longuet et al. | Towards a Tool for Featherweight OCL: A Case Study On Semantic Reflection. | |
CN115599357A (zh) | 基于图元的编程语言转换方法及装置 | |
CN117055872A (zh) | 一种从遗留系统代码提取高级uml模型的方法、系统和装置 | |
Bertolotti | * PILER: NOT A VM TO RULE NO ONE |
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 |