Results 1  10
of
11
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...
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’
Value Recursion in Monadic Computations
 OGI School of Science and Engineering, OHSU
, 2002
"... viii 1 ..."
Semantics of value recursion for monadic input/output
 Journal of Theoretical Informatics and Applications
, 2002
"... Abstract. Monads have been employed in programming languages for modeling various language features, most importantly those that involve side effects. In particular, Haskell’s IO monad provides access to I/O operations and mutable variables, without compromising referential transparency. Cyclic defi ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
Abstract. Monads have been employed in programming languages for modeling various language features, most importantly those that involve side effects. In particular, Haskell’s IO monad provides access to I/O operations and mutable variables, without compromising referential transparency. Cyclic definitions that involve monadic computations give rise to the concept of valuerecursion, where the fixedpoint computation takes place only over the values, without repeating or losing effects. In this paper, we describe a semantics for a lazy language based on Haskell, supporting monadic I/O, mutable variables, usual recursive definitions, and value recursion. Our semantics is composed of two layers: A natural semantics for the functional layer, and a labeled transition semantics for the IO layer. Mathematics Subject Classification. 68N18, 68Q55, 18C15.
Traced Premonoidal Categories
, 1999
"... Motivated by some examples from functional programming, we propose a generalization of the notion of trace to symmetric premonoidal categories and of Conway operators to Freyd categories. We show that in a Freyd category, these notions are equivalent, generalizing a wellknown theorem relating trace ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
Motivated by some examples from functional programming, we propose a generalization of the notion of trace to symmetric premonoidal categories and of Conway operators to Freyd categories. We show that in a Freyd category, these notions are equivalent, generalizing a wellknown theorem relating traces and Conway operators in cartesian categories.
Observing reductions in nominal calculi via a graphical encoding of processes
 Processes, terms and cycles (Klop Festschrift), volume 3838 of LNCS
"... Abstract. The paper introduces a novel approach to the synthesis of labelled transition systems for calculi with name mobility. The proposal is based on a graphical encoding: Each process is mapped into a (ranked) graph, such that the denotation is fully abstract with respect to the usual structural ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
Abstract. The paper introduces a novel approach to the synthesis of labelled transition systems for calculi with name mobility. The proposal is based on a graphical encoding: Each process is mapped into a (ranked) graph, such that the denotation is fully abstract with respect to the usual structural congruence (i.e., two processes are equivalent exactly when the corresponding encodings yield the same graph). Ranked graphs are naturally equipped with a few algebraic operations, and they are proved to form a suitable (bi)category of cospans. Then, as proved by Sassone and Sobocinski, the synthesis mechanism based on relative pushout, originally proposed by Milner and Leifer, can be applied. The resulting labelled transition system has ranked graphs as both states and labels, and it induces on (encodings of) processes an observational equivalence that is reminiscent of early bisimilarity.
Towards a typed geometry of interaction
, 2005
"... We introduce a typed version of Girard’s Geometry of Interaction, called Multiobject GoI (MGoI) semantics. We give an MGoI interpretation for multiplicative linear logic (MLL) without units which applies to new kinds of models, including finite dimensional vector spaces. For MGoI (i) we develop a v ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We introduce a typed version of Girard’s Geometry of Interaction, called Multiobject GoI (MGoI) semantics. We give an MGoI interpretation for multiplicative linear logic (MLL) without units which applies to new kinds of models, including finite dimensional vector spaces. For MGoI (i) we develop a version of partial traces and trace ideals (related to previous work of Abramsky, Blute, and Panangaden); (ii) we do not require the existence of a reflexive object for our interpretation (the original GoI 1 and 2 were untyped and hence involved a bureaucracy of domain equation isomorphisms); (iii) we introduce an abstract notion of orthogonality (related to work of Hyland and Schalk) and use this to develop a version of Girard’s theory of types, datum and algorithms in our setting, (iv) we prove appropriate Soundness and Completeness Theorems for our interpretations in partially traced categories with orthogonality; (v) we end with an application to completeness of (the original) untyped GoI in a unique decomposition category.
A Categorical and Graphical Treatment of Closure Conversion
 In Proc. MFPS 15
, 1998
"... This paper gives a formal basis for the closure conversion phase of functional programming languages with imperative features, using a graphical semantics for the language. We present normal forms of graphs, one corresponding to procedural languages, and one corresponding to objectoriented language ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
This paper gives a formal basis for the closure conversion phase of functional programming languages with imperative features, using a graphical semantics for the language. We present normal forms of graphs, one corresponding to procedural languages, and one corresponding to objectoriented languages. Using closure conversion, we can prove normalization results for both normal forms. Thus, we obtain sound algorithms for compiling the language into either procedural or objectoriented code. We discuss efficiency issues of the translation and suggest some improvements on the algorithm. 1 Introduction This paper describes a categorical formalization of an important step in compiling higherorder languages: closure conversion. Closure conversion is a compilation step which takes nested procedures such as: proc f (x : X1) : X2 { rec g; proc g (y : Y1) : Y2 { return G (g, x, y); } return F (g, x); } and lifts the nested procedures up to top level: rec g_lift; proc g_lift (x : X1, y : Y1...
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...
A categorical and graphical . . .
 ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE 20(1999)
, 1999
"... This paper gives a formal basis for the closure conversion phase of functional programming languages with imperative features, using a graphical semantics for the language. We present normal forms of graphs, one corresponding to procedural languages, and one corresponding to objectoriented language ..."
Abstract
 Add to MetaCart
This paper gives a formal basis for the closure conversion phase of functional programming languages with imperative features, using a graphical semantics for the language. We present normal forms of graphs, one corresponding to procedural languages, and one corresponding to objectoriented languages. Using closure conversion, we can prove normalization results for both normal forms. Thus, we obtain sound algorithms for compiling the language into either procedural or objectoriented code. We discuss efficiency issues of the translation and suggest some improvements on the algorithm.