Results 1 - 10
of
11
KIDS: A Semi-Automatic Program Development System
- Client Resources on the Internet, IEEE Multimedia Systems ’99
, 1990
"... The Kestrel Interactive Development System (KIDS) provides automated sup- port for the development of correct and efficient programs from formal specifications. ..."
Abstract
-
Cited by 225 (16 self)
- Add to MetaCart
The Kestrel Interactive Development System (KIDS) provides automated sup- port for the development of correct and efficient programs from formal specifications.
KIDS - A Knowledge-Based Software Development System
- Automating Software Design
, 1990
"... The Kestrel Interactive Development System (KIDS) provides knowledge-based support for the derivation of correct and efficient programs from formal specifications. We trace the use of KIDS in deriving an algorithm for solving a problem arising from the design of sonar and radar signals. This derivat ..."
Abstract
-
Cited by 68 (5 self)
- Add to MetaCart
The Kestrel Interactive Development System (KIDS) provides knowledge-based support for the derivation of correct and efficient programs from formal specifications. We trace the use of KIDS in deriving an algorithm for solving a problem arising from the design of sonar and radar signals. This derivation illustrates algorithm design, a generalized form of deductive inference, program simplification, finite differencing optimization, partial evaluation, case analysis, and data type refinement. All of the KIDS operations are automatic except the algorithm design tactics which presently require some interaction. Dozens of programs have been derived using the KIDS environment and we believe that it could be developed to the point where it can be used for routine programming.
Experience with embedding hardware description languages in HOL
- Theorem Provers in Circuit Design
, 1992
"... Abstract The semantics of hardware description languages can be represented in higher order logic. This provides a formal definition that is suitable for machine processing. Experiments are in progress at Cambridge to see whether this method can be the basis of practical tools based on the HOL theor ..."
Abstract
-
Cited by 36 (4 self)
- Add to MetaCart
Abstract The semantics of hardware description languages can be represented in higher order logic. This provides a formal definition that is suitable for machine processing. Experiments are in progress at Cambridge to see whether this method can be the basis of practical tools based on the HOL theorem-proving assistant. Three languages are being investigated: ELLA, Silage and VHDL. The approaches taken for these languages are compared and current progress on building semantically-based theorem-proving tools is discussed.
Sharing of Computations
, 1993
"... This report is a revised version of my thesis of the same title, which was accepted for the Ph.D. degree in Computer Science at University of Aarhus, Denmark, in June 1993 ..."
Abstract
-
Cited by 14 (3 self)
- Add to MetaCart
This report is a revised version of my thesis of the same title, which was accepted for the Ph.D. degree in Computer Science at University of Aarhus, Denmark, in June 1993
Reusing Software Developments
- In Proceedings of the 4th ACM SIGSOFT Symposium on Software Development Environments
, 1990
"... Software development environments of the future will be characterized by extensive reuse of previous work. This paper addresses the issue of reusability in the context in which design is achieved by the transformational development of formal specifications into efficient implementations. It explores ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
Software development environments of the future will be characterized by extensive reuse of previous work. This paper addresses the issue of reusability in the context in which design is achieved by the transformational development of formal specifications into efficient implementations. It explores how an implementation of a modified specification can be realized by replaying the transformational derivation of the original and modifying it as required by changes made to the specification. Our approach is to structure derivations using the notion of tactics, and record derivation histories as an execution trace of the application of tactics. One key idea is that tactics are compositional: higher level tactics are constructed from more rudimentary using defined control primitives. This is similar to the approach used in LCF[12] and NuPRL[1, 8]. Given such a derivation history and a modified specification, the correspondence problem [21, 20] addresses how during replay a correspondence...
The Automated Transformation of Abstract Specifications of Numerical Algorithms into Efficient Array Processor Implementations
- Science of Computer Programming
, 1997
"... We present a set of program transformations which are applied automatically to convert abstract functional specifications of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, wh ..."
Abstract
-
Cited by 11 (4 self)
- Add to MetaCart
We present a set of program transformations which are applied automatically to convert abstract functional specifications of numerical algorithms into efficient implementations tailored to the AMT DAP array processor. The transformations are based upon a formal algebra of a functional array form, which provides a functional model of the array operations supported by the DAP programming language. The transformations are shown to be complete. We present specifications and derivations of two example algorithms: an algorithm for computing eigensystems and an algorithm for solving systems of linear equations. For the former, we compare the execution performance of the implementation derived by transformation with the performance of an independent, manually constructed implementation; the efficiency of the derived implementation matches that of the manually constructed implementation.
Models for Persistence in Lazy Functional Programming Systems
, 1993
"... Research into providing support for long term data in lazy functional programming systems is presented in this thesis. The motivation for this work has been to reap the benefits of integrating lazy functional programming languages and persistence. The benefits are . the programmer need not write cod ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Research into providing support for long term data in lazy functional programming systems is presented in this thesis. The motivation for this work has been to reap the benefits of integrating lazy functional programming languages and persistence. The benefits are . the programmer need not write code to support long term data since this is provided as part of the programming system . persistent data can be used in a type safe way since the programming language type system applies to data with the whole range of persistence . the benefits of lazy evaluation are extended to the full lifetime of a data value. Whilst data is reachable, any evaluation performed on the data persists. A data value changes monotonically from an unevaluated state towards a completely evaluated state over time. . interactive data intensive applications such as functional databases can be developed. These benefits are realised by the development of models for persistence in lazy functional programming systems. Tw...
Two Models For Integrating Persistence and Lazy Functional Languages
, 1991
"... A new programming system --- STAPLE (Statically Typed Applicative Persistent Language Environment) --- which integrates a lazy functional programming language and a persistent store is described. The motivation for introducing orthogonal persistence into a functional setting is given. Two models for ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
A new programming system --- STAPLE (Statically Typed Applicative Persistent Language Environment) --- which integrates a lazy functional programming language and a persistent store is described. The motivation for introducing orthogonal persistence into a functional setting is given. Two models for achieving this integration are then described together with a discussion of the way laziness interacts with persistence and the benefits resulting from this interaction. In the first model, a system of persistent modules allows the programmer to create persistent values by naming them in a module. In the second model, a combination of stream I/O and a dynamic type allows functional programs to manipulate values already in the persistent store and to allow dynamically created values to become persistent. 1 1 Introduction The integration of persistence and lazy functional programming languages promises to reduce the complexity and improve the efficiency of functional programs. In addition...
A Toolkit for Parallel Functional Programming
, 1995
"... this paper is on writing parallel programs, we will not say more about programming in Miranda. 5 Tools and annotations for parallelism ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
this paper is on writing parallel programs, we will not say more about programming in Miranda. 5 Tools and annotations for parallelism
The tailoring of abstract functional specifications of numerical algorithms for sparse data structures through automated program derivation and transformation
- The Computer Journal
, 1996
"... The automated application of program transformations is used to derive, from abstract functional specifications of numerical mathematical algorithms, highly efficient imperative implementations tailored for execution on sequential, vector and array processors. Emphasis is placed on transformations w ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The automated application of program transformations is used to derive, from abstract functional specifications of numerical mathematical algorithms, highly efficient imperative implementations tailored for execution on sequential, vector and array processors. Emphasis is placed on transformations which tailor implementations to use special programming techniques optimized for sparse matrices. We demonstrate that derived implementations attain superior execution performance than manual implementations for two significant algorithms. 1

