Results 1  10
of
47
The Lazy Lambda Calculus
 Research Topics in Functional Programming
, 1990
"... Introduction The commonly accepted basis for functional programming is the calculus; and it is folklore that the calculus is the prototypical functional language in puri ed form. But what is the calculus? The syntax is simple and classical; variables, abstraction and application in the pure cal ..."
Abstract

Cited by 239 (3 self)
 Add to MetaCart
Introduction The commonly accepted basis for functional programming is the calculus; and it is folklore that the calculus is the prototypical functional language in puri ed form. But what is the calculus? The syntax is simple and classical; variables, abstraction and application in the pure calculus, with applied calculi obtained by adding constants. The further elaboration of the theory, covering conversion, reduction, theories and models, is laid out in Barendregt's already classical treatise [Bar84]. It is instructive to recall the following crux, which occurs rather early in that work (p. 39): Meaning of terms: rst attempt The meaning of a term is its normal form (if it exists). All terms without normal forms are identi ed. This proposal incorporates such a simple and natural interpretation of the calculus as
A Coinduction Principle for Recursive Data Types Based on Bisimulation
, 1996
"... This paper provides foundations for a reasoning principle (coinduction) for establishing the equality of potentially infinite elements of selfreferencing (or circular) data types. As it is wellknown, such data types not only form the core of the denotational approach to the semantics of programmin ..."
Abstract

Cited by 37 (3 self)
 Add to MetaCart
This paper provides foundations for a reasoning principle (coinduction) for establishing the equality of potentially infinite elements of selfreferencing (or circular) data types. As it is wellknown, such data types not only form the core of the denotational approach to the semantics of programming languages [SS71], but also arise explicitly as recursive data types in functional programming languages like Standard ML [MTH90] or Haskell [HPJW92]. In the latter context, the coinduction principle provides a powerful technique for establishing the equality of programs with values in recursive data types (see examples herein and in [Pit94]).
An Algebraic Presentation of Term Graphs, via GSMonoidal Categories
 Applied Categorical Structures
, 1999
"... . We present a categorical characterisation of term graphs (i.e., finite, directed acyclic graphs labeled over a signature) that parallels the wellknown characterisation of terms as arrows of the algebraic theory of a given signature (i.e., the free Cartesian category generated by it). In particula ..."
Abstract

Cited by 37 (24 self)
 Add to MetaCart
. We present a categorical characterisation of term graphs (i.e., finite, directed acyclic graphs labeled over a signature) that parallels the wellknown characterisation of terms as arrows of the algebraic theory of a given signature (i.e., the free Cartesian category generated by it). In particular, we show that term graphs over a signature \Sigma are onetoone with the arrows of the free gsmonoidal category generated by \Sigma. Such a category satisfies all the axioms for Cartesian categories but for the naturality of two transformations (the discharger ! and the duplicator r), providing in this way an abstract and clear relationship between terms and term graphs. In particular, the absence of the naturality of r and ! has a precise interpretation in terms of explicit sharing and of loss of implicit garbage collection, respectively. Keywords: algebraic theories, directed acyclic graphs, gsmonoidal categories, symmetric monoidal categories, term graphs. Mathematical Subject Clas...
Restriction categories I: Categories of partial maps
 Theoretical Computer Science
, 2001
"... ..."
Developing Theories of Types and Computability via Realizability
, 2000
"... We investigate the development of theories of types and computability via realizability. ..."
Abstract

Cited by 20 (6 self)
 Add to MetaCart
We investigate the development of theories of types and computability via realizability.
Normal Forms for Partitions and Relations
 Recent Trends in Algebraic Development Techniques, volume 1589 of Lect. Notes in Comp. Science
, 1999
"... Recently there has been a growing interest towards algebraic structures that are able to express formalisms different from the standard, treelike presentation of terms. Many of these approaches reveal a specific interest towards their application in the "distributed and concurrent systems" field, b ..."
Abstract

Cited by 14 (11 self)
 Add to MetaCart
Recently there has been a growing interest towards algebraic structures that are able to express formalisms different from the standard, treelike presentation of terms. Many of these approaches reveal a specific interest towards their application in the "distributed and concurrent systems" field, but an exhaustive comparison between them is difficult because their presentations can be quite dissimilar. This work is a first step towards a unified view, which is able to recast all those formalisms into a more general one, where they can be easily compared. We introduce a general schema for describing a characteristic normal form for many algebraic formalisms, and show that those normal forms can be thought of as arrows of suitable concrete monoidal categories.
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.
A Functorial Semantics for MultiAlgebras and Partial Algebras, With Applications to Syntax
, 2000
"... Multialgebras allow for the modeling of nondeterminism in an algebraic framework by interpreting operators as functions from individual arguments to sets of possible results. We propose a functorial presentation of various categories of multialgebras and partial algebras, analogous to the classica ..."
Abstract

Cited by 14 (7 self)
 Add to MetaCart
Multialgebras allow for the modeling of nondeterminism in an algebraic framework by interpreting operators as functions from individual arguments to sets of possible results. We propose a functorial presentation of various categories of multialgebras and partial algebras, analogous to the classical presentation of algebras over a signature as cartesian functors from the algebraic theory over to Set. We introduce two dierent notions of theory over a signature, both having a structure weaker than cartesian, and we consider functors from them to Rel or Pfn, the categories of sets and relations or partial functions, respectively. Next we discuss how the functorial presentation provides guidelines for the choice of syntactical notions for a class of algebras, and as an application we argue that the natural generalization of usual terms are \conditioned terms" for partial algebras, and \term graphs" for multialgebras. Contents 1 Introduction 2 2 A short recap on multialgebras 4 3...
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’
The Sreplete construction
 In CTCS 55, pages 96  116. Springer Lecture Notes in Computer Science 953
, 1995
"... this paper: (internal version) if C 1 is a quasitopos, then S ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
this paper: (internal version) if C 1 is a quasitopos, then S