Results 11  20
of
62
Principles of Inverse Computation and the Universal Resolving Algorithm
 IN THE ESSENCE OF COMPUTATION: COMPLEXITY, ANALYSIS, TRANSFORMATION
, 2002
"... We survey fundamental concept in inverse programming and present the Universal Resolving Algorithm (URA), an algorithm for inverse computation in a firstorder, functional programming language. We discusst he principles behind the algorithm, including a threestep approach based on the notion of a p ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
We survey fundamental concept in inverse programming and present the Universal Resolving Algorithm (URA), an algorithm for inverse computation in a firstorder, functional programming language. We discusst he principles behind the algorithm, including a threestep approach based on the notion of a perfect process tree, and demonstrate our implementation with several examples. We explaint he idea of a semantics modifier for inverse computation which allows us to perform inverse computation in other programming languages via interpreters.
Container Types Categorically
, 2000
"... A program derivation is said to be polytypic if some of its parameters are data types. Often these data types are container types, whose elements store data. Polytypic program derivations necessitate a general, noninductive definition of `container (data) type'. Here we propose such a definition: a ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
A program derivation is said to be polytypic if some of its parameters are data types. Often these data types are container types, whose elements store data. Polytypic program derivations necessitate a general, noninductive definition of `container (data) type'. Here we propose such a definition: a container type is a relator that has membership. It is shown how this definition implies various other properties that are shared by all container types. In particular, all container types have a unique strength, and all natural transformations between container types are strong. Capsule Review Progress in a scientific dicipline is readily equated with an increase in the volume of knowledge, but the true milestones are formed by the introduction of solid, precise and usable definitions. Here you will find the first generic (`polytypic') definition of the notion of `container type', a definition that is remarkably simple and suitable for formal generic proofs (as is amply illustrated in t...
Generic Accumulations
, 2002
"... which are eventually used in later stages of the computation. We present a generic definition of accumulations, achieved by the introduction of a new recursive operator on inductive types. We also show that the notion of downwards accumulation developed by Gibbons is subsumed by our notion of acc ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
which are eventually used in later stages of the computation. We present a generic definition of accumulations, achieved by the introduction of a new recursive operator on inductive types. We also show that the notion of downwards accumulation developed by Gibbons is subsumed by our notion of accumulation.
A universal characterization of the closed euclidean interval (Extended Abstract)
 PROC. OF 16TH ANN. IEEE SYMP. ON LOGIC IN COMPUTER SCIENCE, LICS'01
, 2001
"... We propose a notion of interval object in a category with finite products, providing a universal property for closed and bounded real line segments. The universal property gives rise to an analogue of primitive recursion for defining computable functions on the interval. We use this to define basi ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
We propose a notion of interval object in a category with finite products, providing a universal property for closed and bounded real line segments. The universal property gives rise to an analogue of primitive recursion for defining computable functions on the interval. We use this to define basic arithmetic operations and to verify equations between them. We test the notion in categories of interest. In the
On refinement of generic statebased software components
 In AMAST’04, volume 3116 of LNCS
, 2004
"... This paper characterizes refinement of statebased software components modelled as pointed coalgebras for some Set endofunctors. The proposed characterization is parametric on a specification of the underlying behaviour model introduced as a strong monad. This provides a basis to reason about (and t ..."
Abstract

Cited by 9 (5 self)
 Add to MetaCart
This paper characterizes refinement of statebased software components modelled as pointed coalgebras for some Set endofunctors. The proposed characterization is parametric on a specification of the underlying behaviour model introduced as a strong monad. This provides a basis to reason about (and transform) statebased software designs.
Towards Merging Recursion and Comonads
, 2000
"... Comonads are mathematical structures that account naturally for effects that derive from the context in which a program is executed. This paper reports ongoing work on the interaction between recursion and comonads. Two applications are shown that naturally lead to versions of a comonadic fold op ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
Comonads are mathematical structures that account naturally for effects that derive from the context in which a program is executed. This paper reports ongoing work on the interaction between recursion and comonads. Two applications are shown that naturally lead to versions of a comonadic fold operator on the product comonad. Both versions capture functions that require extra arguments for their computation and are related with the notion of strong datatype. 1 Introduction One of the main features of recursive operators derivable from datatype definitions is that they impose a structure upon programs which can be exploited for program transformation. Recursive operators structure functional programs according to the data structures they traverse or generate and come equipped with a battery of algebraic laws, also derivable from type definitions, which are used in program calculations [24, 11, 5, 15]. Some of these laws, the socalled fusion laws, are particularly interesting in p...
Specifying software connectors
 1st International Colloquium on Theorectical Aspects of Computing (ICTAC’04
, 2004
"... Abstract. Orchestrating software components, often independently supplied, has assumed a central role in software construction. Actually, as relevant as components themselves, are the ways in which they can be put together to interact and cooperate in order to achieve some common goal. Such is the r ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
Abstract. Orchestrating software components, often independently supplied, has assumed a central role in software construction. Actually, as relevant as components themselves, are the ways in which they can be put together to interact and cooperate in order to achieve some common goal. Such is the role of socalled software connectors: external coordination devices which ensure both the flow of data and synchronization restrictions within a component’s network. This paper introduces a new model for software connectors, based on relations extended in time, which aims to provide support for light intercomponent dependency and effective external control. 1
On Refinement of Generic Software Components
 In 10th Int. Conf. Algebraic Methods and Software Technology (AMAST
, 2003
"... This paper characterises refinement of statebased software components modelled as concrete coalgebras for some Set endofunctors. The resulting calculus is parametrized by a specification of the underlying behaviour model introduced as a strong monad. This provides a basis to reason about (and trans ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
This paper characterises refinement of statebased software components modelled as concrete coalgebras for some Set endofunctors. The resulting calculus is parametrized by a specification of the underlying behaviour model introduced as a strong monad. This provides a basis to reason about (and transform) statebased software designs.
Modelling Nondeterminism
 MPC, volume 3125 of LNCS
, 2004
"... This paper consists of some preliminary steps towards the construction of a new calculus for modelling nondeterministic speci cations as multirelations. The model is appealing because it combines some of the merits of the existing models of relations and predicate transformers. Like relations, mult ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
This paper consists of some preliminary steps towards the construction of a new calculus for modelling nondeterministic speci cations as multirelations. The model is appealing because it combines some of the merits of the existing models of relations and predicate transformers. Like relations, multirelations model speci cations from initial to nal state, and like predicate transformers, they can model two kinds of nondeterminism within a single framework. This is achieved by mapping input values to postconditions rather than output values. So the multirelational model is more expressive than that of relations, but not quite as transparent. Therefore we recommend its use only for the description of systems that cannot be expressed more simply using ordinary relations
A Relational Approach To Optimization Problems
, 1996
"... The main contribution of this thesis is a study of the dynamic programming and greedy strategies for solving combinatorial optimization problems. The study is carried out in the context of a calculus of relations, and generalises previous work by using a loop operator in the imperative programming s ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
The main contribution of this thesis is a study of the dynamic programming and greedy strategies for solving combinatorial optimization problems. The study is carried out in the context of a calculus of relations, and generalises previous work by using a loop operator in the imperative programming style for generating feasible solutions, rather than the fold and unfold operators of the functional programming style. The relationship between fold operators and loop operators is explored, and it is shown how to convert from the former to the latter. This fresh approach provides additional insights into the relationship between dynamic programming and greedy algorithms, and helps to unify previously distinct approaches to solving combinatorial optimization problems. Some of the solutions discovered are new and solve problems which had previously proved difficult. The material is illustrated with a selection of problems and solutions that is a mixture of old and new. Another contribution is the invention of a new calculus, called the graph calculus, which is a useful tool for reasoning in the relational calculus and other nonrelational calculi. The graph