CN111124485B - 一种基于中间语言的形式化规约语言简化方法 - Google Patents

一种基于中间语言的形式化规约语言简化方法 Download PDF

Info

Publication number
CN111124485B
CN111124485B CN201911328421.6A CN201911328421A CN111124485B CN 111124485 B CN111124485 B CN 111124485B CN 201911328421 A CN201911328421 A CN 201911328421A CN 111124485 B CN111124485 B CN 111124485B
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.)
Active
Application number
CN201911328421.6A
Other languages
English (en)
Other versions
CN111124485A (zh
Inventor
李昂
曾惟如
晏昃晖
杨拯
唐琴
钱伟中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Mutual Credit Online Technology Co ltd
University of Electronic Science and Technology of China
Original Assignee
Chengdu Mutual Credit Online Technology Co ltd
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Mutual Credit Online Technology Co ltd, University of Electronic Science and Technology of China filed Critical Chengdu Mutual Credit Online Technology Co ltd
Priority to CN201911328421.6A priority Critical patent/CN111124485B/zh
Publication of CN111124485A publication Critical patent/CN111124485A/zh
Application granted granted Critical
Publication of CN111124485B publication Critical patent/CN111124485B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code 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能够对程序自动形式化建模和验证(Yang Z,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:Formal syntax 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表达式,形式化源码中的参数。新类型定义如下:
Figure 588024DEST_PATH_IMAGE002
.构造子pEop、pStruct、pEfun、pEvar、pEauto、pEonst依次用来形式化运算操作、结构体声中的成员变量、作为实参或者默认参数的函数、变量、auto类型变量、常量。finitpar_type将各类参数整合为Type类型。
S2、将形式化参数组织为统一的list类型的形式化参数列表。将源码中的参数列表转化为list_pars的四元组,list_pars的元素用于存储不同类型的形式化参数列表。四元组中只需正确的填入一个元素,其他三个元素将被置为空。四元组的定义如下:
Figure 757362DEST_PATH_IMAGE004
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 (4)

1.一种基于中间语言的形式化规约语言简化方法,其特征在于,将应用程序转化为中间语言程序,然后将中间语言程序映射为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中的参数列表;
所述步骤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),用于存储函数调用所需要的参数列表或者创建类对象所需要的参数列表;
所述步骤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参数列表。
2.根据权利要求1所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,所述步骤S1中采用构造子pEop、pStruct、pEfun、pEvar、pEauto、pEonst分别依次形式化运算操作、结构体声中的成员变量、作为实参或者默认参数的函数、变量、auto类型变量、常量。
3.根据权利要求1所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,所述步骤S3主要包括以下步骤:
步骤S3-1:定义相应的取list_pars中元素的操作:getLpars、getLfinitpars、getLstructMens、getLfcpars,返回参数列表;
步骤S3-2:将取操作嵌入到相应的Lolisa语句层文法中。
4.根据权利要求3所述的一种基于中间语言的形式化规约语言简化方法,其特征在于,所述步骤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中的第四个元素。
CN201911328421.6A 2019-12-20 2019-12-20 一种基于中间语言的形式化规约语言简化方法 Active CN111124485B (zh)

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 CN111124485A (zh) 2020-05-08
CN111124485B true 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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN301838176S (zh) * 2011-08-04 2012-02-15 河南卡特尔生物医药有限公司 药品包装盒(洛丽莎)
CN102811257A (zh) * 2012-07-27 2012-12-05 南京邮电大学 一种网络服务自动发布和组合方法
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语言实施的分析方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN301838176S (zh) * 2011-08-04 2012-02-15 河南卡特尔生物医药有限公司 药品包装盒(洛丽莎)
CN102811257A (zh) * 2012-07-27 2012-12-05 南京邮电大学 一种网络服务自动发布和组合方法
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)

* Cited by examiner, † Cited by third party
Title
Optimization of executable formal interpreters developed in higher-order logic theorem proving systems;Yang Z 等;《IEEE Access》;20181111(第06期);70331-70348 *
面向实现的协议形式化描述语言;刘才兴 等;《计算机工程与应用》;20031031;第39卷(第19期);81-83,145 *

Also Published As

Publication number Publication date
CN111124485A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN110149800B (zh) 一种用于处理与源程序的源代码相关联的抽象语法树的装置
CN108920133B (zh) 跨语言编程方法、装置、电子设备及存储介质
EP3745256B1 (en) External code integrations within a computing environment
US8516458B2 (en) System representation and handling techniques
Mittal et al. DEVSML 2.0: The language and the stack
CN111309292B (zh) 一种基于MATLAB/Simulink的全模型可执行程序构建方法
CN100351785C (zh) 嵌入式系统的调试方法
CN103942086A (zh) 基于aadl的创建、分析和仿真混成系统模型的方法
CN110597498A (zh) AADL模型精化方法及其支持的Ada可执行代码自动生成方法
Garis et al. Translating Alloy specifications to UML class diagrams annotated with OCL
CN111124485B (zh) 一种基于中间语言的形式化规约语言简化方法
CN111176658B (zh) 基于元对象机制的AADL到Simulink模型自动转换方法
WO2009106843A2 (en) System representation and handling techniques
Karsai Structured specification of model interpreters
Luz et al. Executing UML Models
Adam et al. Retrofitting Type-safe Interfaces into Template-based Code Generators.
Horpácsi et al. Towards a generic framework for trustworthy program refactoring
Sarstedt et al. A New Approach to Combine Models and Code in Model Driven Development.
Blunk et al. Efficient Development of Domain-Specific Simulation Modelling Languages and Tools
Laarman Achieving QVTO & ATL Interoperability: An Experience Report on the Realization of a QVTO to ATL Compiler
Kashif et al. Model-based embedded software development flow
Rahimi et al. Architecture conformance checking of multi-language applications
Bartels et al. Model transformations to mitigate the semantic gap in embedded systems verification
Bertolotti * PILER: NOT A VM TO RULE NO ONE
Yu et al. The verification of rCOS using Spin

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