论文部分内容阅读
基于模型的诊断(Model-BasedDiagnosis,MBD)是人工智能领域近年发展起来的一个十分活跃的研究分支。其主要思想是根据系统的逻辑模型以及系统的输入推导出系统在正常情况下预期的行为,如果系统的实际行为与预期行为有差别,就说明系统存在故障,利用逻辑的推理理论,人们能够确定引发故障的元件集合。基于模型诊断最早应用于物理设备元件的错误检测上,近年来一些人工智能专家把基于模型诊断的思想应用于软件程序的调试,并取得了一定的成果。
本文的主要工作是把基于模型诊断原理应用于汇编语言程序的错误检测上。我们根据汇编语言的特点抽象出汇编程序运行环境及动态指令等概念,在这基础上利用汇编指令、环境单元之间的数据与控制依赖关系得出求汇编程序动态分片的两种方法:基于指令依赖和基于单元依赖的动态分片算法。由于动态分片和冲突集具有等价性[35],我们利用基于模型诊断的思想,结合动态分片技术,提出一个完整的汇编程序诊断模型,并依据该模型开发出实验性的《8086汇编程序诊断系统》。通过大量具体例子的测试,该系统能够成功定位汇编源程序中含有逻辑错误的语句,证明了我们提出的汇编程序诊断模型的正确性,在基于模型诊断理论的应用上迈出了一步。