5、内存模型验证与并发程序编译器合成的进展

内存模型验证与并发程序编译器合成的进展

在软件开发领域,程序验证和编译器设计是至关重要的环节。本文将探讨内存模型验证的自动化以及并发程序编译器合成的相关内容。

内存模型验证

在内存模型验证方面,我们关注到在Why3环境下对Leroy和Blazy的内存模型进行验证的相关工作。以下是不同模块中引理自动证明的情况:
| 模块 | 引理总数 | 自动证明数量(比例) |
| — | — | — |
| Gen Mem Facts | 7 | 7 (100%) |
| Ref Gen Mem Facts | 12 | 12 (100%) |
| Concrete Mem | 61 | 58 (95%) |
| Rel Mem | 16 | 14 (87.5%) |
| Mem Extends | 7 | 7 (100%) |
| Mem Lessdef | 6 | 6 (100%) |
| Mem Inject | 15 | 11 (73.3%) |
| 总计 | 124 | 115 (92.7%) |

这115个验证条件(VC)大约对应Coq证明脚本的870行,占整个Coq证明脚本总行数的89.6%。与Coq相比,Why3在定理证明器验证证明时所需的转换数量显著减少,仅为117次,而Coq需要220次。

此外,还实现了内存模型的OCaml实现的代码提取。Leroy和Blazy的实现中使用了一些未定义的函数,例如 enough free memory alignof 。为了提取OCaml代码,需要对涉及这些函

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值