Publication View

XML Stream Processing Using a Lazy Concurrent Language ∗ Abstract (2008)

Abstract
Motivated by previous work on XML stream processing, we noticed that programmers need concurrency to save space, especially in a lazy language. User-controllable concurrency provides the possibility of reducing space usage in many programs. With lower garbage-collection overhead resulting from concurrent execution, the elapsed time of programs, stream processing ones in particular, is tremendously decreased. The challenge is how to encapsulate concurrency without compromising expressiveness and flexibility of languages. We propose the idea of pushing datatypes — when a pushing closure is demanded, all expressions referring to it are evaluated concurrently to weak head normal forms. The closure is no more alive and may thus be garbage collected. Semantically, it is a non-intruding extension because it does not change the denotational semantics of an expression. It is also easy to be implemented on top of a language providing concurrent threads and inter-thread synchronisation. We have developed a prototype using Haskell and showed pushing datatypes can be used to effectively reduce space usage and thus result in shorter elapsed time in many programs.

Publication details
Download http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.96.8578
Source http://gemo.futurs.inria.fr/events/PLANX2008/papers/p10.pdf
Contributors CiteSeerX
Repository CiteSeerX - Scientific Literature Digital Library and Search Engine (United States)
Keywords Space Leak, Lazy Evaluation, Concurrency
Type text
Language English
Relation 10.1.1.30.8705, 10.1.1.60.8264, 10.1.1.92.6995, 10.1.1.100.4909, 10.1.1.20.608, 10.1.1.83.8321, 10.1.1.33.8720, 10.1.1.10.6782, 10.1.1.46.5423, 10.1.1.11.8332, 10.1.1.135.7939, 10.1.1.78.9091