| Bird, R. S. (1989). Algebraic identities for program calculation. The Computer Journal , 32(2), 122--126. |
....them provide the bases of our cost analysis, that is, Skillicorn s parallelised BMF, Rangaswami s HOPP model, and particularly Jay s shapely language VEC. The next three sections in this chapter investigate these models. 2.3. 2 The Bird Meertens Theory of Lists The Bird Meertens Formalism (BMF) [11, 10] developed by Bird and Meertens is a collection of second order functions, algebraic identities and theorems relating these with concise notations which facilitate the transformation approach. Although a large amount of work has been done on other data types (arrays [10, 7] trees [38] the ....
....derivation. The problem is to find the sum of the contiguous segment of a list whose members have the largest sum among all such segments. As an example, we have mss[2, 4,2, 1,6, 3] 7 We predict the costs of three different algorithms taken from papers of the field, that is Bird s algorithm [11], Skillicorn and Cai s algorithm [78] and Cole s algorithm [26] 6.2.1 Three Different Algorithms Bird derived a O(n) sequential time algorithm from a O(n ) sequential time specification [11] by BMF style program calculation. It uses a sequential second order function left accumulate defined ....
[Article contains additional citation context not shown here]
R. S. Bird. Algebraic Identities for Program Calculation. the Computer Journal, 32(2):122--126, 1989.
....hand, combines multiple method invocations, currently making programmers responsible for keeping the semantics of their program. Static Fusion of Multiple Operations through Program Transformations. There is much literature on program transformations that fuse multiple operations statically [1, 2, 5, 10, 11, 21]. The techniques described in the literature detect static occurrences of the operations that are invoked consecutively, and transform them into a cheaper operation statically. Our technique, on the other hand, detects dynamic occurrences of the operations that can be executed consecutively, and ....
Richard S. Bird. Algebraic Identities for Program Calculation. The Computer Journal, 32(2):122--126, 1989.
....hand, combines multiple method invocations, currently making programmers responsible for keeping the semantics of their program. Static Fusion of Multiple Operations through Program Transformations. There is much literature on program transformations that fuse multiple operations statically [1, 2, 5, 10, 11, 21]. The techniques described in the literature detect static occurrences of the operations that are invoked consecutively, and transform them into a cheaper operation statically. Our technique, on the other hand, detects dynamic occurrences of the operations that can be executed consecutively, and ....
Richard S. Bird. Algebraic Identities for Program Calculation. The Computer Journal, 32(2):122--126, 1989.
....in which values may be stored; a program may change the value stored in a variable by executing an assignment statement. Because of referential transparency, we can construct, reason about, and manipulate functional programs in much the same way we can any other mathematical expressions [2, 3]. Many of the familiar laws from high school algebra still hold; new laws can be defined and proved for less familiar primitives and even user defined operators. This enables a relatively natural equational style of reasoning. For example, we may want to prove that a program meets its ....
....3: 2: denote lists. Gofer adds a bit of syntactic sugar to make expressing lists easier. The cons operations binds from the right. Thus 5: 3: 2: can be written 5:3:2: As a further convenience, a list can be written as a comma separated sequence enclosed in brackets, e.g. 5:3:2: as [5,3,2]. Gofer supports two list selector functions, head and tail, such that: head (h:t) # h, where h is the head element of list, tail (h:t) # t, where t is the tail list. Aside: Instead of head, Lisp uses car and other languages use hd, first, etc. Instead of tail, Lisp uses cdr and other ....
[Article contains additional citation context not shown here]
R. S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122--126, 1989.
....analyses which hold across the range of target architectures. It is desirable to have a strong semantics for a parallel language, which can be used to achieve a degree of confidence in the correctness of programs. 1. 6 Parallelism and the Bird Meertens Formalism The Bird Meertens Formalism [4] is a way of giving a sound theoretical basis to certain kinds of abstract data structure. A Bird Meertens theory consists of an abstract data type and a number of second order functions which are operations over the data type. When combined with a suitably rich base algebra of 16 fundamental ....
....type which we focus on in this project. A key feature of this theory is the fact that naive, inefficient algorithms expressed in BMF form may be successively transformed into implementations which are asymptotically more efficient. This approach to algorithm design is known as program calculation [4]. It has been demonstrated [43] that the operations commonly found in the BMF theory of lists may all be implemented with a high degree of efficiency on a wide range of parallel computer architectures. This is a key part of our approach; if the structure of a parallel computation is based solely ....
[Article contains additional citation context not shown here]
R. S. Bird. "Algebraic Identities for Program Calculation". The Computer Journal, 32(2):122--126, 1989.
....complex transformation (30) 7. Related Work The skeleton approach has recently received much attention. An overview of some current work can be found in [5] Transformation work related to ours has been carried out in BMF: a version of Theorem 1 in the sequential setting was proved and used in [2, 18]. An analog of our operator red (h Phi; called recur reduce, has been used to parallelize linear recurrences [3] and later to tabulate parallel implementations of linearly recursive programs [19] Our transformation rule (11) differs in that it aims directly at the scan reduce composition, and ....
R. Bird. Algebraic identities for program calculation. The Computer J., 32(2):122--126, 1989.
....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, ....
Richard S. Bird. Algebraic Identities for Program Calculation. The Computer Journal, 32(2):122--126, 1989.
....for our approach is that the size analysis also computes a function which maps indices to elements. The result of the analysis can then be used for optimization by program transformations, e.g. intermediate lists could be eliminated, similar to deforestation or map distribution over composition [3]. The transformations provide the basis for a renewed size inference and subsequent optimization, in an iterative process which terminates according to criteria speci ed by compiler settings or directives. Our inference and transformation rules are based on a view of lists which abstracts from ....
....the data at all, just by modi cation of the indexing function: permutation, broadcast, partitioning, etc. We apply the data eld approachtothe parallelization of lists. As far as we know, the list is the most important aggregate data structure in functional programming, and it has a rich theory [3, 28]. As Lisper and Collard [24] have pointed out, size inference can be viewed as a form of abstract interpretation [8] One kind of abstract information of a list is its length. The length function is a monoid homomorphism that maps from the concrete domain of lists to the abstract domain of ....
Richard S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122126, 1989.
....with respect to the weight function wf. More formal explanation can be found in Section 3. The maximum marking problems are interesting because they encompass a very large class of optimization problems [4, 5] and they have attracted many researchers. Based on the algebraic laws of programs [6, 7], Bird successfully derived a linear algorithm to solve the maximum segment sum problem [6] which is a maximum weightsum problem on lists. Bird et al. 7] demonstrated the derivation of many kinds of maximum marking problems. However, the success of derivation not only depends on a powerful ....
....The maximum marking problems are interesting because they encompass a very large class of optimization problems [4, 5] and they have attracted many researchers. Based on the algebraic laws of programs [6, 7] Bird successfully derived a linear algorithm to solve the maximum segment sum problem [6], which is a maximum weightsum problem on lists. Bird et al. 7] demonstrated the derivation of many kinds of maximum marking problems. However, the success of derivation not only depends on a powerful calculation theorem but also involves careful and insightful justi cation to meet the conditions ....
[Article contains additional citation context not shown here]
Richard Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122-126, 1989.
....of functions, rather than relying on discovery through lower level methods. BMF, also known as Squiggol, is being developed as a programming by calculation method of developing programs from specifications. I will use Haskell as the notation for writing transformations, in a similar manner to [21], instead of the more concise notation of [20] The key contribution of this section is to adapt the Bird Meertens theory of lists to work with streams; the result is a powerful tool for restructuring process networks. Particularly powerful transformations become available for networks ....
....to the FIR filter example of a second paper devoted to process network transformation [123] The right hand side (figure 5.24b) is a pipeline of processes, each parameterised by its own i from vector v. 5.5. 5 Promotion The fourth class of identity is derived from Bird s promotion identities [21]. The map promotion identity expresses the idea that map can be promoted through concatenation: map f Delta concat j concat Delta map (map f) In other words, concatenating a list of lists and applying f to each element is the same as applying f to each element of each sub list, and ....
R.S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122--126, 1989.
....of functions, rather than relying on discovery through lower level methods. BMF, also known as Squiggol, is being developed as a programming by calculation method of developing programs from specifications. I will use Haskell as the notation for writing transformations, in a similar manner to [21], instead of the more concise notation of [20] The key contribution of this section is to adapt the Bird Meertens theory of lists to work with streams; the result is a powerful tool for restructuring process networks. Particularly powerful transformations become available for networks ....
....5. STATIC PROCESS NETWORKS 163 (a) b) v x x xs f i i l f i l xs v f Figure 5.24. Pipelining (figure 5.24b) is a pipeline of processes, each parameterised by its own i from vector v. 5.5. 5 Promotion The fourth class of identity is derived from Bird s promotion identities [21]. The map promotion identity expresses the idea that map can be promoted through concatenation: map f Delta concat j concat Delta map (map f) In other words, concatenating a list of lists and applying f to each element is the same as applying f to each element of each sub list, and ....
R.S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122--126, 1989.
....behavior of the whole program. Static fusion of multiple operations through program transformations. There is much literature on program transformations that fuse multiple operations statically. Examples of these proposed in the context of functional languages are the Bird Meertens Formalism [Bir89] the Deforestation Algorithm by Wadler [Wad90] and program fusion transformation in the HYLO system [OHIT97] Examples of those proposed in the context of imperative languages are loop fusion and the introduction of composite functions in parallel scans [Cal91, FG94] Kennedy s telescoping ....
Richard S. Bird. Algebraic Identities for Program Calculation. The Computer Journal, 32(2):122--126, 1989.
.... of transformation rules (including, e.g. the rules for broadcast) 23] and apply our rules in a skeleton based programming environment [24] Transformation work related to ours has been carried out in the formal setting of BMF: a version of Theorem 1 in the sequential case was proved and used in [25], 17] An analog of our derived operation red (h ; called recurreduce, has been used to parallelize linear recurrences [26] and more recently in our own group to tabulate parallel implementations of linearly recursive functional programs [27] Our rule (12) di ers in that it aims directly at ....
R. Bird, \Algebraic identities for program calculation," The Computer J., vol. 32, no. 2, pp. 122-126, 1989.
....in terms of yet other functions, and so forth until every function can be defined in terms of the language s primitive operations. Because of referential transparency, we can construct, reason about, and manipulate functional programs in much the same way we can any other mathematical expressions [2, 3]. Many of the familiar laws from high school algebra still hold; new laws can be defined and proved for less familiar primitives and even user defined operators. 1 Another advantage of functional programming languages is that they support very powerful and regular abstraction mechanisms. ....
....and 3: 2: denote lists. Gofer adds a bit of syntactic sugar to make expressing lists easier. The cons operations binds from the right. Thus 3: 2: can be written 3:2: As a further convenience, a list can be written as a comma separated sequence enclosed in brackets, e.g. 5:3:2: as [5,3,2]. Gofer supports two list selector functions, head and tail, such that: head (h:t) h, where h is the head element of list, tail (h:t) t, where t is the tail list. The standard prelude supports a number of other useful functions on lists. For example, length takes a list and returns its ....
[Article contains additional citation context not shown here]
R. S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122--126, 1989.
....program stages, each including a global communication, into one stage. Thereby, extra communication and synchronization in the performance view are eliminated. Our results build on the general theory of homomorphisms in the categorytheoretical setting [46] and in the sequential program design [6, 64]. Whereas, to the best of our knowledge, the transformation of two scans is new, a version of the scan reduction composition was used in [12] for parallelizing linear recurrences. Our formulation is arguably more convenient for direct use in the practical parallel programming. In the next ....
....the CS method from two sequential programs. The components of the quadruple have a problem specific meaning maximum initial segment sum, total sum, etc. but this meaning is not referred to in our derivation. In the sequential setting, the program derivation for the MSS problem was done in [6, 64]. Our derivation establishes a connection between two parallel solutions known previously: an application of Theorem 5 for suffixreduction leads to a solution similar to [12] which, by a one more application of Theorem 5, this time for scan reduction, is improved and transformed into the solution ....
R. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122--126, 1989.
....are consistent with WSDFU and it is not a di#cult task to build them in WSDFU. The rest of this section describes the idea of extending WSDFU to include generalization, # abstraction and tupling. We have shown some example source programs in [10, 14] including the maximum segment sum problem [2] that can be optimized by the extended WSDFU. 6.1 Generalization of Function Domain As shown above, folding is one of the most useful operation in program transformation [1, 3] Without this operation, we will not produce an optimal residual program from a source program very often. A function ....
Bird, R.S.: Algebraic identities for program calculation. Computer Journal 32 (2) (1989) 122--126.
....they encompass a very large class of optimization problems [6, 11] see Section 7 for some examples) The solving of maximum weightsum problems, however, requires much insightful analysis. There are basically two kinds of approaches. The Algebraic Approach. Using the algebraic laws of programs [9, 8], one may try to calculate ecient solutions to the problems by program transformation. For instance, Bird derived a linear algorithm to solve the maximum segment sum problem [9] which is a maximum weightsum problem on lists. Bird and de Moor [8] demonstrated the derivation of a greedy linear ....
....analysis. There are basically two kinds of approaches. The Algebraic Approach. Using the algebraic laws of programs [9, 8] one may try to calculate ecient solutions to the problems by program transformation. For instance, Bird derived a linear algorithm to solve the maximum segment sum problem [9], which is a maximum weightsum problem on lists. Bird and de Moor [8] demonstrated the derivation of a greedy linear functional algorithm for the party planning problem. However, the success of derivation usually depends on a powerful calculation theorem and requires careful and insightful justi ....
[Article contains additional citation context not shown here]
R. S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122-126, 1989.
....a processor array is characterised in terms of skeletons. The Bird Meertens Formalism (BMF) Bir87a] is a calculus for deriving efficient programs from problem specifications. A theory in BMF describes the behaviour of a datatype (e.g. a list) and provides a set of operators on that datatype [Bir89] together with some transformational rules relating the operators. For details on the set of BMF operators on lists, see Chapter 4) The theory was originally developed in the context of sequential programming, in order to provide a formal basis for step by step transformation of a, possibly, ....
....model by testing it on example programs. Chapter 3 Overview of the HOPP Model 3.1 Introduction This chapter presents an outline of the HOPP approach to parallel programming. HOPP is based on an implicitly parallel language whose constructs are borrowed from the Bird Meertens Formalism (BMF) Bir89] and FP [Bac78] These constructs are essentially higher order functions which perform useful operations on lists. Most of these functions are inherently parallel and will henceforth be referred to as recognised functions. Since the behaviour of the recognised functions is predetermined, a ....
Richard Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122--126, 1989.
....solution. Bentley [2] uses it as an argument for the benefits of algorithm design, developing in turn cubic, quadratic, O(n log n) and linear algorithms. Kaldewaij [9] among others, use it as we do, as an illustration of program calculation; in particular, this development is inspired by [5]. We use the notation of Gofer [8] but we introduce the necessary notation as we go along. 2.1 The problem Given a list of numbers, the maximum segment sum problem is to compute the maximum of the sums of the contiguous segments of that list. For example, when the list consists of the numbers ....
Richard S. Bird. Algebraic identities for program calculation. Computer Journal, 32(2):122--126, April 1989.
....and selected items are connected, that is, a set of items induces a connected subgraph of the input given tree. We assume weight of items are integers. r MSS Problem [BRS99] This problem is an extension of the maximum segment sum problem, which is a famous problem in program derivation eld [Bir89, Gri90] This problem appears in a problem of data mining, optimum range association rules problem [BRS99] Input is a sequence of numbers. Output is a feasible selection of elements whose sum is maximum in all the feasible element selections. A selection is feasible when selected elements form ....
....are interesting in that they encompass a very large class of optimization problems [BLW87, BPT92] Solving maximum marking problems, however, requires much insightful analysis. There are basically two kinds of approaches. 5 The Algebraic Approach. Using the algebraic laws of programs [Bir89, BdM96] one may try to calculate ecient solutions to the problems by program transformation. For instance, Bird derived a linear algorithm to solve the maximum segment sum problem [Bir89] which is a maximum marking problem on lists. Bird and de Moor [BdM96] demonstrated the derivation of a ....
[Article contains additional citation context not shown here]
Richard Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122-126, 1989.
....ground for homomorphism fusion is given by the category theoretical results on catamorphisms [10] Our Theorems 4 and 5 provide a direct method for testing the applicability of the transformations and computing their results. A version of Theorem 4 in the sequential setting was proved and used in [2,13]. In [5] a version of red ( Phi; Omega ) called recur reduce, is used for parallelizing linear recurrences. An approach dual to ours is taken in our own group [15] a foldl with an analogue of h Phi; Omega Gamma is represented as a composition of four functions: functional products of ....
....improvement on contemporary parallel machines, especially taking into account recent advances in the hardware implementation of the MPI like global operations [9] We have given yet another derivation for the maximum segment sum problem. In the sequential setting, related work was done in [2,13]. We have established a connection between two parallel solutions: an application of Theorem 4 for suffix leads to a solution similar to [5] which, by a further application of Theorem 4 for prefix, is improved and transformed into the solution from [6,12] Our derivation combines the advantages ....
R. Bird. Algebraic identities for program calculation. The Computing Journal, 32:122--126, 1989.
No context found.
Bird, R. S. (1989). Algebraic identities for program calculation. The Computer Journal , 32(2), 122--126.
No context found.
R. S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122-126, 1989.
No context found.
Richard S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122126, 1989.
No context found.
R.S. Bird. Algebraic identities for program calculation. The Computer Journal, 32(2):122--126, February 1989.
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