Results 11  20
of
79
SVP  a Model Capturing Sets, Streams, and Parallelism
 In Proceedings of the 18th VLDB Conference
, 1992
"... We describe the SVP data model. The goal of SVP is to model both set and stream data, and to model parallelism in bulk data processing. SVP also shows promise for other parallel processing applications. SVP models collections, which include sets and streams as special cases. Collections are represen ..."
Abstract

Cited by 22 (0 self)
 Add to MetaCart
We describe the SVP data model. The goal of SVP is to model both set and stream data, and to model parallelism in bulk data processing. SVP also shows promise for other parallel processing applications. SVP models collections, which include sets and streams as special cases. Collections are represented as ordered tree structures, and divideandconquer mappings are easily defined on these structures. We show that many useful database mappings (queries) have a divideandconquer format when specified using collections, and that this specification exposes parallelism. We formalize a class of divideandconquer mappings on collections called SVPtransducers. SVPtransducers generalize aggregates, set mappings, stream transductions, and scan computations. At the same time, they have a rigorous semantics based on continuity with respect to collection orderings, and permit implicit specification of both independent and pipeline parallelism. 1 Introduction Achieving parallelism in bulk data...
Proof Methods for Corecursive Programs
 Fundamenta Informaticae Special Issue on Program Transformation
, 1999
"... This article is a tutorial on four methods for proving properties of corecursive programs: fixpoint induction, the approximation lemma, coinduction, and fusion. ..."
Abstract

Cited by 21 (6 self)
 Add to MetaCart
This article is a tutorial on four methods for proving properties of corecursive programs: fixpoint induction, the approximation lemma, coinduction, and fusion.
Combinator Parsers: From Toys to Tools
, 2001
"... We develop, in a stepwise fashion, a set of parser combinators for constructing deterministic, errorcorrecting parsers. The only restriction on the grammar is that it is not left recursive. Extensive use is made of lazy evaluation, and the parsers constructed "analyze themselves". Our new combinato ..."
Abstract

Cited by 14 (1 self)
 Add to MetaCart
We develop, in a stepwise fashion, a set of parser combinators for constructing deterministic, errorcorrecting parsers. The only restriction on the grammar is that it is not left recursive. Extensive use is made of lazy evaluation, and the parsers constructed "analyze themselves". Our new combinators may be used for the construction of large parsers to be used in compilers in practical use. Categories and Subject Descriptors D.1.1 [Programming techniques]: Applicative (functional) programming; D.3.3 [Programming languages]: Language Constructs and features; D.3.4 [Programming languages]: Processorsparsing,translator writing systems and compiler generators; D.3.4 [Programming languages]: Language ClassificationApplicative (functional) languages General Terms parser combinators, error correction, deterministic, partial evaluation, parser generators, program analysis, lazy evaluation, polymorphism 1. INTRODUCTION There exist many di#erent implementations of the basic parse...
An Introduction to Landin's "A Generalization of Jumps and Labels "
"... . This note introduces Peter Landin's 1965 technical report "A Generalization of Jumps and Labels", which is reprinted in this volume. Its aim is to make that historic paper more accessible to the reader and to help reading it in context. To this end, we explain Landin's control operator J in more c ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
. This note introduces Peter Landin's 1965 technical report "A Generalization of Jumps and Labels", which is reprinted in this volume. Its aim is to make that historic paper more accessible to the reader and to help reading it in context. To this end, we explain Landin's control operator J in more contemporary terms, and we recall Burge's solution to a technical problem in Landin's original account. Keywords: Joperator, secdmachine, call/cc, goto, history of programming languages 1. Introduction In the mid1960's, Peter Landin was exploring functional programming extended with control. Initially, Landin had added the control operator J (for jump) to his language of Applicative Expressions in order to explicate the goto statement from Algol 60 [10]. This general control construct, however, was powerful enough to have independent interest quite beyond the application to Algol: Landin wrote a series of technical reports [11, 12, 13] on functional programming with control, the most si...
Proof Methods for Structured Corecursive Programs
, 1999
"... Corecursive programs produce values of greatest fixpoint types, in contrast to recursive programs, which consume values of least fixpoint types. There are a number of widely used methods for proving properties of corecursive programs, including fixpoint induction, the take lemma, and coinduction. Ho ..."
Abstract

Cited by 12 (4 self)
 Add to MetaCart
Corecursive programs produce values of greatest fixpoint types, in contrast to recursive programs, which consume values of least fixpoint types. There are a number of widely used methods for proving properties of corecursive programs, including fixpoint induction, the take lemma, and coinduction. However, these methods are all rather lowlevel, in the sense that they do not exploit the common structure that is often present in corecursive definitions. We argue for a more structured approach to proving properties of corecursive programs. In particular, we show that by writing corecursive programs using an operator called unfold that encapsulates a common pattern of corecursive de nition, we can then use highlevel algebraic properties of this operator to conduct proofs in a purely calculational style that avoids the use of either induction or coinduction.
Precedences in Specifications and Implementations of Programming Languages
 Theoretical Computer Science
, 1991
"... Although precedences are often used to resolve ambiguities in programming language descriptions, there has been no parserindependent definition of languages which are generated by grammars with precedence rules. This paper gives such a definition for a subclass of contextfree grammars. The defi ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
Although precedences are often used to resolve ambiguities in programming language descriptions, there has been no parserindependent definition of languages which are generated by grammars with precedence rules. This paper gives such a definition for a subclass of contextfree grammars. The definition is shown to be equivalent to the implicit definition an operator precedence parser gives. A problem with a language containing infix, prefix and postfix operators of different precedences is that the wellknown algorithm, which transforms a grammar with infix operator precedences to an ordinary unambiguous contextfree grammar, does not work. This paper gives an algorithm that works also for prefix and postfix operators, and the correctness of it is proved. An application of the algorithm is also presented. 1 Introduction Precedences are used in many language descriptions to resolve ambiguities. The reason for resolving ambiguities with precedences, instead of using an unambig...
Parser combinators for ambiguous leftrecursive grammars
 In ????, pages
, 2007
"... Abstract. Parser combinators are higherorder functions used to build parsers as executable specifications of grammars. Some existing implementations are only able to handle limited ambiguity, some have exponential time and/or space complexity for ambiguous input, most cannot accommodate leftrecurs ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
Abstract. Parser combinators are higherorder functions used to build parsers as executable specifications of grammars. Some existing implementations are only able to handle limited ambiguity, some have exponential time and/or space complexity for ambiguous input, most cannot accommodate leftrecursive grammars. This paper describes combinators, implemented in Haskell, which overcome all of these limitations.