Results 1  10
of
19
SHILPA: A HighLevel Synthesis System for SelfTimed Circuits
 In Proc. International Conf. ComputerAided Design (ICCAD
, 1992
"... SHILPA is system for the highlevel synthesis of selftimed circuits. It takes behavioral descriptions in a process+functional language called hopCP and produces a netlist for the Actel FPGA, supported by the VIE Wlogic tools. hopCP descriptions are initially translated into an intermediateform bas ..."
Abstract

Cited by 29 (3 self)
 Add to MetaCart
SHILPA is system for the highlevel synthesis of selftimed circuits. It takes behavioral descriptions in a process+functional language called hopCP and produces a netlist for the Actel FPGA, supported by the VIE Wlogic tools. hopCP descriptions are initially translated into an intermediateform based on hypergraphs called HFG. SHILPA then applies action refinement, which is a technique for transforming HFGs into asynchronous hardware by a series of graphbased transformation rules. Action refinement is characterized by incremental resource allocation and control decomposition. The major contributions of the proposed work are: (i) the source language hopCP which is equipped with shared variables, broadcast channels, and barrier synchronization, that are constructs well suited for systemlevel hardware specification; (ti) use of flow analysis techniques to optimize resource allocation, to implement guarded commands eficiently, and ensure that shared variables are used ‘safely ” (potentially concurrent reads and writes are detected); (iii) a selftimed macromodule libra y for Actel FPGA implementation. 1
Program verification
 Journal of Automated Reasoning
, 1985
"... Computer programs may be regarded as formal mathematical objects whose properties are subject to mathematical proof. Program verification is the use of formal, mathematical techniques to debug software and software specifications. 1. Code Verification How are the properties of computer programs prov ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
Computer programs may be regarded as formal mathematical objects whose properties are subject to mathematical proof. Program verification is the use of formal, mathematical techniques to debug software and software specifications. 1. Code Verification How are the properties of computer programs proved? We discuss three approaches in this article: inductive invariants, functional semantics, and explicit semantics. Because the first approach has received by far the most attention, it has produced the most impressive results to date. However, the field is now moving away from the inductive invariant approach. 1.1. Inductive Assertions The socalled FloydHoare inductive assertion method of program verification [25, 33] has its roots in the classic Goldstine and von Neumann reports [53] and handles the usual kind of programming language, of which FORTRAN is perhaps the best example. In this style of verification, the specifier "annotates " certain points in the program with mathematical assertions that are supposed to describe relations that hold between the program variables and the initial input values each time "control " reaches the annotated point. Among these assertions are some that characterize acceptable input and the desired output. By exploring all possible paths from one assertion to the next and analyzing the effects of intervening program statements it is possible to reduce the correctness of the program to the problem of proving certain derived formulas called verification conditions. Below we illustrate the idea with a simple program for computing the factorial of its integer input N flowchart assertion start with input(N) input N A: = 1 N = 0 yes stop with? answer A
Stable Map Theory
 Theoretical Computer Science
, 1996
"... Map theory (MT) is a foundation of mathematics which is based on calculus instead of logic and has at least the same expressive power as ZFC set theory. This paper presents "stable map theory" which is much easier to learn, teach and comprehend than "original map theory" from 1992. Pedagogical sim ..."
Abstract

Cited by 13 (7 self)
 Add to MetaCart
Map theory (MT) is a foundation of mathematics which is based on calculus instead of logic and has at least the same expressive power as ZFC set theory. This paper presents "stable map theory" which is much easier to learn, teach and comprehend than "original map theory" from 1992. Pedagogical simplicity is important since MT is a candidate for a common foundation of classical mathematics and computer science. MT has the benefit that it allows a complete integration of classical mathematics and computer science. As a particular example, the free mixing of quantification and general recursion has many applications. The long list of wellfoundedness axioms in the original version (which corresponds to the list of proper axioms of ZFC) has been replaced by a single definition of "classicality" in the stable version. Furthermore, the stable version has been enhanced by axioms of stability, minimality of fixed points and a particular kind of extensionality. The stability axiom represents ...
Termination Analysis for Partial Functions
 IN PROCEEDINGS OF THE THIRD INTERNATIONAL STATIC ANALYSIS SYMPOSIUM (SAS'96
, 1996
"... This paper deals with automated termination analysis for partial functional programs, i.e. for functional programs which do not terminate for each input. We present a method to determine their domains (resp. nontrivial subsets of their domains) automatically. More precisely, for each functional p ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
This paper deals with automated termination analysis for partial functional programs, i.e. for functional programs which do not terminate for each input. We present a method to determine their domains (resp. nontrivial subsets of their domains) automatically. More precisely, for each functional program a termination predicate algorithm is synthesized, which only returns true for inputs where the program is terminating. To ease subsequent reasoning about the generated termination predicates we also present a procedure for their simplification.
Termination analysis by inductive evaluation
 15TH INTERNATIONAL CONFERENCE ON AUTOMATED DEDUCTION
, 1998
"... We present a new approach for automatic termination analysis of functional programs. Several methods have been presented which try to find a wellfounded ordering such that the arguments in the recursive calls are smaller than the corresponding inputs. However, previously developed approaches for au ..."
Abstract

Cited by 10 (8 self)
 Add to MetaCart
We present a new approach for automatic termination analysis of functional programs. Several methods have been presented which try to find a wellfounded ordering such that the arguments in the recursive calls are smaller than the corresponding inputs. However, previously developed approaches for automated termination analysis often disregard the conditions under which the recursive calls are evaluated. Hence, the existing methods fail for an important class of algorithms where the necessary information for proving termination is `hidden ' in the conditions. In this paper we develop the inductive evaluation method which analyzes the auxiliary functions occurring in the conditions of the recursive calls. We also discuss an extension of our method to partial functions in order to determine their domains automatically. The proposed technique proved successful for termination analysis of numerous algorithms in functional as well as imperative programming languages.
Automatic Verification of Functions with Accumulating Parameters
, 1999
"... Proof by mathematical induction plays a crucial role in reasoning about functional programs. A generalization step often holds the key to discovering an inductive proof. We present a generalization technique which is particularly applicable when reasoning about functional programs involving accumula ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
Proof by mathematical induction plays a crucial role in reasoning about functional programs. A generalization step often holds the key to discovering an inductive proof. We present a generalization technique which is particularly applicable when reasoning about functional programs involving accumulating parameters. We provide empirical evidence for the success of our technique and show how it is contributing to the ongoing development of a parallelising compiler for Standard ML. 1 Introduction and Motivations Functional programs, by their very nature, are highly amenable to formal methods of reasoning. This has been exploited within the formal verification community where the majority of theorem proving based tools have a strong functional bias (Boyer & Moore, 1979; Boyer & Moore, 1988; Bundy et al., 1990; Owre et al., 1992; Kapur & Zhang, 1995; ORA, 1996; Hutter & Sengler, 1996; Kaufmann & Moore, 1997). Proof by mathematical induction plays a crucial role in reasoning about recursiv...
Termination analysis for functional programs
 AUTOMATED DEDUCTION  A BASIS FOR APPLICATIONS, VOL. III, APPLIED LOGIC SERIES 10
, 1998
"... Proving termination is a central problem in software development and formal methods for termination analysis are essential for program verification. However, since the halting problem is undecidable and totality of functions is not even semidecidable, there is no procedure to prove or disprove the ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
Proving termination is a central problem in software development and formal methods for termination analysis are essential for program verification. However, since the halting problem is undecidable and totality of functions is not even semidecidable, there is no procedure to prove or disprove the
Deterministic Concurrency
 In Proceedings of the 1993 Glasgow Workshop on Functional Programming
, 1993
"... Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of nondeterminism. ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of nondeterminism.
Automatic Termination Analysis for Partial Functions Using Polynomial Orderings
 In Proc. 4th SAS
, 1997
"... . We present a method for automatically determining the input data for which functional programs terminate. In particular, we consider functional programs which do not terminate for each input thus defining partial functions. To characterize the domains of such partial functions, termination predica ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
. We present a method for automatically determining the input data for which functional programs terminate. In particular, we consider functional programs which do not terminate for each input thus defining partial functions. To characterize the domains of such partial functions, termination predicates have been introduced recently. Termination predicates can be synthesized inductively if suitable wellfounded orderings are given. Up to now, these wellfounded orderings have to be fixed in advance by a user. In this paper, we enable the automatic generation of wellfounded polynomial orderings for termination predicate synthesis. We illustrate the problems that prevent the direct use of known techniques for that task, and we present solutions for overcoming these problems. The proposed method proved to be successful for numerous examples including functional as well as imperative programs. 1 Introduction Proving the termination of programs is a central problem in the development of co...