FVIL:基于形式验证虚拟机的中间语言
在软件开发中,形式验证对于确保软件的安全性至关重要,但实现起来却颇具难度。FVIL(Formal Verification Intermediate Language)作为一种中间语言,为解决这一难题提供了有效的途径。本文将深入探讨FVIL的相关概念、设计思路、实现方法以及实验结果。
1. FVIL概述
FVIL的生成过程基于用户需求,首先得到FVIL规范,然后根据FVIL与Lolisa之间的关系,将其转换为Lolisa规范,最终生成的形式化程序在FSPVM(Formal Specification Virtual Machine)上进行解释和执行。其具体过程如下:
graph LR
A[用户需求] --> B[FVIL规范]
B --> C[Lolisa规范]
C --> D[FSPVM解释执行]
其中,$S_{FVIL}$ 表示FVIL的语法集,用于生成FVIL规范;$S_{Lolisa}$ 表示Lolisa的语法集,用于生成Lolisa规范。由于FVIL和Lolisa之间存在严格的对应关系,因此FVIL规范的语义与Lolisa规范的语义相等。
FVIL的语法集由两部分组成:
- $S_{simplify}$:通过语法糖简化Lolisa的语法集 $S_{Lolisa}$ 得到。
- $S_{expand}$:为解决GADTs(Guarded Algebraic Data Types)导致的类型冗余问题,设计新类型对原有类型进行整合和简化得到。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



