## REPRESENTATIONS OF STREAM PROCESSORS USING NESTED FIXED POINTS (2008)

### BibTeX

@MISC{A08representationsof,

author = {Peter Hancock A and Dirk Pattinson B and Neil Ghani C},

title = {REPRESENTATIONS OF STREAM PROCESSORS USING NESTED FIXED POINTS},

year = {2008}

}

### OpenURL

### Abstract

Vol. 5 (3:9) 2009, pp. 1–17 www.lmcs-online.org

### Citations

169 | Generalising monads to arrows
- Hughes
- 2000
(Show Context)
Citation Context ...he form of the functions (α0 �) in our constructions. Nor have we yet considered representations of uniformly continuous functions. The notion of arrow, introduced to functional programming by Hughes =-=[10]-=- was developed to express compositional infrastructure in programming generalising that of Kleisli morphisms for a monad, and crucially interacting with a tensor combinator according to some reasonabl... |

137 | Elements of Intuitionism - Dummett - 1977 |

132 |
A correspondence between ALGOL 60 and Church’s lambda-notation: Part I
- Landin
- 1965
(Show Context)
Citation Context ...re-full streams inhabit coinductive types for more elaborate functors than (A×), but they are not substantially different. The earliest form of IO in functional programming languages was stream based =-=[12]-=-: a executable program was a (possibly asynchronous) stream processor. Experience quickly showed it is easy to make mistakes in programs using asynchronous interfaces. Mature implementations of IO int... |

105 |
Functional programming and Input/Output
- Gordon
- 1994
(Show Context)
Citation Context ...rms of feedback, or looping. Acknowledgments. Our colleagues Altenkirch and Swierstra have in unpublished work considered the broad topic of modelling impure (effectful) phenomena such as teletype IO =-=[5]-=-, mutable heap variables and multithreading. We are grateful to them for interesting conversations on the topic of stream IO, and in particular for pointing out (and debugging) the ‘greedy’ form of co... |

52 | Rudiments of µ-calculus
- Arnold, Niwiński
- 2001
(Show Context)
Citation Context ...Buchholz in [3]. Another connection that might be made is with Brotherston and Simpson’s non-wellfounded proof systems in [2]. Yet another is with Niwiński and Walukiewicz’s infinitary proof trees in =-=[15]-=-. Stream processing is a very venerable approach to systems design. Streams were used in a central way in the OS6 operating system of Stoy and Strachey [16], as well as in commercial operating systems... |

51 | Arrows, robots, and functional reactive programming
- Hudak, Courtney, et al.
- 2003
(Show Context)
Citation Context ...ilable for building up stream processors. Implementations of Fudgets with Haskell have been used to build powerful user interaction (mouse, keyboard, display) interfaces. The programming system Yampa =-=[9]-=-, which has been used to produce code for robots (among other things) uses a synchronous dataflow metaphor, that is well aligned with classical control theory, with its signal processors and feedback ... |

24 |
OS6 An experimental operating system for a small computer. Part I: General principles and structure
- Stoy, Strachey
- 1972
(Show Context)
Citation Context ...and Walukiewicz’s infinitary proof trees in [15]. Stream processing is a very venerable approach to systems design. Streams were used in a central way in the OS6 operating system of Stoy and Strachey =-=[16]-=-, as well as in commercial operating systems. The Unix piping system, introduced by McIlroy, is stream based, with buffering handled by the system. In practical programming, a stream facility is16 P.... |

21 | Erratic fudgets: A semantic theory for an embedded coordination language
- Moran, Sands, et al.
- 2003
(Show Context)
Citation Context ..., in a productive or contractive fashion. Some early functional operating systems [11] also used streams (sometimes in a ring) for communication among system processes. The programming system Fudgets =-=[14]-=- is based on a representation of stream processors similar to the one in this paper, but without our separation of final from initial fixed points. Fudgets are a language for asynchronous stream proce... |

18 | Complete Sequent Calculi for Induction and Infinite Descent
- Brotherston, Simpson
- 2007
(Show Context)
Citation Context ... so connect our work with Mints’ continuous cut-elimination [13], analysed by Buchholz in [3]. Another connection that might be made is with Brotherston and Simpson’s non-wellfounded proof systems in =-=[2]-=-. Yet another is with Niwiński and Walukiewicz’s infinitary proof trees in [15]. Stream processing is a very venerable approach to systems design. Streams were used in a central way in the OS6 operati... |

17 |
Finite investigations of transfinite derivations
- Mints
- 1978
(Show Context)
Citation Context ...her laborious. On the other hand, it could well be worthwhile. Endofunctors of that kind would allow us to model non-wellfounded proofs, and so connect our work with Mints’ continuous cut-elimination =-=[13]-=-, analysed by Buchholz in [3]. Another connection that might be made is with Brotherston and Simpson’s non-wellfounded proof systems in [2]. Yet another is with Niwiński and Walukiewicz’s infinitary p... |

