首页> 中文学位 >基于约束的Prolog语义及其在Prolog程序测试、分析及验证中的应用研究
【6h】

基于约束的Prolog语义及其在Prolog程序测试、分析及验证中的应用研究

代理获取

目录

文摘

英文文摘

声明

第一章结论

1.1逻辑程序设计语言与Prolog概述

1.2逻辑程序设计和Prolog研究现状

1.3基于约束的逻辑程序和Prolog程序语义

1.4主要存在的问题及本文研究内容

1.5本文的结构

第二章基础知识:Prolog语言和抽象解释理论

2.1格与不动点理论

2.2 Prolog基础知识

2.2.1逻辑程序中的SLD-推导树

2.2.2 Prolog逻辑程序设计

2.2.3 Prolog语言中的切断(cut)操作

2.3抽象解释

2.3.1利用Galois连接对不动点语义进行近似

2.3.2利用widening/narrowing操作的抽象解释

2.4结束语

第三章目标独立的Prolog程序路径依赖分析语义

3.1引言

3.2 Prolog程序文法

3.3操作语义

3.4标号树语义

3.5标号树语义相对于操作语义的正确性

3.6 D-标号树语义

3.7相关工作

3.8结束语

第四章基于D-标号树语义的Prolog程序路径依赖分析

4.1引言

4.2语义域的设计

4.3路径依赖部分解语义

4.4路径依赖部分解语义的正确性

4.5路径依赖部分解语义的抽象

4.5.1路径信息的抽象

4.5.2基本约束和可见性约束的抽象

4.5.3抽象路径依赖部分解语义

4.6相关工作

4.7结束语

第五章基于D-标号树语义的Prolog程序验证

5.1引言

5.2基于路径依赖部分解语义的程序验证

5.3基于抽象语义的程序的验证

5.4相关工作

5.5结束语

第六章D-标号树语义的抽象-D-树语义

6.1 Prolog程序文法

6.2 D-树语义

6.3 D-树语义与D-标号树语义的关系

6.4计算解语义

6.5调用模式语义

6.6结束语

第七章基于计算解语义的逻辑程序测试和调试框架

7.1引言

7.2逻辑程序测试和调试框架

7.3测试和调试框架的实例化

7.3.1测试用例的生成

7.3.2性质规格

7.3.3一种综合的测试和调试算法

7.4实例分析

7.5相关工作

7.6结束语

第八章基于调用模式语义的PROLOG程序测试

8.1引言

8.2测试用例的生成

8.3基于近似调用模式语义的测试用例生成

8.4相关工作

8.5结束语

第九章调用模式语义在Prolog程序CPM测试中的应用

9.1 引言

9.2 CPM测试

9.3基于调用模式语义的测试帧更新

9.3.1用基本约束表示测试帧

9.3.2测试帧的更新

9.3.3基于近似调用模式语义的测试帧更新

9.3.4从更新后的测试帧产生测试用例

9.4相关工作

9.5结束语

第十章结论

致谢

参考文献

研究成果

附录

展开▼

摘要

以Prolog为代表的逻辑程序设计(LP)语言是一类重要的人工智能应用语言。其主要特点是问题描述和问题求解过程的分离。如何利用LP语言开发正确可靠的应用软件系统是逻辑程序设计研究的热点之一。本文以基于约束的Prolog形式语义和抽象解释理论为工具,对Prolog程序测试、调试、分析和验证过程中遇到的问题进行了探索和研究。课题得到了国家自然科学基金和广西科学基金的资助。论文主要研究结果包括: 1)针对现有Prolog语义在描述与程序点相关程序性质上的不足,给出了一种携带路径信息并允许cut操作的Prolog抽象语法,并基于此给出了一种Prolog操作语义、目标独立的标号树语义和D-标号树语义,证明了标号树语义和D-标号树语义相对于操作语义的正确性。 2)作为D-标号树语义的抽象,给出了一种独立于目标的Prolog路径依赖部分解语义。由该语义可计算任意目标的执行过程中在每一个程序点获得的部分解。利用现有的语义抽象技术该语义可以抽象为一个有限可计算的语义,从而可进行目标独立的Prolog程序分析。 3)把Prolog路径依赖部分解语义用于基于抽象解释的Prolog程序验证,给出了一种验证与Prolog程序点相关联程序性质的方法。本文例子表明了该验证方法的有效性。 4)给出了一种综合的逻辑程序测试和调试框架,基于该框架的逻辑程序测试和调试算法可减少对调试过程不必要的调用,从而提高软件开发的效率。在一种基于约束的Prolog计算解语义(该语义可视为D-标号树语义的抽象)的基础上,给出了该框架的一个实例,说明了该框架的应用。 5)以Prolog程序控制流图的隐式表示为基础,给出了一种基于调用模式语义的Prolog程序测试用例生成方法。所使用的调用模式语义可视为D-标号树语义的另一抽象。与由于显式控制流图规模庞大而不得不采用不完整控制流图的Prolog程序测试相比,隐式表示中包含完整的控制流信息,且允许测试人员通过适当的语义抽象灵活地适应测试的要求。 6)研究了调用模式语义在Prolog程序CPM(Category Partitioning Method)测试中的应用,给出了一种对CPM测试帧进行缩减和精化的新途径。与程序实现相关的知识被用于CPM测试帧的更新。相对于本文关心的程序错误的检测而言,该更新保持了传统CPM测试的有效性。为了说明本方法的有效性,给出了一种基于约束的近似调用模式语义,并举例演示了基于该语义的测试帧更新方法。

著录项

  • 作者

    赵岭忠;

  • 作者单位

    西安电子科技大学;

  • 授予单位 西安电子科技大学;
  • 学科 模式识别与智能系统
  • 授予学位 博士
  • 导师姓名 古天龙;
  • 年度 2007
  • 页码
  • 总页数
  • 原文格式 PDF
  • 正文语种 中文
  • 中图分类 TP311.11;
  • 关键词

    Prolog语义; 程序测试; 程序设计;

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号