[发明专利]一种基于Coq的C++编译器变量作用域形式化方法有效
申请号: | 201911128077.6 | 申请日: | 2019-11-18 |
公开(公告)号: | CN110851141B | 公开(公告)日: | 2021-03-09 |
发明(设计)人: | 雷航;王自升;李昂;杨拯;钱伟中;唐琴;曾惟如;晏昃晖 | 申请(专利权)人: | 电子科技大学;成都互诚在线科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 成都君合集专利代理事务所(普通合伙) 51228 | 代理人: | 尹玉 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 coq c++ 编译器 变量 作用 形式化 方法 | ||
本发明公开了一种基于Coq的C++编译器变量作用域形式化方法,采用record数学模型形式化表结构,采用Inductive归纳定义形式化栈结构,采用match匹配形式化代码中引起分支的操作逻辑,采用Fixpoint递归函数形式化重复行为操作逻辑。现有技术中的FSPVM解释器在解释变量操作方法的时候,如果变量操作方法带有作用域特性,就会错误解释。采用本发明中的变量操作方法替代FSPVM解释器里的解释变量操作方法可以让新的FSPVM解释器能够解释带有作用域特性的代码。本发明使用了Record数学模型形式化字典数据结构,较使用Inductive归纳方法的传统形式化方式明显的提升了执行效率。
技术领域
本发明属于计算机应用的技术领域,具体涉及一种基于Coq的C++编译器变量作用域形式化方法。
背景技术
自区块链和虚拟币种市场诞生以来,各种安全问题层出不穷,由于各种安全问题导致的黑客攻击引起的损失也成文了行业内的关注重点。为了保证代码安全,业界提出了多种代码检测的方式。
但就EOS智能合约的形式化验证,现阶段还没有成熟的方案。出现这一现象主要是由于对工业级程序语义的形式化语义较为困难。形式语义与形式建模即为了对计算机系统的行为进行推理验证,需要对编程语言的语义进行严格的定义,使用形式模型对计算机系统的行为进行建模。
虽然当前有很多项目已经实现了对以太坊的智能合约的形式化验证,但是极少有对EOS智能合约的形式化验证。这主要是由于相较于由solidity编写的以太坊智能合约,由C++编写的EOS智能合约的语法和语义更为复杂。在形式化EOS智能合约时需要实现C++特有的语法特性形式化,其中C++变量作用域的形式化验证方案目前业界还未有成熟的解决方案。
发明内容
本发明公开了一种基于Coq的C++编译器变量作用域形式化方法,目的为解决Coq解释器无法将含有变量作用域特性的代码正确解释为虚拟内存指令序列的问题。
本发明主要通过以下技术方案实现:一种基于Coq的C++编译器变量作用域形式化方法,采用record数学模型形式化表结构,采用Inductive归纳定义形式化栈结构,采用match匹配形式化代码中引起分支的操作逻辑,采用Fixpoint递归函数形式化重复行为操作逻辑。
形式化验证:指从数学上完备地证明或验证程序的实现方案是否确实实现了程序设计所描述的功能。
形式化/形式化方法:本发明中指代将某一实体或行为或特性抽象成Coq中的可解释的数学模型。
FSPVM形式化验证引擎:指使用基于coq的形式化符号执行虚拟机[1](formalsymbolic process virtual machine ,FSPVM)验证智能合约安全性的解决方案。(Yang Z, Lei H . Formal Process Virtual Machine for Smart Contracts Verification[J].International Journal of Performability Engineering, 2018)。
编译器变量作用域特性:在编译器解释代码时,一个变量拥有其使用范围,超出使用范围的变量其读取/写入/创建等操作会受到限制。
Coq编译器:本发明中的Coq编译器指代基于Coq研发的针对C++进行解释的编译器。
如图1所示,FSPVM形式化验证系统可以分为:翻译器、Coq解释器、虚拟内存三个部分。其基本流程如下:
1、对于待验证的C++代码,翻译器将之翻译成可以被Coq解释器解释运行的中间语言FVIL编写成的代码。
2、对于由FVIL编写成的代码,Coq解释器将其解释为对虚拟内存指令组成的序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学;成都互诚在线科技有限公司,未经电子科技大学;成都互诚在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911128077.6/2.html,转载请声明来源钻瓜专利网。