Results 1 
6 of
6
The essence of dataflow programming
 In APLAS
, 2005
"... Abstract. We propose a novel, comonadic approach to dataflow (streambased) computation. This is based on the observation that both general and causal stream functions can be characterized as coKleisli arrows of comonads and on the intuition that comonads in general must be a good means to structure ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
(Show Context)
Abstract. We propose a novel, comonadic approach to dataflow (streambased) computation. This is based on the observation that both general and causal stream functions can be characterized as coKleisli arrows of comonads and on the intuition that comonads in general must be a good means to structure contextdependent computation. In particular, we develop a generic comonadic interpreter of languages for contextdependent computation and instantiate it for streambased computation. We also discuss distributive laws of a comonad over a monad as a means to structure combinations of effectful and contextdependent computation. We apply the latter to analyse clocked dataflow (partial stream based) computation. 1
Categorical Views on Computations on Trees (Extended Abstract)
"... Abstract. Computations on trees form a classical topic in computing. These computations can be described in terms of machines (typically called tree transducers), or in terms of functions. This paper focuses on three flavors of bottomup computations, of increasing generality. It brings categorical ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Computations on trees form a classical topic in computing. These computations can be described in terms of machines (typically called tree transducers), or in terms of functions. This paper focuses on three flavors of bottomup computations, of increasing generality. It brings categorical clarity by identifying a category of tree transducers together with two different behavior functors. The first sends a tree transducer to a coKleisli or biKleisli map (describing the contribution of each local node in an input tree to the global transformation) and the second to a tree function (the global tree transformation). The first behavior functor has an adjoint realization functor, like in Goguen’s early work on automata. Further categorical structure, in the form of Hughes’s Arrows, appears in properly parameterized versions of these structures. 1
Universal Properties of Impure Programming Languages
"... We investigate impure, callbyvalue programming languages. Our first language only has variables and letbinding. Its equational theory is a variant of Lambek’s theory of multicategories that omits the commutativity axiom. We demonstrate that type constructions for impure languages — products, sums ..."
Abstract
 Add to MetaCart
(Show Context)
We investigate impure, callbyvalue programming languages. Our first language only has variables and letbinding. Its equational theory is a variant of Lambek’s theory of multicategories that omits the commutativity axiom. We demonstrate that type constructions for impure languages — products, sums and functions — can be characterized by universal properties in the setting of ‘premulticategories’, multicategories where the commutativity law may fail. This leads us to new, universal characterizations of two earlier equational theories of impure programming languages: the premonoidal categories of Power and Robinson, and the monadbased models of Moggi. Our analysis thus puts these earlier abstract ideas on a canonical foundation, bringing them to a new, syntactic level. F.3.2 [Semantics of Pro
Contents
, 2008
"... This Working Paper should not be reported as representing the views of the IMF. The views expressed in this Working Paper are those of the author(s) and do not necessarily represent those of the IMF or IMF policy. Working Papers describe research in progress by the author(s) and are published to eli ..."
Abstract
 Add to MetaCart
(Show Context)
This Working Paper should not be reported as representing the views of the IMF. The views expressed in this Working Paper are those of the author(s) and do not necessarily represent those of the IMF or IMF policy. Working Papers describe research in progress by the author(s) and are published to elicit comments and to further debate. A key challenge in government budgeting is to define an appropriate balance between current and capital expenditures. Budgeting for government capital investment also remains not wellintegrated into the formal budget preparation process in many countries. This paper aims to provide an overview of past and current budgeting practices for public investment. The study will also provide a comparison between the budget practices between lowincome countries and developed countries and make a series of recommendations for how to ensure efficient integration of capital planning and budget management in lowincome countries. 22BJEL Classification H54; H61; H83
MultiLevel Languages are Generalized Arrows ∗
"... Multilevel languages and Arrows both facilitate metaprogramming, the act of writing a program which generates a program. The arr function required of all Arrows turns arbitrary host language expressions into guest language expressions; because of this, Arrows may be used for metaprogramming only w ..."
Abstract
 Add to MetaCart
Multilevel languages and Arrows both facilitate metaprogramming, the act of writing a program which generates a program. The arr function required of all Arrows turns arbitrary host language expressions into guest language expressions; because of this, Arrows may be used for metaprogramming only when the guest language is a superset of the host language. This restriction is also present in multilevel languages which offer unlimited crosslevel persistence. The converse restriction, that the host language is a subset of the guest language, is imposed for multistage languages – those multilevel languages with a run construct. This paper introduces generalized arrows and proves that they generalize Arrows in the following sense: every Arrow in a programming language arises from a generalized arrow with that language’s term category as its codomain (Theorem 4.5.4). Generalized arrows impose no containment relationship between the guest language and host language; they facilitate heterogeneous metaprogramming. The category having all generalized arrows as its morphisms and the category having all multilevel languages as its morphisms are isomorphic categories (Theorem 4.7.8). This is proven formally in Coq, and the proof is offered as justification for the assertion that multilevel languages are generalized arrows. Combined with the existence of a particular kind of retraction (Definition 4.8.3) in the host language, this proof can be used to define an invertible translation from twolevel terms to onelevel terms parameterized by a generalized arrow instance. This is ergonomically significant: it lets guest language providers write generalized arrow instances while the users of those guest languages write multilevel terms. This is beneficial because implementing a generalized arrow instance is easier than modifying a compiler, whereas writing twolevel terms is easier than manipulating generalized arrow terms. Haskell is one example of a host language with the necessary kind of retraction. A modified version of GHC with multilevel terms is offered1 as a proof of concept; the Haskell extraction of the Coq proofs mentioned above has been compiled into this modified GHC, and is made available as a new flattening pass. 1.
PDF hosted at the Radboud Repository of the Radboud University
"... The following full text is a publisher's version. For additional information about this publication click this link. ..."
Abstract
 Add to MetaCart
The following full text is a publisher's version. For additional information about this publication click this link.