Productivity of stream definitions
Publication date
2008-11-13
Authors
Endrullis, J.
Grabmayer, C.A.
Hendriks, D.
Isihara, A.
Klop, J.W.
Editors
Advisors
Supervisors
DOI
Document Type
Preprint
Metadata
Show full item recordCollections
License
Abstract
We give an algorithm for deciding productivity of a large and natural class of recursive stream definitions.
A stream definition is called ‘productive’ if it can be evaluated continually in such a way that a uniquely
determined stream in constructor normal form is obtained as the limit. Whereas productivity is undecidable
for stream definitions in general, we show that it can be decided for ‘pure’ stream definitions. For every pure
stream definition the process of its evaluation can be modelled by the dataflow of abstract stream elements,
called ‘pebbles’, in a finite ‘pebbleflow net(work)’. And the production of a pebbleflow net associated with
a pure stream definition, that is, the amount of pebbles the net is able to produce at its output port, can
be calculated by reducing nets to trivial nets.
Keywords
recursive stream definitions, productivity, functional programming, dataflow networks