| G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990. |
....that type indexed data types will also be useful for generic DTD transformations [25] Generally, we believe that type indexed data types are just as important as type indexed functions. Background and related work. There is little related work on type indexed data types. Type indexed functions [26, 2, 29, 9, 18] were introduced more than a decade ago. There are several other approaches to type indexed functions, see Dubois et al. [8] Jay et al. [22] and Yang [36] but none of them mentions user de ned type indexed data types (Yang does mention value indexed types, usually called dependent types) ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255-279, 1990.
....and constructor cases of function single. The dependency shows in the type of the function single: on higher order kinds, the type mentions the type of empty . type Single [#] t = type Single [# Single [#] a Single [#] t a) Plain generic functions can be seen as catamorphisms [38, 42] over the structure of data types. With dependencies, we also get the power of paramorphisms [40] single t : # : Single [#] t single Unit (Unit , v) Just v single Char (c, v) c, v) single Int (i , v) Patricia.single (i , v) single a : b (Inl a, v) Pair ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
....Thus, a calculation carrying program is not just means to show how to solve a problem, but also to showhowtoachieve improvement. Program Calculation Program calculation is a kind of program transformation based on the theory of Constructive Algorithmics (also known as Bird Meertens Formalisms) [Bir87, Mal90, MFP91, Fok92, Bac95], which is a program calculus for program derivation. In Constructive Algorithmics, calculation is a series of applications of calculational laws (i.e. rules) that describe some properties of programs. Theorems may be used to capture larger steps in calculation in which there is ample opportunity ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, (14):255--279, August 1990.
....that type indexed data types will also be useful for generic DTD transformations [24] Generally, we believe that type indexed data types are just as important as type indexed functions. Background and related work. There is little related work on type indexed data types. Type indexed functions [25, 2, 28, 8, 17] were introduced more than a decade ago. There are several other approaches to type indexed functions, see Dubois et al. [7] Jay et al. [21] and Yang [36] but none of them mentions user defined type indexed data types (Yang does mention value indexed types, usually called dependent types) ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
....the sentence of which the rose tree is a derivation. Funcion sen is defined by sen (Node a x) sen x) sen (Leaf b) b] It follows that sen dt = v v. Catamorphisms on Rose Trees For every recursive datatype we can define a function which recursively replaces constructors by functions [6]. By definition, a catamorphism on the datatype Rosetree is a function h : Rosetree a b c that is uniquely determined by functions f and g as follows. h (Node a x) f a (h x) h (Leaf b) g b For such a function h we write h = RT cata f g The function sen defined above is a catamorphism, ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
....while for F: Tree we get a program for trees, and so on. Well known examples of such polytypic building blocks are the initial algebra for F (assuming F is such that an initial algebra exists) in F : F FF and the catamorphism combinator: f ] F : a F ( f : a Fa For more details, see [7] or [1] A previous paper [8] defined a crush combinator hh Phiii F : a F ha; a; ai ( Phi : a a Theta a for all regular F , giving a generic way to reduce data structures with a binary operation. In this paper we define a generalization of crush, and present some examples. Further ....
.... F DeltaId Gamma(F ) For example, List = L, where Lha; bi = a Thetab ) 1, with initial algebra in : List a (a Theta List a) 1 Putting cons = in ffi inl, nil = in ffi inr, we have cons : List a a Theta List a nil : List a 1 Conversely, in = cons 5 nil. For further details, consult [7] or [1] A grammar for regular functors A functor built only from 1, Ex, Theta, Gamma, Delta and is called a regular functor. A formal context free grammar for the n ary regular functors is: 1 n ary constant functor j Ex i projection, i = 0; n Gamma 1 j j Theta (only ....
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--279, 1990.
.... framework for reasoning algebraically about programs and is the basis for current developments in generic programming (see e.g. 2, 19] In this section we review the relevant concepts around the categorical approach to recursive types [23, 25, 21] and its application to program calculation [24, 27, 11, 22, 5, 16]. The category theoretic explanation of (recursive) types is based on the idea that types constitute objects of a category C, programs are modelled by arrows of the category, and type constructors are functors on C. In this setting, a datatype T is understood as a solution (a fixed point) of a ....
G. Malcolm. Data Structures and Program Transformation. Science of Computer Programming, 14:255--279, 1990.
....using a fold. Note that this implies that reductions are in a sense more general than folds. They are, however, also less general since, for instance, mapping functions on regular functors can be defined using folds, but cannot be expressed in the form of a crush. Thus, reductions [15] and folds [14] are different, incomparable generalizations of the classic reduction operator ( on join lists [5] For a more detailed comparison we refer the interested reader to [15] To define a reduction we require two ingredients: a value e : a and a binary operation op : D a a. Usually but not ....
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--280, 1990.
....system that combines both approaches. In a di#erent context, the definition of recursive datatypes as least fixpoints of pattern functors and the calculating properties that can be obtained by means of folds or catamorphisms led to a complete discipline which could be named as generic programming [39,40,3]. Following that approach, L. Duponcheel proposed the combined use of folds or catamorphisms with modular monadic semantics [9] allowing the independent specification of the abstract syntax, the computational monad and the domain value. Monadic catamorphisms were studied in [11,19] and applied to ....
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
....generalizations and elegant reasoning at the same time. While set theoretic accounts of query optimization dominate the field of research by far, others have paved the way for a categorical model of queries [BNTW95, Won94] b) There exists an extensive theory, the Constructive Algorithmics [Fok92, Gra90, Bir89], on the transformation of programs that were built from a small set of combining forms. This theory understands programs as objects that are subject to calculation just like numbers in arithmetic. Core query transformations are established through calculation with programs. c) Type theory, ....
Malcolm Grant. Data Structures and Program Transformation. Science of Computer Programming, 14:255--279, 1990.
.... by Maurice van Keulen [11] The categorical approach to program construction originates from work by Bird and Meertens since 1987, and later Backhouse and his team; the approach is described in a semi formal setting by Meijer et al. 14] and more formally in a series of PhD theses by Malcolm [12, 13], Fokkinga [7, 5, 6, 8] de Moor [15] Jeuring [10] Recently Grust [9] 10 has followed this approach for studying query optimisation, and a categorical theory for Moa will have close connection with his work. The categorical approach to programming has by now evolved to generic programming [1] ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--280, September 1990.
....eld where we expect that type indexed data types will be useful is generic DTD transformations [22] We think that type indexed data types are just as important as type indexed functions. Background and related work. There is little related work on type indexed data types. Type indexed functions [23, 2, 26, 8, 15] were introduced back in the nineties. There exist other approaches to type indexed functions, see Dubois et al. [7] Jay et al. [20] and Yang [33] but none of them mentions user de ned type indexed data types. Type indexed data types appear in the work on intensional type analysis [9, 6, 5, 30, ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255-279, 1990.
....of algorithm derivation and transformation. This can be traced back to the so called Bird Meertens formalism [5,6] and the foundational work of T. Hagino [8] Since then, the area has known a remarkable progress, as witnessed by the vast bibliography published both on theory and applications see [12,13,4], among many others references. This paper reports on an attempt to apply the same reasoning principles and calculational style to the design of process calculi, relying on the representation of processes as inhabitants of coinductive types, i.e. nal coalgebras for 1 Email: lsb di.uminho.pt ....
G. R. Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2-3):255-279, 1990.
....Davis Putman procedure for testing validity of propositional formulae. Some work in progress in reported on section 5. The categorical view of datatypes, which underlies this research area, dates back to the ADJ group [5] and more recently, to the contributions of T. Hagino [7] and G. Malcolm [12]. The relevance of universal properties to program derivation was first recognized by Backhouse in [3] References [14,13] and [16] introduce the recursion functionals discussed here. Reference [4] provides a tutorial introduction. 2 Data Modeling in Camila Camila has been designed as a language ....
G. R. Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--279, 1990.
....of each component participating in the fusion is made explicit. This enables fusion by direct application of simple transformation laws like the cata build rule and the acid rain theorem [27] The theoretical basis for calculation based fusion lies in the study of constructive algorithmics [8, 19, 20]. 1.9 Future Work The implementation of program fusion algorithms o ers many additional opportunities for investigation. Among the issues pertaining directly to the Stratego implementation and meriting attention are: experimenting with various orders and strategies for applying the simpli cation ....
G. J. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255-279, August 1990.
....of each component participating in the fusion is made explicit. This enables fusion by direct application of simple transformation laws like the cata build rule and the acid rain theorem [27] The theoretical basis for calculation based fusion lies in the study of constructive algorithmics [7,19,20]. 38 Johann Visser Warm Fusion in Stratego 9. Future Work The implementation of program fusion algorithms o ers many additional opportunities for investigation. Among the issues pertaining directly to the Stratego implementation and meriting attention are: experimenting with various orders ....
G. J. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255-279, August 1990.
....fold (zero; plus) sums the elements of a list of numbers. Functors built from constant functors, type functors (like List) the identity and projection functors, using coproduct, product, and composition operations, are called regular functors. For further details of the approach, consult, e.g. [12] or [1] For Nest and Bush the theory above breaks down. For example, introducing Q a = a Theta a for the squaring functor, the corresponding functorial declaration for Nest would be data Nest a ff a Gamma F (a; Nest (Q a) where F is as before, and ff a applies NilN to left components and ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--279, 1990.
....have been identified and described in the literature [10, 11, 15 17, 25, 27] and concepts from category theory have proven especially suitable for expressing polytypic functions and reasoning about them. In this approach, datatypes are modeled as initial objects in categories of functor algebras [14], and polytypic constructions are formulated using initiality without reference to the underlying structure of datatypes. The concept of polytypy, however, is not restricted to the definition of polytypic functions solely, but applies equally well to other entities of the program and proof ....
....exclude tuples with independent types, they are sufficiently general for the purpose of this paper. 3 Semantic Polytypy In this section we describe a type theoretic framework for formalizing polytypic programs and proofs. Datatypes are modeled as initial objects in categories of functor algebras [14], and polytypic constructions both programs and proofs are formulated using initiality without reference to the underlying structure of datatypes. We exemplify polytypic program construction in this type theoretic framework with a polytypic version of the well known map function. Other ....
G. Malcolm. Data Structures and Program Transformation. Science of Computer Programming, 14:255--279, 1990.
....it automatically generates a unification algorithm for this type. This is a typical polytypic algorithm and we will give an implementation of it in section 6.5. Interest in polytypic functions arose when it became clear that most of the theory of lists [1] could be generalised to other datatypes [11]. This has theoretical interest as many of the powerful methods of calculating programs from specifications, and thereby proving their correctness, that had been developed for list based programs [5] also could be generalised [2] The practical interest comes mainly from the prospects of not ....
MALCOLM, G. Data structures and program transformation. Science of Computer Programming, Vol 14, pp 255-279, 1990.
....the transformation of monadic catamorphisms. An example of an instance of our theory for calculating G machine is given in Section 6. Some discussions are given in Section 7. 2 Preliminaries for Program Calculation In this section, we briefly review the previous work in the program calculation[1, 3, 4, 6, 7, 12, 13, 14] and explain some basic facts which provide theoretic basis of our method. In this paper, our default category C has as objects sets, has as morphisms continuous functions, and has as composition of general functional composition ffi. 2.1 Functors Endofunctors on category C (functors from C to ....
....has as its objects the F algebras and has as its morphisms all F homomorphisms between F algebras. Composition in the category of F algebra is taken from C, and so are the identities. 2 It is known that an initial object in the category of F algebras exists provided F is a polynomial functors[12]. The representativewe fix for the initial algebra is denoted by F . Let (T;in F ) F,we call in F : F T T the constructor of the initial algebra. Since the algebra (T;in F ) is initial in the category of F algebras, for every F algebra (X; OE) there exits precisely a single f : T X such ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, (14):255--279, August 1990.
....of programs, but also the number of laws and the length of program derivations. For this reason, the program transformation community, notably the Bird Meertens Formalism (or Squiggol) community [BdM97,Mee86,MFP91] has been working to make programs more generic not just polymorphic, but polytypic [Mal90b,Mal90a,JJ97,JBM98]. However, the genericity provided by polymorphism and polytypism is still not adequate for certain programs: another form of genericity is often needed genericity over the length of tuples. This paper shows the usefulness of n tuples (tuples whose lengths are unknown) and proposes a method to ....
....curry family of functions curry2 : a b c) a,b) c curry3 : a b c d) a,b,c) d . but there is no way to give a type to a generic curry. Extending the zip calculus to type this generic curry is an area for future research. 12 5. 2 Relation to Other Work Polytypic programming [Mal90b,Mal90a,MFP91] has similar goals to this work (e.g. PolyP [JJ97] and Functorial ML [JBM98] However, as just noted, the genericity of polytypism and n tuples appear orthogonal. As seen in section 4.6, with both polytypism and n tuples some very generic programs and laws can be written. Two approaches that ....
G. R. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255 279, 1990.
....transpose, twice = h l h k h i m:i:ki :l ii n tuple reduce = h l h k m:l:k ii n tuple reduce = h l m:l i n tuple eta = m n tuple eta 4. 5 Generic Catamorphisms It was obvious that Haskell s zip family of functions could bene t from n tuples; but interestingly, catamorphisms [10, 11, 13] can also bene t from n tuples, giving catamorphisms over mutually recursive data structures. First, a x point operator for terms, fix, and a x point operator at the type level, must be added to the calculus. Normally, the kind of is ( i.e. it takes a functor of kind ....
....is the curry family of functions curry2 : a b c) a,b) c curry3 : a b c d) a,b,c) d . but there is no way to give a type to a generic curry. Extending the zip calculus to type this generic curry is an area for future research. 5. 2 Relation to Other Work Polytypic programming [10, 11, 13] has similar goals to this work (e.g. PolyP [8] and Functorial ML [9] However, as just noted, the genericity of polytypism and n tuples appear orthogonal. As seen in section 4.5, with both polytypism and n tuples some very generic programs and laws can be written. Two approaches that achieve ....
G. R. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255279, 1990.
.... by Maurice van Keulen [11] The categorical approach to program construction originates from work by Bird and Meertens since 1987, and later Backhouse and his team; the approach is described in a semi formal setting by Meijer et al. 14] and more formally in a series of PhD theses by Malcolm [12, 13], Fokkinga [7, 5, 6, 8] de Moor [15] Jeuring [10] Recently Grust [9] has followed this approach for studying query optimisation, and a categorical theory for MOA will have close connection with his work. The categorical approach to programming has by now evolved to generic programming [1] 13 ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--280, September 1990.
....orderly structure upon functional programs and such structures can be exploited to facilitate program calculation. One important recursive pattern in which we are interested is called catamorphism, generic version of our familiar foldr on lists. Catamorphisms are significant in program calculation [4, 11, 16, 18, 23], since there exists a general transformation rule known as Promotion Theorem. In this paper, we shall formulate accumulations as higher order catamorphisms, and propose several general transformation rules for calculating accumulations (i.e. finding and manipulating accumulations) by ....
....An example of the derivation of an efficient algorithm for longest path problem are given in Section 6, and some related works and conclusions are described in Section 7. 2 Preliminaries for Program Calculation In this section, we briefly review the previous work in the program calculation[1, 4, 7, 15, 16, 18, 19] and explain some basic facts which provide theoretic basis of our method. In this paper, our default category C has as objects types, has as morphisms continuous functions, and has as composition general functional composition ffi. We shall denote the application of a function f to its argument ....
[Article contains additional citation context not shown here]
G. Malcolm. Data structures and program transformation. Science of Computer Programming, (14):255--279, August 1990.
....parameters. We shall first study the type with a single type parameter. Now we intend to define the map functor with respect to this type. Fortunately, we know that any parametrized data type like T a comes equipped with a map functor we shall define the map functor in a similar way to Malcolm s[15], except for defining it over type functor rather than from type equations. A bifunctor[18] provides means to abstract functor and will be used later, so we introduce it here. Definition 1 (Bifunctor) A bifunctor y is a binary operation taking types into types and functions into functions such ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, (14):255--279, August 1990.
.... its emphasis is on the exploration of recursive structure for each component function so that fusion can be performed directly by applying a simple transformation law: the Acid Rain Theorem [GLJ93, TM95] Its theoretical basis can be found in the study of Constructive Algorithmics [Fok92, Mal90, MFP91] Returning to our example program ssf , let us explain briefly how to fuse the following composition with this approach, while the detailed discussions will be given later: sum ffi map square ffi upto: 1. Deriving Hylomorphisms from Recursive Definitions First of all, we need to ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, (14):255--279, August 1990.
....The implemented Charity language by Cockett et al. 3] is a similar programming language. The program calculation community is rooted in the Bird Meertens formalism or Squiggol [2] which, originally, was an equational theory of programming with the parametric data type of lists. Malcolm [16] made the community aware of Hagino s work, and studied program calculation based on bi Cartesian closed categories with initial algebras and terminal coalgebras for cocontinuous resp. continuous covariant functors. Meertens [18] was the rst author to give a treatment of primitive recursion ....
G. Malcolm, Data structures and program transformation, Science of Computer Programming 14 (1990) 255-279.
....paper is intended as an advert for something we call the Mendler style. This is a not too widely known style of coding terminating recursion schemes by combinators that di ers from the construction style of the famous cata and para combinators (for iteration and primitive recursion, respectively) Mal90,Mee92] here called the conventional style. The paper argues that, for certain recursion schemes, opting for the Mendler style gives simpler constructions than choosing the conventional style. This is demonstrated on the example of two simple and useful terminating recursion schemes, ....
G Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2-3):255-279, 1990.
....structures they traverse or generate. A key feature of these operators is that they can be derived from the categorical interpretation of recursive types. The categorical approach permits then to derivate algebraic laws for the operators, and provides a smooth framework for conducting calculations [20, 23, 7, 16, 5]. Some of the algebraic laws are useful for deforestation [37, 35] These are the so called fusion laws [23] Deforestation is a program transformation technique by means of which intermediate data structures can be eliminated. In functional programming, the interest in that technique is due to ....
....as a solution to a type equation X = FX, for an appropriate endofunctor F : C C that captures the shape (or signature) of the type. This section reviews the relevant concepts concerning the categorical approach to recursive datatypes [19, 21, 15] and its application to program calculation [20, 23, 7, 16, 5]. We show then how recursive operators and their calculational properties are derived from elementary categorical constructions. An interesting feature of those constructions is that they are parameterized by the signature of the datatypes involved. Thus, as a natural consequence, the resulting ....
[Article contains additional citation context not shown here]
G. Malcolm. Data Structures and Program Transformation. Science of Computer Programming, 14:255--279, 1990.
....to more or less arbitrary data types, so the calculation leads to a generic solution to the problem. In order to be able to construct a generic theory of segments, we need a reformulation of the theory of lists with two new ingredients. The rst ingredient is a categorical treatment of data types [18, 19, 17]. In the categorical approach, data types are characterised in terms 1 of certain functors, and speci cations can be parameterised by functors in a simple and direct manner. The second ingredient involves the move from functions to arbitrary relations [1, 8] Introducing relations enables us to ....
....this category has an initial object, which we shall denote by : T FT . For any other F algebra R : A FA the unique homomorphism from to R will be denoted by ( R] so ( R] A T is characterised by (X = R FX ) X = R] Homomorphisms of the form ( R] are called catamorphisms [18]. The initial algebra is, in fact, an isomorphism [16] so we can rewrite the above equivalence in the form (X = R FX ) X = R] The well known Knaster Tarski Fixpoint Theorem says that the unique solution (if it exists) of X = F (X ) is also the least solution of X F (X ) and ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255-279, 1990.
..... map (a ) a ) maximum g max 0 (a maximum (map sum (inits as) Thus, maximum . map sum . inits = foldr f 0 where f a b = max 0 (a b) and, with this f, mss = maximum . scanr f 0 3 Looking forward We have shown how folds are the fundamental pattern of recursion over lists. Malcolm [10] shows that the same applies to any suitable datatype: there is a fold and a universal property , and these arise for free from the datatype definition. Moreover, Meijer et al. [12] and others have shown that similar results hold for a dual of folds, called unfolds; instead of collapsing a data ....
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
No context found.
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--280, September 1990.
....: A I such that for all h : A I , h = f] h : f FAlg in : 14) So, f] is the unique homomorphism to algebra f from algebra in . We call ( f] the catamorphism of f . 19 2 The banana bracket notation for catamorphisms (as it is a ectionately known) was introduced by Malcolm [19, 20]. Malcolm was also the rst to express the unicity property using an equivalence in this way. It is a mathematically trivial device but it helps enormously in reasoning about catamorphisms. Note that the functor F is also a parameter of ( f] but the notation does not make this explicit. This is ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2-3):255-280, October 1990.
No context found.
) Malcolm, G. Data structures and program transformation. Science of Computer Programming, 14 (Aug. 1990), 255--279.
.... this tradition seeks to show existence of nal transition systems, which give rise to an abstract notion of bisimulation and can be used to give a semantics for process algebras [2,5] Another thread views coalgebra as a variation on universal algebra [90] and applies it to functional programming [66,74,63], automaton theory [91,90] and the object paradigm [87,71 73,13] An interesting recent development combines algebra and coalgebra to describe denotational and operational semantics [96] Reichel [87] was the rst to apply coalgebra explicitly to the object paradigm, and his basic construction ....
Grant Malcolm. Data structures and program transformation. Science of Computer Programming , 14, 1990.
....hylomorphisms and finds how they interact[GLJ93, SF93, TM95] The second approach has been proved to be more practical in a real implementation in compilers, although at first sight it seems less general than the former. Its theoretical basis can be found in the study of Constructive Algorithmics [Fok92, Mal90, MFP91] which will be outlined in Section 2. In constructive algorithmics, data types are categorically defined as initial fixed points of functors, and functions from one data type to another are represented as structure preserving maps between algebras. By doing so, an orderly structure can be imposed ....
....has as its objects the F algebras and has as its morphisms all F homomorphisms between F algebras. Composition in the category of F algebra is taken from C, and so are the identities. 2 It is known that an initial object in the category of F algebras exists when F is a polynomial functors[Mal90]. The representative for the initial algebra is denoted by F . Let (T ; in F ) F , F defines a data type T with the data constructor in F : F T T . Function out F : T F T is the inverse of in F and it destructs its argument and is therefore called data destructor . To be concrete, consider ....
G. Malcolm. Data structures and program transformation. Science of Computer Programming, (14):255--279, August 1990.
....of ff to the carrier of fi that preserves the algebraic structure. That is, hF ; fi = ff ; h or, pictorially: AF ff A hF h B F fi B Algebras specify ways of constructing entities from structured inputs, and are linked in precise ways with the algebras of many sorted algebra [39, 26, 36]. For example, a functor corresponding to the structure given by the specification of Flags in Example 1 is AF = 1 A A; an algebra of this functor provides a constant 1 A corresponding to the constant new, and two operations A A corresponding to the operations up and rev. Given a functor G : ....
....signature for flag objects could be given by AF = 1 A A and AG = ftrue; falseg. This is an example of a generally useful pattern: given a signature Sigma which can be split into Sigma = Gamma [ Delta, we can take F to be the functor generated in the usual way by the signature Gamma (as in [39, 26]) and we can take G to be G Delta , as in the previous section. In a slightly more ad hoc way, a signature for stacks might be given by AF = 1 ThetaA A so that F algebras have operations corresponding to empty , push and pop , and AG = ferrorg ThetaA, so that G coalgebras either give ....
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3), October 1990.
No context found.
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
No context found.
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
No context found.
G. Malcolm, Data structures and program transformation, Science of Computer Programming 14 (1990) 255--279.
No context found.
G. Malcolm, Data structures and program transformation, Science of Computer Programming 14 (1990) 255--279.
No context found.
G. Malcolm. Data Structures and Program Transformation. Science of Computer Programming, 14:255--279, 1990.
No context found.
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
No context found.
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
No context found.
G. Malcolm. Data Structures and Program Transformation. Science of Computer Programming, 14:255-- 279, 1990.
No context found.
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255-279, 1990.
No context found.
G. Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--280, September 1990.
No context found.
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14(2--3):255--279, October 1990.
No context found.
G. Malcolm, Data structures and program transformation, Science of Computer Programming 14 (1990) 255--279.
No context found.
Grant Malcolm. Data structures and program transformation. Science of Computer Programming, 14:255--279, 1990.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC