Results 11  20
of
21
Semantics and compilation of sequential streams into a static SIMD code for the declarative dataparallel language
, 1996
"... 81/2 is a dataparallel language that relies on the notions of stream and collection in a highlevel declarative framework. We describe in this research report semantics and compilation of sequential streams of collections for this language. Firstly, a denotational semantics is associated with recur ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
81/2 is a dataparallel language that relies on the notions of stream and collection in a highlevel declarative framework. We describe in this research report semantics and compilation of sequential streams of collections for this language. Firstly, a denotational semantics is associated with recursively defined sequential 81/2 streams. Furthermore, we explain how the fixed point calculus corresponding to the foregoing semantics is implemented. Secondly, we describe an effective code generation scheme targetted towards either sequential, vector or SIMD architectures. Then we present four optimization processes for the generated code: the sharing of common control expressions, the optimization of delay copies, the loop fusion and the concatenation optimization. Next, some elements for the evaluation of the generated code are given. As a conclusion, we recall the overall effectiveness of the stream compilation and draw the future work. Keywords: stream, compilation of dataflow graphs...
Using structural recursion for corecursion
 In Types for Proofs and Programs, International Conference, TYPES 2008, volume 5497 of LNCS
, 2009
"... Abstract. We propose a (limited) solution to the problem of constructing stream values defined by recursive equations that do not respect the guardedness condition. The guardedness condition is imposed on definitions of corecursive functions in Coq, AGDA, and other higherorder proof assistants. In ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Abstract. We propose a (limited) solution to the problem of constructing stream values defined by recursive equations that do not respect the guardedness condition. The guardedness condition is imposed on definitions of corecursive functions in Coq, AGDA, and other higherorder proof assistants. In this paper, we concentrate in particular on those nonguarded equations where recursive calls appear under functions. We use a correspondence between streams and functions over natural numbers to show that some classes of nonguarded definitions can be modelled through the encoding as structural recursive functions. In practice, this work extends the class of stream values that can be defined in a constructive type theorybased theorem prover with inductive and coinductive types, structural recursion and guarded corecursion.
Semantics and Compilation of Recursive Sequential Streams in 8 1/2
, 1997
"... Recursive definition of streams (infinite lists of values) have been proposed as a fundamental programming structure in various fields. A problem is to turn such expressive recursive definitions into an efficient imperative code for their evaluation. One of the main approach is to restrict the strea ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Recursive definition of streams (infinite lists of values) have been proposed as a fundamental programming structure in various fields. A problem is to turn such expressive recursive definitions into an efficient imperative code for their evaluation. One of the main approach is to restrict the stream expressions to interpret them as a temporal sequence of values. Such sequential stream rely on a clock analysis to decide at what time a new stream value must be produced. In this paper we present a denotational semantics of recursively defined sequential streams. We show how an efficient implementation can be derived as guarded statements wrapped into a single imperative loop.
Stream Productivity by Outermost Termination
"... Streams are infinite sequences over a given data type. A stream specification is a set of equations intended to define a stream. A core property is productivity: unfolding the equations produces the intended stream in the limit. In this paper we show that productivity is equivalent to termination wi ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Streams are infinite sequences over a given data type. A stream specification is a set of equations intended to define a stream. A core property is productivity: unfolding the equations produces the intended stream in the limit. In this paper we show that productivity is equivalent to termination with respect to the balanced outermost strategy of a TRS obtained by adding an additional rule. For specifications not involving branching symbols balancedness is obtained for free, by which tools for proving outermost termination can be used to prove productivity fully automatically. 1
Representing Contractive Functions on Streams
 UNDER CONSIDERATION FOR PUBLICATION IN THE JOURNAL OF FUNCTIONAL PROGRAMMING
, 2011
"... Streams, or infinite lists, have many applications in functional programming, and are naturally defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they actually produce welldefined streams? In this article we present a new approach to this problem, bas ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Streams, or infinite lists, have many applications in functional programming, and are naturally defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they actually produce welldefined streams? In this article we present a new approach to this problem, based upon the topological notion of contractive functions on streams. In particular, we give a sound and complete representation theorem for contractive functions on streams, illustrate the use of this theorem as a practical means to produce welldefined streams, and show how the efficiency of the resulting definitions can be improved using another representation of contractive functions.
Introduction to Functional Programming using Gofer
, 1990
"... ing out and studying those patterns of computation as useful objects in their own right leads to further insights into the nature of computation. The list operators studied later in these notes follow this approach. ffl Functional programs are usually an order of magnitude more concise than their i ..."
Abstract
 Add to MetaCart
ing out and studying those patterns of computation as useful objects in their own right leads to further insights into the nature of computation. The list operators studied later in these notes follow this approach. ffl Functional programs are usually an order of magnitude more concise than their imperative counterparts. Besides being shorter, they can be much more readable. The functional community like to cite studies that show the number of bugs per line is more or less constant, independent of the level of the language in use. Higherlevel languages encode more concept per line, and therefore have relatively fewer bugs. ffl Functional programs are often more akin to formal specifications than their conventional counterparts. A good notation goes a long way towards solving the problem[47]. ffl Lazy evaluation permits a new approach to some algorithms. It is a simple but powerful idea that can remove the need for explicit backtracking, and can allow the programmer to manipulate in...
Design and Implementation of 8½, a Declarative DataParallel Language
 Computer Languages
, 1995
"... 8 ½, an experimental language combining features of collection and stream oriented languages... ..."
Abstract
 Add to MetaCart
8 ½, an experimental language combining features of collection and stream oriented languages...
On the Complexity of Equivalence of Specifications of Infinite Objects
"... We study the complexity of deciding the equality of infinite objects specified by systems of equations, and of infinite objects specified by λterms. For equational specifications there are several natural notions of equality: equality in all models, equality of the sets of solutions, and equality o ..."
Abstract
 Add to MetaCart
We study the complexity of deciding the equality of infinite objects specified by systems of equations, and of infinite objects specified by λterms. For equational specifications there are several natural notions of equality: equality in all models, equality of the sets of solutions, and equality of normal forms for productive specifications. For λterms we investigate Böhmtree equality and various notions of observational equality. We pinpoint the complexity of each of these notions in the arithmetical or analytical hierarchy. We show that the complexity of deciding equality in all models subsumes the entire analytical hierarchy. This holds already for the most simple infinite objects, viz. streams over {0, 1}, and stands in sharp contrast to the low arithmetical Π 0 2completeness of equality of equationally specified streams derived in [17] employing a different notion of equality.
Representing Contractive Functions on Streams (Extended Version)
 UNDER CONSIDERATION FOR PUBLICATION IN THE JOURNAL OF FUNCTIONAL PROGRAMMING
, 2011
"... Streams, or infinite lists, have many applications in functional programming, and are naturally defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they actually produce welldefined streams? In this article we present a new approach to this problem, bas ..."
Abstract
 Add to MetaCart
Streams, or infinite lists, have many applications in functional programming, and are naturally defined using recursive equations. But how do we ensure that such equations make sense, i.e. that they actually produce welldefined streams? In this article we present a new approach to this problem, based upon the topological notion of contractive functions on streams. In particular, we give a sound and complete representation theorem for contractive functions on streams, illustrate the use of this theorem as a practical means to produce welldefined streams, and show how the efficiency of the resulting definitions can be improved using another representation of contractive functions.