安全C语言的设计与实现
摘要 | 第1-6页 |
ABSTRACT | 第6-12页 |
第一章 绪论 | 第12-20页 |
·研究背景 | 第12-14页 |
·软件安全问题 | 第12-13页 |
·形式化验证 | 第13-14页 |
·规范语言 | 第14页 |
·本文概述 | 第14-20页 |
·课题组当前研究 | 第14-15页 |
·本文研究 | 第15页 |
·本文贡献 | 第15-16页 |
·相关研究工作 | 第16-18页 |
·章节安排 | 第18-20页 |
第二章 验证系统介绍 | 第20-28页 |
·程序验证 | 第20-21页 |
·Hoare逻辑 | 第20页 |
·形状图理论 | 第20-21页 |
·验证条件生成 | 第21页 |
·Clang简介 | 第21-24页 |
·抽象语法树 | 第23-24页 |
·验证系统框架介绍 | 第24-26页 |
·本章小结 | 第26-28页 |
第三章 安全C语言设计 | 第28-38页 |
·C语言的安全性问题 | 第28-31页 |
·安全编程语言的定义 | 第28-29页 |
·从别名角度考虑C语言安全性问题 | 第29页 |
·从别名角度设计安全C语言 | 第29-31页 |
·安全C语言的详细设计 | 第31-35页 |
·对程序的约束 | 第31-35页 |
·安全C语言约束的实现 | 第35-37页 |
·本章小结 | 第37-38页 |
第四章 SCSL设计与实现 | 第38-76页 |
·词法规则 | 第38-39页 |
·逻辑表达式 | 第39-49页 |
·算符优先级 | 第41-42页 |
·语义 | 第42页 |
·定型 | 第42-43页 |
·整数算术和机器算术 | 第43页 |
·实数和浮点数 | 第43-45页 |
·数组和指针 | 第45-46页 |
·结构体、共用体和数组 | 第46页 |
·字符串 | 第46-47页 |
·逻辑表达式的实现 | 第47-49页 |
·函数协议 | 第49-55页 |
·内建构造\result和\old | 第49-50页 |
·简化的函数协议 | 第50-51页 |
·带命名行为的函数协议 | 第51-52页 |
·异常终止 | 第52页 |
·多协议和缺省协议 | 第52-53页 |
·main函数的前断言 | 第53-54页 |
·函数协议实现 | 第54-55页 |
·语句标注 | 第55-59页 |
·程序点断言 | 第55-56页 |
·循环标注 | 第56-57页 |
·语句标注的实现 | 第57-59页 |
·循环语句和递归函数的终止 | 第59-60页 |
·循环度量 | 第59-60页 |
·递归函数调用 | 第60页 |
·不终止的函数 | 第60页 |
·全局逻辑定义和声明 | 第60-64页 |
·逻辑定义和声明的作用域 | 第61页 |
·逻辑常量和逻辑变量 | 第61-62页 |
·谓词定义和函数定义 | 第62-63页 |
·引理定义 | 第63页 |
·高阶逻辑构造 | 第63-64页 |
·全局逻辑定义的实现 | 第64页 |
·数据不变式 | 第64-66页 |
·类型不变式 | 第64-66页 |
·变量不变式 | 第66页 |
·数据不变式的实现 | 第66页 |
·形状系统 | 第66-70页 |
·单态基本形状 | 第67-68页 |
·多态基本形状 | 第68页 |
·其他复杂形状 | 第68页 |
·形状推断与形状检查 | 第68-69页 |
·形状系统实现 | 第69-70页 |
·幽灵变量和幽灵语句 | 第70-74页 |
·幽灵代码的语法 | 第71-72页 |
·对幽灵代码的限制 | 第72页 |
·幽灵变量和逻辑变量的区别 | 第72-73页 |
·幽灵变量和幽灵语句的实现 | 第73-74页 |
·本章小结 | 第74-76页 |
第五章 实例分析 | 第76-82页 |
·实例分析 | 第76-80页 |
·矩阵相乘 | 第76-78页 |
·对规范语言的分析 | 第78-79页 |
·矩阵相乘的安全性验证 | 第79-80页 |
·本章小结 | 第80-82页 |
第六章 总结 | 第82-84页 |
·本文总结 | 第82页 |
·进一步研究工作 | 第82-84页 |
参考文献 | 第84-86页 |
致谢 | 第86-88页 |
在读期间发表的学术论文与取得的其他研究成果 | 第88页 |