首页> 中文学位 >从Murphi到Ocaml语言的编译器及其在模型检测中的应用
【6h】

从Murphi到Ocaml语言的编译器及其在模型检测中的应用

代理获取

目录

声明

致谢

摘要

1.1 研究背景及研究现状

1.2 本文的主要工作

1.3 论文的组织结构

2 背景知识

2.1 模型检测

2.2 模型检测语言Murphi和nuSMV

2.2.1 Murphi语言

2.2.2 nuSMV语言

2.3 Ocaml语言简介

2.4 编译器原理及工具

2.4.1 实现一个编译器的基本过程

2.4.2 Lex简介

2.4.3 Yacc简介

2.5 本章小结

3 编译器前端实现

3.1 Murphi词法分析及Lex构造

3.1.1 词法分析器构造

3.1.2 符号表定义

3.2 Murphi语法分析及Yacc构造

3.2.1 Yacc.y文件格式定义

3.2.2 抽象语法树定义与构造

3.3 本章小结

4 编译器后端实现

4.1 Ocaml语义模型定义

4.2 具体转换函数

4.3 实验

4.4 本章小结

5 编译器在模型检测中的应用

5.1 Murphi与nuSMV的建模能力

5.2 nuSMV转换器实现

5.3 转换结果

5.4 本章小结

6 结论

6.1 总结

6.2 工作展望

参考文献

附录

作者简历

学位论文数据集

展开▼

摘要

随着计算机技术的迅速发展,软硬件系统正不断的向越来越多的领域渗透,这使得系统功能越来越强大,复杂度也越来越高,对系统可靠性和安全性提出了更高的要求。应用传统的软件测试的方法检测计算机系统的安全性和可靠性已经不能满足需要,模型检测技术也因此逐渐成为许多计算机科学家们研究的热点。模型检测采用形式化的验证方法,主要思想是首先将给定的系统和系统属性分别用有限状态模型描述出来,然后采用高效的搜索程序(模型检测器)来判断系统模型是否满足原先的设计要求。
  Murphi就是一种模型检测语言,其带参特性使得建模简单易维护,用于很多场景的验证,如协议验证、硬件验证等。但Murphi工具本身有一些缺陷,例如只能暴力搜索,缺乏精细控制等。因此针对同一个系统的模型检测,常常使用多种建模工具。例如符号模型检测语言nuSMV,可以进行可满足性检查和界限模糊检测,但nuSMV没有带参特性使得其所建模型随着状态空间增长变得异常庞大,人力无法胜任。
  本文提出了一种思路,基于Ocaml语言定义Murphi带参系统的语义模型,实现从Murphi到Ocaml语言的编译器;然后在此基础上基于Ocaml语言实现Ocaml定义的语义模型到nuSMV程序的转换,实现nuSMV的自动化建模。
  本文主要进行了以下工作:
  (1)针对Murphi程序描述的带参系统,建立带参系统的Ocaml自定义语义模型,为实现模型检测多个工具的自动建模与维护奠定基础。
  (2)实现从Murphi到Ocarnl语言的编译器,使用Lex和Yacc分别作为词法分析和语法分析工具,实现编译器前端;然后针对抽象语法树节点,建立一系列的转换子程序,打印输出目标语言,实现编译器后端。
  (3)使用编译器将Murphi程序翻译为Ocaml程序,翻译后的程序是使用Ocaml自定义的中间语言格式;在此基础上基于一定转换策略,使用Ocaml定义一系列转换子程序,实现Ocaml中间格式到nuSMV程序的转换。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号