共查询到20条相似文献,搜索用时 101 毫秒
1.
2.
随着多核多线程并行执行方式的普及,并行程序形式化验证的需求日显突出.并行程序验证中执行流程的不确定性使验证的内容与目标的关系难以确定,且从并行程序直接进行性质验证会导致验证规模大.为此,提出一种基于分离逻辑的新的验证方法.该方法根据分离逻辑的程序语义描述兼有解释语义和公理语义的特点,从验证的性质出发,把要验证的性质式转换成并行语句序列的逻辑组合式,并进行整理和化简;然后,利用分离逻辑公理系统对语句序列进行验证,用验证了的断言集来求出性质的真值.实例进一步说明,此方法更有效,同时也简化了验证的规模. 相似文献
3.
We have implemented Kima, an automated error correction system for concurrent logic programs. Kima corrects near-misses such as wrong variable occurrences in the absence of explicit declarations of program properties.Strong moding/typing and constraint-based analysis are turning out to play fundamental roles in debugging concurrent logic programs as well as in establishing the consistency of communication protocols and data types. Mode/type analysis of Moded Flat GHC is a constraint satisfaction problem with many simple mode/type constraints, and can be solved efficiently. We proposed a simple and efficient technique which, given a non-well-moded/typed program, diagnoses the reasons of inconsistency by finding minimal inconsistent subsets of mode/type constraints. Since each constraint keeps track of the symbol occurrence in the program, a minimal subset also tells possible sources of program errors.Kima realizes automated correction by replacing symbol occurrences around the possible sources and recalculating modes and types of the rewritten programs systematically. As long as bugs are near-misses, Kima proposes a rather small number of alternatives that include an intended program. Search space is kept small because the minimal subset confines possible sources of errors in advance. This paper presents the basic algorithm and various optimization techniques implemented in Kima, and then discusses its effectiveness based on quantitative experiments. 相似文献
4.
Abductive Analysis of Modular Logic Programs 总被引:1,自引:0,他引:1
5.
Lunjin Lu 《Higher-Order and Symbolic Computation》2003,16(4):341-377
This paper presents an abstract semantics that uses information about execution paths to improve precision of data flow analyses of logic programs. The abstract semantics is illustrated by abstracting execution paths using call strings of fixed length and the last transfer of control. Abstract domains that have been developed for logic program analyses can be used with the new abstract semantics without modification. 相似文献
6.
Typically, program design involves constructing a program P that implements a given specification S; that is, the set
${\overline P}$ of executions of P is a subset of the set
${\overline S}$ of executions satisfying S. In many cases, we seek a program P that not only implements S, but for which
${\overline P}$ =
${\overline S}$. Then, every execution satisfying the specification is a possible execution of the program; we then call P maximal for the specification S. We argue that maximality is an important criterion in the context of designing concurrent programs because it disallows
implementations that do not exhibit enough concurrency. In addition, a maximal solution can serve as a basis for deriving
a variety of implementations, each appropriate for execution on a specific computing platform. This paper also describes a
method for proving the maximality of a program with respect to a given specification. Even though we prove facts about possible
executions of programs, there is no need to appeal to branching time logics; we employ a fragment of linear temporal logic
for our proofs. The method results in concise proofs of maximality for several non-trivial examples. The method may also serve
as a guide in constructing maximal programs.
Received September 1997 / Accepted in revised form May 2000 相似文献
7.
并发Java程序动态分析及重演技术研究 总被引:2,自引:0,他引:2
Java语言在并发程序方面的广泛应用对软件测试提出了新的挑战。众所周知,由于并发程序的不确定性,使得并发程序的设计、开发、调试和测试都非常困难。文章介绍了Safepro/Java中的多线程测试技术,通过对Java源程序进行适当的修改并且保持语义不变,跟踪并发Java程序的运行过程,收集有关数据并对数据进行分析,最终控制并发Java程序的重演。 相似文献
8.
K. Mani Chandy 《Formal Aspects of Computing》1994,6(6):607-619
A program property is a predicate on programs. In this paper we explore program properties for safety, progress and parallel composition, of the form U ? V where U and V are either predicates on states of a program or program properties, and ? satisfies three rules that are also enjoyed by implication. We show how such properties can be used to reason about concurrent programs. Our motivation is to explore methods of reasoning based on a very small number of widely-known rules. 相似文献
9.
并发程序执行的一种粒度分析方法 总被引:1,自引:0,他引:1
张广泉 《计算机工程与应用》2000,36(5):54-56,65
文章讨论基于交替计算模式的并发程序执行行为的可信性问题。通过比较共享变量程序的交替计算与实际重叠执行,对并发程序的执行过程进行粒度分析──首先提出一种粒度细化、求精方法,限制单个原子转换包含的临界事件数目;继而引入一种限制临界引用(LCR)条件,进一步限制每一与语句相关的转换至多执行一次临界引用;对任一程序,通过转换算法将其转化为与之等价的LCR程序,且LR程序的交替计算结果与实际的重叠执行结果是一致的。 相似文献
10.
Brian J. Ross 《Applied Intelligence》1998,8(1):21-32
Process algebra are formal languages used for the rigorous specification and analysis of concurrent systems. By using a process algebra as the target language of a genetic programming system, the derivation of concurrent programs satisfying given problem specifications is possible. A genetic programming system based on Koza's model has been implemented. The target language used is Milner's CCS process algebra, and is chosen for its conciseness and simplicity. The genetic programming environment needs a few adaptations to the computational characteristics of concurrent programs. In particular, means for efficiently controlling the exponentially large computation spaces that are common with process algebra must be addressed. Experimental runs of the system successfully evolved a number of non–iterative CCS systems, hence proving the potential of evolutionary approaches to concurrent system development. 相似文献
11.
Lunjin Lu 《New Generation Computing》2011,29(4):409-444
An analysis is presented that infers polymorphic type dependencies in logic programs. Using set union as a type constructor
and non-deterministic type definitions, the analysis infers more precise information than previous type dependency inference
analyses. The analysis is an abstract interpretation based on the S-semantics and derives success patterns for each predicate
in the program. 相似文献
12.
We consider the problem of updating non-monotonic knowledgebases represented by epistemic logic programs where disjunctiveinformation and notions of knowledge and belief can be explicitlyexpressed. We propose a formulation for epistemic logic programupdate based on a principle called minimal change and maximalcoherence. The central feature of our approach is that duringan update or a sequence of updates, contradictory informationis removed on a basis of minimal change under the semanticsof epistemic logic programs and then coherent information ismaximally retained in the update result. Through various updatescenarios, we show that our approach provides both semanticand syntactic characterizations for an update problem. We alsoinvestigate essential semantic properties of epistemic logicprogram update. 相似文献
13.
14.
15.
Dino Pedreschi Salvatore Ruggieri 《Annals of Mathematics and Artificial Intelligence》2004,42(4):313-343
We introduce the notion of bounded nondeterminism for logic programs and queries. A program and a query have bounded nondeterminism if there are finitely many refutations for them via any selection rule. We offer a declarative characterization of the class of programs and queries that have bounded nondeterminism by defining bounded programs and queries. The characterization is provided in terms of Herbrand interpretations and level mappings, in the style of existing characterizations of universal termination. A direct application of the theoretical framework is concerned with the automatic generation of a terminating control. We present a transformational approach that given a bounded program and a bounded query yields a terminating program and query with the same set of refutations. Concerning the issue of automating the approach, by means of an example we sketch how an automatic method for proving left termination can be adapted to the purpose of inferring boundedness. Such an adaption reveals that the method does not scale up to medium/large sized programs due to scarce modularity of the required proof obligations. We provide then a modular refinement of boundedness for the significant class of well-moded programs and queries. 相似文献
16.
The paper presents a new approach to the problem of completeness of the SLDNF-resolution. We propose a different reference
theory that we call strict completion. This new concept of completion (comp*(P)) is based on a program transformation that given any program transforms it into a strict one (with the same computational
behaviour) and the usual notion of program completion. We consider it a reasonable reference theory to discuss program semantics
and completeness results. The standard 2-valued logic is used. The new comp*(P) is always consistent and the completeness of all allowed programs and goals w.r.t. comp*(P) is proved. 相似文献
17.
Transactional memory (TM) is a new promising concurrency-control mechanism that can avoid many of the pitfalls of the traditional lock-based techniques. TM systems handle data races between threads automatically so that programmers do not have to reason about the interaction of threads manually. TM provides a programming model that may make the development of multi-threaded programs easier. Much work has been done to explore the various implementation strategies of TM systems and to achieve better perfor... 相似文献
18.
19.
Graham Hughes Sreeranga P. Rajan Tom Sidle Keith Swenson 《Electronic Notes in Theoretical Computer Science》2006,144(3):45
Concurrency in multithreaded programs introduces additional complexity in software verification and testing, and thereby significantly increases the cost of Quality Assurance (QA). We present a case study in which a specialized model checker was used to discover concurrency errors in a large preexisting code base. The results revealed race conditions that lead to data corruption errors whose detection would have been prohibitively expensive with conventional testing and QA methods. We describe our methodology and highlight parts of the methodology that could be automated. 相似文献
20.
Logic Programs with Ordered Disjunction 总被引:1,自引:0,他引:1
Logic programs with ordered disjunction (LPODs) contain a new connective which allows representing alternative, ranked options for problem solutions in the heads of rules: A × B intuitively means that if possible A , but if A is not possible, then at least B . The semantics of logic programs with ordered disjunction is based on a preference relation on answer sets. We show how LPODs can be implemented using answer set solvers for normal programs. The implementation is based on a generator, which produces candidate answer sets and a tester which checks whether a given candidate is maximally preferred and produces a better candidate if it is not. We also discuss the complexity of reasoning tasks based on LPODs and possible applications. 相似文献