Results 1 -
5 of
5
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...
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 well-foundedness 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 ...
Compositional Logic Programming
- In Proceedings of the JICSLP'96 post-conference workshop: Multi-paradigm logic programming, Report 96-28. Technische Universitat
, 2000
"... Relational program derivation has gathered momentum over the last decade with the development of many specification logics. However, before such relational specifications can be executed in existing programming languages, they must be carefully phrased to respect the evaluation order of the langu ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Relational program derivation has gathered momentum over the last decade with the development of many specification logics. However, before such relational specifications can be executed in existing programming languages, they must be carefully phrased to respect the evaluation order of the language. In turn, this requirement inhibits the rapid prototyping of specifications in a relational notation. The aim of this thesis is to bridge the gap between the methodology and practice of relational program derivation by realising a compositional style of logic programming that permits specifications to be phrased naturally and executed declaratively.
Widening the Representation Bottleneck: A Functional Implementation of Relational Programming
- In Proc. Func. Prog
, 1993
"... Relational programming is a generalisation of functional programming that includes aspects of logic programming. We describe a relational language, Drusilla, that retains the lazy, polymorphic and higher-order aspects of functional languages and the flexible handling of non-determinism and search ba ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Relational programming is a generalisation of functional programming that includes aspects of logic programming. We describe a relational language, Drusilla, that retains the lazy, polymorphic and higher-order aspects of functional languages and the flexible handling of non-determinism and search based computation of logic languages. As a result it offers certain economy of expression not found in functional or logic programming. However a complex implementation, using a combination of polymorphic type inference and automatic program transformation to select appropriate representations, is needed to support this language. 1 Introduction At FPCA 1981 [14] and in subsequent papers, [15, 16, 17], MacLennan introduced relational programming --- a programming paradigm with a number of novel features: ffl entire relations are manipulated as data; ffl program definitions are represented as relations; ffl a set of relational operators (themselves relations), are available for manipulating...
Extended static checking by strategic rewriting of pointfree relational expressions
, 2007
"... Abstract. Binary relational algebra provides semantic foundations for major areas of computing, such as database design, state-based specification, and functional programming. Remarkably, static checking support in these areas fails to exploit the full semantic content of relations. In particular, p ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Abstract. Binary relational algebra provides semantic foundations for major areas of computing, such as database design, state-based specification, and functional programming. Remarkably, static checking support in these areas fails to exploit the full semantic content of relations. In particular, properties such as the simplicity or injectivity of relations are not statically enforced in operations that manipulate relations, such as database queries, state transitions, or composition of functional components. We describe how a pointfree treatment of relations, their properties, their operators, and the laws that govern them can be captured in a type-directed strategic rewriting system for transformation of relational expressions. This rewriting tool can be used to simplify relational proof obligations and ultimately reduce them to tautologies. We demonstrate how such reductions provide extended static checking (ESC) for design contraints commonly found in software modeling and development.

