Results 1  10
of
11
A Linguistic Characterization of Bounded Oracle Computation and Probabilistic Polynomial Time
, 1998
"... We present a higherorder functional notation for polynomialtime computation with an arbitrary 0, 1valued oracle. This formulation provides a linguistic characterization for classes such as NP and BPP, as well as a notation for probabilistic polynomialtime functions. The language is derived from H ..."
Abstract

Cited by 26 (9 self)
 Add to MetaCart
We present a higherorder functional notation for polynomialtime computation with an arbitrary 0, 1valued oracle. This formulation provides a linguistic characterization for classes such as NP and BPP, as well as a notation for probabilistic polynomialtime functions. The language is derived from Hofmann 's adaptation of BellantoniCook safe recursion, extended to oracle computation via work derived from that of Kapron and Cook. Like Hofmann's language, ours is an applied typed lambda calculus with complexity bounds enforced by a type system. The type system uses a modal operator to distinguish between two sorts of numerical expressions. Recursion can take place on only one of these sorts. The proof that the language captures precisely oracle polynomial time is modeltheoretic, using adaptations of various techniques from category theory.
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.
Semantics of Dynamic Variables in Algollike Languages
, 1997
"... A denotational semantic model of an Algollike programming language with local variables, providing fully functional dynamic variable manipulation is presented. Along with the other usual language features, the standard operations with pointers, that is reattachement and dereferencing, and dynamic v ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
A denotational semantic model of an Algollike programming language with local variables, providing fully functional dynamic variable manipulation is presented. Along with the other usual language features, the standard operations with pointers, that is reattachement and dereferencing, and dynamic variables, that is creation and assignment, are explicated using a possible worlds, functor category, location oriented model. It is shown that the model used to explicate local variables in Algollike languages can be extended to dynamic variables and pointers. Such a model allows for an analytic comparison of the properties of local and dynamic variables and, at the same time, validates several equivalences that, by common computational and operational intuition, are expected to hold. Two fundamental types of equivalences for linked data structures created using pointers are defined, observational equivalence and aeisomorphism, and it is contended that they are both the extensional respect...
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.
Semantics for Local Computational Effects
, 2006
"... Starting with Moggi’s work on monads as refined to Lawvere theories, we give a general construct that extends denotational semantics for a global computational effect canonically to yield denotational semantics for a corresponding local computational effect. Our leading example yields a construction ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Starting with Moggi’s work on monads as refined to Lawvere theories, we give a general construct that extends denotational semantics for a global computational effect canonically to yield denotational semantics for a corresponding local computational effect. Our leading example yields a construction of the usual denotational semantics for local state from that for global state. Given any Lawvere theory L, possibly countable and possibly enriched, we first give a universal construction that extends L, hence the global operations and equations of a given effect, to incorporate worlds of arbitrary finite size. Then, making delicate use of the final comodel of the ordinary Lawvere theory L, we give a construct that uniformly allows us to model block, the universality of the final comodel yielding a universal property of the construct. We illustrate both the universal extension of L and the canonical construction of block by seeing how they work in the case of state.
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...
A Notation for Comonads
"... LNCS volume of the postproceedings of IFL’12. Abstract. The categorytheoretic concept of a monad occurs widely as a design pattern for functional programming with effects. The utility and ubiquity of monads is such that some languages provide syntactic sugar for this pattern, further encouraging i ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
LNCS volume of the postproceedings of IFL’12. Abstract. The categorytheoretic concept of a monad occurs widely as a design pattern for functional programming with effects. The utility and ubiquity of monads is such that some languages provide syntactic sugar for this pattern, further encouraging its use. We argue that comonads, the dual of monads, similarly provide a useful design pattern, capturing notions of context dependence. However, comonads remain relatively underused compared to monads—due to a lack of knowledge of the design pattern along with the lack of accompanying simplifying syntax. We propose a lightweight syntax for comonads in Haskell, analogous to the donotation for monads, and provide examples of its use. Via our notation, we also provide a tutorial on programming with comonads. Many algebraic approaches to programming apply concepts from category theory as design patterns for abstracting and structuring programs. For example, the categorytheoretic notion of a monad is widely used to structure programs
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.
Associativity
, 2010
"... The semantic analogue of cartography. Annoyingly, the worst case to generalize to keeps getting worse. Today, 2 worse cases: inverse scope; mixed quote. syntax extensional semantics a. possible worlds b. alternative sets c. generalized quantifiers (1) DP:: = Bush �Bush � : e �Bush � : 〈s, e 〉 �Bush ..."
Abstract
 Add to MetaCart
The semantic analogue of cartography. Annoyingly, the worst case to generalize to keeps getting worse. Today, 2 worse cases: inverse scope; mixed quote. syntax extensional semantics a. possible worlds b. alternative sets c. generalized quantifiers (1) DP:: = Bush �Bush � : e �Bush � : 〈s, e 〉 �Bush � : 〈e, t 〉 �Bush � : 〈〈e, t〉, t〉