首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 250 毫秒
1.
罗钢  陈俊亮 《计算机学报》1991,14(11):838-844
Prolog逻辑程序设计语言具有不同于传统程序设计语言的特点.本文根据测试Prolog程序的实践,提出了一系列为Prolog程序生成测试用例的准则.按这些准则测试实际程序效果良好.这是在逻辑程序测试新领域迈出的一步.  相似文献   

2.
Godel语言是在Prolog语亩基础上发展而来的一种新型逻辑程序设计语言,而控制机制是逻辑程序设计语言的核心内容.针对Prolog语言控制机制存在的问题,引出了Godel语言中新的控制机制,包括DELAY延迟机制和剪枝操作然后通过实例分析,表明了这些新机制能有效地避免递归谓词的低效或无限循环调用,并能够实现子目标的协同执行,从而提高系统的运行效率.针对这一有效改进,在对Godel语言控制机制比较深入研究的基础上,最后给出了Godel语言控制机制的实现算法.该算法已在研发的Godel语言编译系统中得以实现,通过实例测试,验证了算法具有较高的效率.  相似文献   

3.
将基于调用模式语义和正确调用模式语义的程序分析技术应用于Prolog程序的CPM测试。通过调用模式分析获得内部过程被调用和成功调用的条件,利用前者删除不满足调用条件的测试帧,或当删除条件不满足时利用该条件更新测试规格中过程属性的划分准则;利用后者预测CPM测试的结果。该方法可较好地保持程序测试的质量,改善Prolog程序的CPM测试过程。  相似文献   

4.
针对目前构建专家系统开发环境的局限性造成开发周期长的问题,提出了利用传统语言调用逻辑程序设计语言的动态链接库构建专家系统的方法,通过两类语言优势互补,实现高效开发专家系统。详细论述了Visual Prolog 6.3动态链接库的生成过程、调用方式、调用约定以及编码转换,并介绍了利用VB.net如何调用Visual Prolog 6.3生成的动态链接库构建专家系统。通过实例验证了该方法的可行性,并具有良好的应用前景。  相似文献   

5.
部分计算是一种重要的程序变换方法和编译优化技术,Prolog程序特别适合于部分计算。目前,国际上已开始了几个Prolog程序部分计算的原理模型和专用工具,但其中存在以下若于问题:(1)关于Prolog程序部分计算的基本原理和特征缺乏系统的认识;(2)现有的两种检测逻辑程序中循环的方法,并没有最后解决部分计算的终止性问题》;(3)关于Prolog中内部谓词的处理不够究善,而且其中还隐含了许多语叉错误;(4)部分计算算法相当低效;(5)现有的部分计算器局限于各自的应用领域,缺乏通用性。本文结合我们研制GKD-Prolog编译系统[14]剖中一个实用源级部分计算器的工作实践,全面、系统地讨论了纯Prolog的部分计算、逻辑程序的循环检测以及全Prolog的内部谓词处理。  相似文献   

6.
王雷  侯广德 《软件学报》1995,6(Z1):86-93
本文首先对Prolog程序中的错误进行了系统的分类,并对各类错误提出了相应的测试算法.接着介绍了一个面向对象的Prolog程序测试工具的设计与实现.  相似文献   

7.
针对目前构建专家系统开发环境的局限性造成开发周期长的问题,提出了利用传统语言调用逻辑程序设计语言的动态链接库构建专家系统的方法,通过两类语言优势互补,实现高效开发专家系统。详细论述了Visual Prolog6.3动态链接库的生成过程、调用方式、调用约定以及编码转换,并介绍了利用VB.net如何调用Visual Prolog6.3生成的动态链接库构建专家系统。通过实例验证了该方法的可行性,并具有良好的应用前景。  相似文献   

8.
谓词抽象是解决软件模型检查中状态空间爆炸的最有效方法之一,针对Java语言面向对象的特性,描述了一种对Java程序语言中间形式的谓词抽象算法,该算法将Java程序抽象成为布尔程序,抽象过程中处理的Java数据结构包括:赋值语句、条件语句、类对象引用、成员方法和方法调用等.用一个Java程序实例说明了该算法的抽象过程和结果.  相似文献   

9.
本文论述一个在Transputer环境上设计并实现的一阶谓词逻辑程序解释器IFLP,着重讨论了其核心词法分析部分与合一回溯算法部分的实现机制,并给出相庆的运行实例。IFLP具有程序动态跟踪功能,能够随时指示问题求解过程中的逻辑推理步骤和解题轨迹,有助于用户了解程序的动态行为和调试复杂的逻辑程序。  相似文献   

10.
基于抽象解释的Prolog程序验证技术研究   总被引:1,自引:0,他引:1  
作为一种通用的语义近似理论,抽象解释已广泛应用于各类程序的形式化验证中.现有基于抽象解释的逻辑程序验证技术未涉及与程序点相关联的程序性质的验证,设计能够描述此类性质的逻辑程序具体语义和抽象语义是构造相应验证工具的关键.本文给出了一种基于抽象解释的Prolog程序验证方法,该方法采用了具有路径信息的Prolog语义及其抽象作为语义基础,因而可用于验证与程序点相关联的程序特性.本文例子表明了该验证方法的有效性.  相似文献   

