如何正式验证 "没有算术或其他异常"?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正式验证 "没有算术或其他异常"?相关的知识,希望对你有一定的参考价值。
seL4是一个经过正式验证的操作系统。在这个 pdf 上面写着 "无算术或其他例外情况"。如何验证呢?是否实现了对每一个有效的输入都进行了粗暴的强制?
这绝对不是粗暴强迫!
人们尝试了很多不同的技术来建立算术安全,但都取得了不同程度的成功。现在大多数计算机算术都已经完全形式化了,既包括IsabelleHOL、Coq、ACL2等形式化的定理证明器;也包括SMT求解等更自动化的技术。在这些系统中,你得到一个系统的模型(可以是手工写的,也可以是从实际的源代码中自动提取的),然后你要证明你的执行中没有遇到过流的路径。当然,这说起来容易,做起来难;但随着时间的推移,工具的支持也在稳步提高。
要想了解如何或多或少地自动检测算术溢出underflow,可以看看Nikolaj在SMT领域内的工作,这是一篇很棒的论文。https:/www.microsoft.comen-usresearchwp-contentuploads201602z3prefix.pdf 这里面的参考资料也可以作为一个很好的起点,按照这个思路去看其他的研究。
以上是关于如何正式验证 "没有算术或其他异常"?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript HERE-doc 或其他大型引用机制?
如何在没有用户身份验证的情况下从 Spotify 或任何其他 API 获取歌曲预览
mac上执行sed的编辑 -i命令报错sed: 1: "test.txt": undefined label ‘est.txt’或sed: 1: "2a est&qu