Results 1 
8 of
8
A new notation for arrows
 In International Conference on Functional Programming (ICFP ’01
, 2001
"... The categorical notion of monad, used by Moggi to structure denotational descriptions, has proved to be a powerful tool for structuring combinator libraries. Moreover, the monadic programming style provides a convenient syntax for many kinds of computation, so that each library defines a new sublang ..."
Abstract

Cited by 48 (1 self)
 Add to MetaCart
The categorical notion of monad, used by Moggi to structure denotational descriptions, has proved to be a powerful tool for structuring combinator libraries. Moreover, the monadic programming style provides a convenient syntax for many kinds of computation, so that each library defines a new sublanguage. Recently, several workers have proposed a generalization of monads, called variously “arrows ” or Freydcategories. The extra generality promises to increase the power, expressiveness and efficiency of the embedded approach, but does not mesh as well with the native abstraction and application. Definitions are typically given in a pointfree style, which is useful for proving general properties, but can be awkward for programming specific instances. In this paper we define a simple extension to the functional language Haskell that makes these new notions of computation more convenient to use. Our language is similar to the monadic style, and has similar reasoning properties. Moreover, it is extensible, in the sense that new combining forms can be defined as expressions in the host language. 1.
Modelling environments in callbyvalue programming languages
, 2003
"... In categorical semantics, there have traditionally been two approaches to modelling environments, one by use of finite products in cartesian closed categories, the other by use of the base categories of indexed categories with structure. Each requires modifications in order to account for environmen ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
In categorical semantics, there have traditionally been two approaches to modelling environments, one by use of finite products in cartesian closed categories, the other by use of the base categories of indexed categories with structure. Each requires modifications in order to account for environments in callbyvalue programming languages. There have been two more general definitions along both of these lines: the first generalising from cartesian to symmetric premonoidal categories, the second generalising from indexed categories with specified structure to κcategories. In this paper, we investigate environments in callbyvalue languages by analysing a finegrain variant of Moggi’s computational λcalculus, giving two equivalent sound and complete classes of models: one given by closed Freyd categories, which are based on symmetric premonoidal categories, the other given by closed κcategories.
The Structure of CallbyValue
, 2000
"... To my parents Understanding procedure calls is crucial in computer science and everyday programming. Among the most common strategies for passing procedure arguments (‘evaluation strategies’) are ‘callbyname’, ‘callbyneed’, and ‘callbyvalue’, where the latter is the most commonly used. While ..."
Abstract

Cited by 12 (3 self)
 Add to MetaCart
To my parents Understanding procedure calls is crucial in computer science and everyday programming. Among the most common strategies for passing procedure arguments (‘evaluation strategies’) are ‘callbyname’, ‘callbyneed’, and ‘callbyvalue’, where the latter is the most commonly used. While reasoning about procedure calls is simple for callbyname, problems arise for callbyneed and callbyvalue, because it matters how often and in which order the arguments of a procedure are evaluated. We shall classify these problems and see that all of them occur for callbyvalue, some occur for callbyneed, and none occur for callbyname. In that sense, callbyvalue is the ‘greatest common denominator ’ of the three evaluation strategies. Reasoning about callbyvalue programs has been tackled by Eugenio Moggi’s ‘computational lambdacalculus’, which is based on a distinction between ‘values’
Environments, Continuation Semantics and Indexed Categories
 Theoretical Aspects of Computer Software, number 1281 in Lect. Notes Comp. Sci
, 1997
"... . There have traditionally been two approaches to modelling environments, one by use of ønite products in Cartesian closed categories, the other by use of the base categories of indexed categories with structure. Recently, there have been more general deønitions along both of these lines: the ørst g ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
. There have traditionally been two approaches to modelling environments, one by use of ønite products in Cartesian closed categories, the other by use of the base categories of indexed categories with structure. Recently, there have been more general deønitions along both of these lines: the ørst generalising from Cartesian to symmetric premonoidal categories, the second generalising from indexed categories with speciøed structure to categories. The added generality is not of the purely mathematical kind; in fact it is necessary to extend semantics from the logical calculi studied in, say, Type Theory to more realistic programming language fragments. In this paper, we establish an equivalence between these two recent notions. We then use that equivalence to study semantics for continuations. We give three category theoretic semantics for modelling continuations and show the relationships between them. The ørst is given by a continuations monad. The second is based on a symmetric prem...
Closed Freyd and κCategories
, 1999
"... We give two classes of sound and complete models for the computational λcalculus, or ccalculus. For the first, we generalise the notion of cartesian closed category to that of closed Freydcategory. For the second, we generalise simple indexed categories. The former gives a direct semantics fo ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We give two classes of sound and complete models for the computational λcalculus, or ccalculus. For the first, we generalise the notion of cartesian closed category to that of closed Freydcategory. For the second, we generalise simple indexed categories. The former gives a direct semantics for the computational λcalculus. The latter corresponds to an idealisation of stackbased intermediate languages used in some approaches to compiling.
Formal proof, computation, and the construction problem in algebraic geometry
"... It has become a classical technique to turn to theoretical computer science to provide computational tools for algebraic geometry. A more recent transformation is that now we also get logical tools, and these too should be useful in the study of algebraic varieties. The purpose of this note is to co ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
It has become a classical technique to turn to theoretical computer science to provide computational tools for algebraic geometry. A more recent transformation is that now we also get logical tools, and these too should be useful in the study of algebraic varieties. The purpose of this note is to consider a very small part of this picture, and try to motivate the study of computer theoremproving techniques by looking at how they might be relevant to a particular class of problems in algebraic geometry. This is only an informal discussion, based more on questions and possible research directions than on actual results. This note amplifies the themes discussed in my talk at the “Arithmetic and Differential Galois Groups ” conference (March 2004, Luminy), although many specific points in the discussion were only finished more recently. I would like to thank: André Hirschowitz and Marco Maggesi, for their invaluable insights about computerformalized mathematics as it relates
Closed Freyd and kCategories
, 1999
"... . We give two classes of sound and complete models for the computational calculus, or ccalculus. For the first, we generalise the notion of cartesian closed category to that of closed Freydcategory. For the second, we generalise simple indexed categories. The former gives a direct semantics f ..."
Abstract
 Add to MetaCart
. We give two classes of sound and complete models for the computational calculus, or ccalculus. For the first, we generalise the notion of cartesian closed category to that of closed Freydcategory. For the second, we generalise simple indexed categories. The former gives a direct semantics for the computational calculus. The latter corresponds to an idealisation of stackbased intermediate languages used in some approaches to compiling. 1 Introduction The computational calculus, or c calculus, is a natural fragment of a callby value programming language such as ML. Its models were defined to be c  models, which consist of a small category C with finite products, and a strong monad T on C, such that T has Kleisli exponentials. The class of c models is sound and complete for the calculus, but it does not provide direct models in that a term of type X in context \Gamma is not modelled by an arrow in C from the semantics of \Gamma to the semantics of X , but by a deriv...
Hardware Design with Generalized Arrows
"... Abstract. Instances of the GArrow type class (Figure 2) are called generalized arrows. The GArrow class generalizes Control.Arrow by allowing any typelevel monoid to take the place of the cartesian product (,) and by replacing arr with the “structural ” functions usually defined in terms of it. Mul ..."
Abstract
 Add to MetaCart
Abstract. Instances of the GArrow type class (Figure 2) are called generalized arrows. The GArrow class generalizes Control.Arrow by allowing any typelevel monoid to take the place of the cartesian product (,) and by replacing arr with the “structural ” functions usually defined in terms of it. Multilevel terms with environment classifier types [TN03] may be flattened into singlelevel terms parameterized by an instance of the GArrow class. Multilevel terms and environment classifier types play the same role for generalized arrows that Paterson notation [Pat01] and its typing rules [PPJ] play for Control.Arrow. This paper presents the first nontrivial application of generalized arrows. Previously, GHC had been extended 1 with environment classifiers and an additional compiler pass which implements the flattening transformation [Meg11]. In the present work this facility has been augmented to allow for programs in which level0 terms consist of unrestricted Haskell, while