11.
给出了一种分析C++程序的切片算法。对于一个给定的C++程序,应用此算法可以除去与程序执行无关的数据成员,成员函数、类及继承关系,从而为大而复杂的面向对象软件的调试、测试、分析、理解和修改过程提供了一种切实可行的方法。  相似文献   

12.
Carver  R.H. Tai  K.-C. 《Software, IEEE》1991,8(2):66-74
Attention is given to the problems that arise during the testing and debugging cycle of concurrent programs because of their nondeterministic execution behavior, whereby multiple executions of a concurrent program with the same input may exercise different synchronization sequences and even produce different results. These problems are solved by using deterministic execution debugging and testing. The purpose of deterministic execution debugging to to replay executions of a concurrent program so that debugging information can be collected. Examples of semaphores and monitors are used to illustrate the approach and the process of designing replay tubes is described. The use of regression testing to see if earlier debugging and testing introduced new errors, is examined  相似文献   

13.
Reversible computation has a growing number of promising application areas such as the modelling of biochemical systems, program debugging and testing, and even programming languages for quantum computing. We formulate a procedure for converting operators of standard algebraic process calculi such as CCS into reversible operators, while preserving their operational semantics. We define forward–reverse bisimulation and show that it is preserved by all reversible operators.  相似文献   

14.
Sren Lauesen 《Software》1979,9(1):51-63
Debugging is efficient if it detects all program errors in a short time. This paper discusses several techniques for improving debugging efficiency. Attention is given both to the initial debugging and to acceptance testing in the maintenance stage. A main decision is whether to use top-down or bottom-up debugging, and it is suggested that top-down debugging is more efficient if combined with some of the other techniques. All the techniques shown are independent of any particular language or debug software.  相似文献   

15.
Debugging is one of the most time-consuming activities in program design. Work on automatic debugging has received a great deal of attention and there are a number of symposiums dedicated to this field. Automatic debugging is usually invoked when a test fails in one situation, but succeeds in another. For example, a test fails in one version of the program (or scheduler), but succeeds in another. Automatic debugging searches for the smallest difference that causes the failure. This is very useful when working to identify and fix the root cause of the bug.A new testing method instruments concurrent programs with schedule-modifying instructions to reveal concurrent bugs. This method is designed to increase the probability of concurrent bugs (such as races, deadlocks) appearing. This paper discusses integrating this new testing technology with automatic debugging. Instead of just showing that a bug exists, we can pinpoint its location by finding the minimal set of instrumentations that reveal the bug.In addition to explaining a methodology for this integration, we show an AspectJ-based implementation. We discuss the implementation in detail as it both demonstrates the advantage of the adaptability of open source tools and how our specific change can be used for other testing tools.  相似文献   

16.
一种回归测试后的错误定位方法   总被引:1,自引:0,他引:1  
测试和调试之间的关系是极端密切的。回归测试是软件测试和维护过程中的一个重要活动。在程序中找出错误是一个复杂的过程,它涉及到理解程序的用途、结构、语意和导致错误的测试的相关特征。本文提出了一种基于Chopping技术进行错误定位的方法。这种方法反复利用调试信息和回归测试结果,通过从程序中抽取出与特定的语句有关的、 、相对原来的程序小得多的语句集,实现准确、快速的错误定位。  相似文献   

17.
《Ergonomics》2012,55(11):1057-1091
Two experimental studies are described of the effect on performance of alternative program representations in different components of program debugging tasks. The use of diagrammatic notation provides useful information when the debugging task is mainly concerned with tracing execution flow in a program. In more complex tasks involving the identification of procedures commonly used under fault conditions, the use of flowcharts still increases the speed with which faults are identified, and reduces irrelevant testing, but does not reduce the incidence of errors likely to lead to inaccurate fault identification.  相似文献   

18.
M. C. Pong  N. Ng 《Software》1983,13(9):847-855
This paper describes an implementation of a system for programming using structured charts with interactive graphical support. It provides a graphical editor for the user to interactively build and edit programs using Nassi-Shneiderman diagrams (NSD)1 as the structured control constructs of logic flow. It can interpret a program in NSD chart form, and the execution sequence of the NSD is displayed at a graphical terminal. On-line debugging and testing facilities are available which allow the user to examine and modify the program under execution. The system has been designed with the aim of supporting the development, debugging, testing, documentation and maintenance of programs in the same environment.  相似文献   

19.
《Micro, IEEE》1986,6(3):34-42
This specialized hardware assists program debugging and testing and program performance evaluation. It is installed like any other peripheral device.  相似文献   

20.
Schneidewind  N.F. 《Computer》1977,10(4):47-53
Two particularly nagging ailments faced by the computer industry today are the high cost and late delivery of software.1,2The symptoms usually surface during software debugging, testing, and integration; but the ailments themselves can most often be traced back to the program design phase and the structural characteristics of the program. The significance of program structural characteristics has been recognized for some time, as witnessed by the emergence of structured programming,3,4,a methodology that sets out to (1) reduce programming errors; (2) design an understandable, readable, and therefore maintainable program; (3) increase our ability to detect errors; and (4) prove, if only informally, that the program is correct. But there is another tool available that has usually been overlooked in the software development process: simulation.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号