16 |
Beauty in the beast: A functional semantics of the awkward squad
- Swierstra, Altenkirch
- 2007
(Show Context)
Citation Context ...them for interesting conversations on the topic of stream IO, and in particular for pointing out (and debugging) the ‘greedy’ form of composition mentioned in section 4. Their model of teletype IO in =-=[17]-=-,STREAM PROCESSORS USING NESTED FIXED POINTSSHORT TITLE 17 while close to that expounded in this paper, does not address productivity and continuity. Finally we thank the referees for their close scr... |

16 | Ensuring streams flow
- Telford, Turner
- 1997
(Show Context)
Citation Context ...ctive functions, because of Banach’s fixed point theorem (see the references in the paper [3]). This states that contractive functions have unique fixed points. In their paper “Ensuring streams flow” =-=[19]-=- Turner and Telford have analysed a productivity requirement for ensuring unique solutions of recursion equations. Productivity seems to be closely related to contractive functions. From another persp... |

15 |
Functional programming and operating systems
- Jones, Sinclair
- 1989
(Show Context)
Citation Context ... of IO interfaces are therefore based on synchronous processing, consuming response streams to produce request streams, in a productive or contractive fashion. Some early functional operating systems =-=[11]-=- also used streams (sometimes in a ring) for communication among system processes. The programming system Fudgets [14] is based on a representation of stream processors similar to the one in this pape... |

14 | Memo functions, polytypically
- Hinze
- 2000
(Show Context)
Citation Context ... if they are needed again. For example, the representation of functions on finitary inductive types by coinductive trees (in general, final coalgebras for certain rank 2 functors) discovered by Hinze =-=[7]-=- and Altenkirch [1] have this property. The same phenomenon may occur with our representation of stream functions. However their work is concerned with functions on inductive types, as is natural with... |

13 |
A term calculus for (co-)recursive definitions on streamlike data structures
- Buchholz
- 2005
(Show Context)
Citation Context ...nd, it could well be worthwhile. Endofunctors of that kind would allow us to model non-wellfounded proofs, and so connect our work with Mints’ continuous cut-elimination [13], analysed by Buchholz in =-=[3]-=-. Another connection that might be made is with Brotherston and Simpson’s non-wellfounded proof systems in [2]. Yet another is with Niwiński and Walukiewicz’s infinitary proof trees in [15]. Stream pr... |

13 | Arrows, like monads, are monoids
- Heunen, Jacobs
- 2006
(Show Context)
Citation Context ...ess compositional infrastructure in programming generalising that of Kleisli morphisms for a monad, and crucially interacting with a tensor combinator according to some reasonable laws. The reference =-=[6]-=- provides a useful perspective. Abstractly, an arrow is a monoid in a certain category of bifunctors. Our stream processors behave quite well with respect to composition (·), but it is not clear to us... |

12 | Representations of first order function types as terminal coalgebras
- Altenkirch
- 2001
(Show Context)
Citation Context ... again. For example, the representation of functions on finitary inductive types by coinductive trees (in general, final coalgebras for certain rank 2 functors) discovered by Hinze [7] and Altenkirch =-=[1]-=- have this property. The same phenomenon may occur with our representation of stream functions. However their work is concerned with functions on inductive types, as is natural with initial algebras, ... |

10 |
Transfinite induction and bar induction of types zero and one, and the role of continuity in intuitionistic analysis
- Howard, Kreisel
- 1966
(Show Context)
Citation Context ...ng but fallacious1 argument in three articles. There is an extensive discussion of Brouwer’s argument by Dummett in [4, pp 68–75], and a more formal analysis of bar induction by Howard and Kreisel in =-=[8]-=-. A very penetrating discussion of bar induction that is closely related to our representation of continuous functions by well-founded trees is given by Tait in [18]. The inspiration for our represent... |

6 |
Constructive Reasoning
- Tait
- 1968
(Show Context)
Citation Context ... induction by Howard and Kreisel in [8]. A very penetrating discussion of bar induction that is closely related to our representation of continuous functions by well-founded trees is given by Tait in =-=[18]-=-. The inspiration for our representation of continuous functions with discrete codomain was in fact Brouwer’s argument for bar-induction, that conjures an inductive structure from a proof of a Π1 1 st... |

1 |
Total functional programming. Journal of Universal Computer Science, 10(7):751–768, 2004. visit������ ������ This work is licensed under the Creative Commons Attribution-NoDerivs License. To view a copy of this license, or send a letter to Creative
- Turner
(Show Context)
Citation Context ...yond the scope of the type system. Our approach guarantees that the stream processors are total. So it might be better expressed in a language for total functional programming, as advocated by Turner =-=[21]-=-, and approximated in systems such as Epigram and Agda. This means that evaluation of the constructor form of the value of a function at an argument in its domain must terminate, in our opinion someth... |