Results 1  10
of
21
DDD: A System for Mechanized Digital Design Derivation
, 1997
"... Our research group at Indiana University is investigating a formalization of digital system design that is based on functional algebra. We have developed a transformation system called DDD to facilitate this study. DDD stands for digital design derivation; the system is used interactively to trans ..."
Abstract

Cited by 29 (10 self)
 Add to MetaCart
Our research group at Indiana University is investigating a formalization of digital system design that is based on functional algebra. We have developed a transformation system called DDD to facilitate this study. DDD stands for digital design derivation; the system is used interactively to translate higher level speci cations into hierarchical boolean systems, to which logic synthesis tools are then applied. In this paper, we take a detailed look at how the system is used. In two examples, we examine the sequence of intermediate expressions produced as an implementation is derived. We discuss how these expressions are used at strategic levels of thinking. We illustrate how the choice of target technology in uences the tactical course of derivation. Throughout, we try to give a sense of how functional abstractions are
A Reflective Functional Language for Hardware Design and Theorem Proving
"... This paper introduces reFLect, a functional programming language with reflection features intended for applications in hardware design and verification. The reFLect language is strongly typed and similar to ML, but has quotation and antiquotation constructs. These may be used to construct and decomp ..."
Abstract

Cited by 26 (6 self)
 Add to MetaCart
This paper introduces reFLect, a functional programming language with reflection features intended for applications in hardware design and verification. The reFLect language is strongly typed and similar to ML, but has quotation and antiquotation constructs. These may be used to construct and decompose expressions in the reFLect language itself. The paper motivates and presents the syntax and type system of this language, which brings together a new combination of patternmatching and reflection features targeted specifically at our application domain. It also gives an operational semantics based on a new use of contexts as expression constructors, and it presents a scheme for compiling reFLect programs into the λcalculus using the same context mechanism.
Embedded Languages for Describing and Verifying Hardware
, 2001
"... Abstract Lava is a system for designing, specifying, verifying and implementing hardware. It is embedded in the functional programming language Haskell, which means that hardware descriptions are firstclass objects in Haskell. We are thus able to use modern programming language features, such as hi ..."
Abstract

Cited by 23 (2 self)
 Add to MetaCart
Abstract Lava is a system for designing, specifying, verifying and implementing hardware. It is embedded in the functional programming language Haskell, which means that hardware descriptions are firstclass objects in Haskell. We are thus able to use modern programming language features, such as higherorder functions, polymorphism, type classes and laziness, in hardware descriptions. We present two rather different versions of Lava. One version realises the embedding by using monads to keep track of the information specified in a hardware description. The other version uses a new language construct, called observable sharing, which eliminates the need for monads so that descriptions are much cleaner. Adding observable sharing to Haskell is a nonconservative extension, meaning that some properties of Haskell are lost. We thus investigate to what extent we are still allowed to use a normal Haskell compiler or interpreter. We also introduce an embedded language for specifying properties. The use of this language is twofold. On the one hand, we can use it to specify and later formally verify properties of the described circuits. On the other hand, we can use it to specify and randomly test properties of normal Haskell programs. As a bonus, since hardware descriptions are embedded in Haskell, we can also use it to test our circuit descriptions.
DDDFM9001: Derivation of a Verified Microprocessor
, 1994
"... Derivation and verification represent alternate approaches to design. Derivation aims at deriving a "correct by construction" design while verification aims at constructing a post factum "proof of correctness" for a design. However, as researchers and engineers gain design experi ..."
Abstract

Cited by 22 (6 self)
 Add to MetaCart
Derivation and verification represent alternate approaches to design. Derivation aims at deriving a "correct by construction" design while verification aims at constructing a post factum "proof of correctness" for a design. However, as researchers and engineers gain design experience in a formal framework, both approaches are emerging as interdependent facets of design. The thesis of this work is that alternate forms of formal reasoning must be integrated if formal methods are to support the natural analytical and generative reasoning that takes place in engineering practice. As a vehicle for this research, the DDD digital design derivation system was implemented to study formal hardware design in an algebraic framework. DDD is a firstorder transformation system which mechanizes a basic design algebra for synthesizing digital circuit descriptions from highlevel functional specifications. The system is a collection of correctness preserving transformations that promote a topdown desig...
Relations and Refinement in Circuit Design
 Proc. BCS FACS Workshop on Refinement, Workshops in Computing
, 1991
"... A language of relations and combining forms is presented in which to describe both the behaviour of circuits and the specifications which they must meet. We illustrate a design method that starts by selecting representations for the values on which a circuit operates, and derive the circuit from the ..."
Abstract

Cited by 21 (1 self)
 Add to MetaCart
A language of relations and combining forms is presented in which to describe both the behaviour of circuits and the specifications which they must meet. We illustrate a design method that starts by selecting representations for the values on which a circuit operates, and derive the circuit from these representations by a process of refinement entirely within the language. Formal methods have always been used in circuit design. It would be unthinkable to attempt to design combinational circuits without using Boolean algebra. This means that circuit designers, unlike programmers, already use mathematical tools as a matter of course. It also means that we have a good basis on which to build higher level formal design methods. Encouraged by these observations, we have been investigating the application of formal program development techniques to circuit design. We view circuit design as the transformation of a program describing the required behaviour into an equivalent program that is s...
Between Functions and Relations in Calculating Programs
, 1992
"... This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made using Ruby. The first is that the notion of a program being an implementation of a specification has never been made precise. The second is to do with types. Fundamental to the use of type information in deriving programs is the idea of having types as special kinds of programs. In Ruby, types are partial equivalence relations (pers). Unfortunately, manipulating some formulae involving types has proved difficult within Ruby. In particular, the preconditions of the `induction' laws that are much used within program derivation often work out to be assertions about types; such assertions have typically been verified either by informal arguments or by using predicate calculus, rather than by ap...
Hardware Description with Recursion Equations
 In Proceedings of the IFIP 8th International Symposium on Computer Hardware Description Languages and their Applications
, 1987
"... this paper develops such a scheme, called "hardware description with recursion equations" (abbreviated HDRE and pronounced as hydra). A designer using HDRE may describe a circuit using a simple set of primitive functions written in an underlying general purpose programming language, and th ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
this paper develops such a scheme, called "hardware description with recursion equations" (abbreviated HDRE and pronounced as hydra). A designer using HDRE may describe a circuit using a simple set of primitive functions written in an underlying general purpose programming language, and the description itself is just a function written in that language. Executing a circuit description function provides its meaning  its semantic content.
The Implementation of a System Description Language and its Semantic Functions
, 1991
"... Contents 1 Introduction 9 1.1 Current system description languages . . . . . . . . . . . . . . . . . 9 1.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Interpretation of formal functions . . . . . . . . . . . . . . . . . . . . 11 1.4 Semantic functions . . . . . . ..."
Abstract

Cited by 7 (6 self)
 Add to MetaCart
Contents 1 Introduction 9 1.1 Current system description languages . . . . . . . . . . . . . . . . . 9 1.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Interpretation of formal functions . . . . . . . . . . . . . . . . . . . . 11 1.4 Semantic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5 System semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6 Adirectional systems . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7 Applications of system semantics . . . . . . . . . . . . . . . . . . . . 14 1.8 The ESPRIT project FORFUN . . . . . . . . . . . . . . . . . . . . . 14 1.9 The contents of this thesis . . . . . . . . . . . . . . . . . . . . . . . . 16 2 Mathematical background 17 2.1 Overview of mathematical notation used . . . . . . . . . . . . . . . . 18 2.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Formal language theory . . . . . . . . . . . . . . . . . . . . .
Derivation of Parallel Algorithms from Functional Specifications to CSP Processes
 Mathematics of Program Construction, LNCS947
, 1995
"... Abstract. A transformational programming approach is proposed as a means for developing a class of parallel algorithms from clear functional speci cations to e cientnetworks of communicating sequential processes (CSP). A foundation for the systematic re nement of functional speci cations into CSP pr ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
Abstract. A transformational programming approach is proposed as a means for developing a class of parallel algorithms from clear functional speci cations to e cientnetworks of communicating sequential processes (CSP). A foundation for the systematic re nement of functional speci cations into CSP processes is established. Techniques for exhibiting implicit parallelism in functional speci cation are developed. Their use is illustrated by deriving new e cient parallel algorithms to several problems. Derivation and reasoning are conducted in an equational style using the calculus for program synthesis developed by Bird and Meertens. 1
A functional HDL in reFLect
 Sixth International Workshop on Designing Correct Circuits: Vienna, 25–26 March 2006: Participants’ Proceedings. ETAPS 2006
, 2006
"... ..."