TP

Collecting Hollywood's Garbage Avoiding Space-Leaks in Composite Events

Tomas Petricek and Don Syme

In Proceedings of ISMM 2010

The reactive programming model is largely different to what we're used to as we don't have full control over the application's control flow. If we mix the declarative and imperative programming style, which is usual in the ML family of languages, the situation is even more complex. It becomes easy to introduce patterns where the usual garbage collector for objects cannot automatically dispose all components that we intuitively consider garbage.

In this paper we discuss a duality between the definitions of garbage for objects and events. We combine them into a single one, to specify the notion of garbage for reactive programming model in a mixed functional/imperative language and we present a formal algorithm for collecting garbage in this environment.

Building on top of the theoretical model, we implement a library for reactive programming that does not cause leaks when used in the mixed declarative/imperative model. The library allows us to safely combine both of the reactive programming patterns. As a result, we can take advantage of the clarity and simplicity of the declarative approach as well as the expressivity of the imperative model.

Paper and more information

Bibtex

If you want to cite the paper, you can use the following BibTeX information, or get full details from the paper page on ACM.

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
@inproceedings{hollywood-ismm10,
  author    = {Petricek, Tomas and Syme, Don},
  title     = {Collecting {H}ollywood's garbage:
                {A}voiding space-leaks in composite events},
  booktitle = {Proceedings of International Symposium on Memory Management},
  series    = {ISMM 2010},
  location  = {Toronto, Ontario, Canada},
  year      = {2010}
}

If you have any comments, suggestions or related ideas, I'll be happy to hear from you! Send me an email at tomas@tomasp.net or get in touch via Twitter at @tomaspetricek.

Published: Thursday, 11 February 2010, 12:00 AM
Author: Tomas Petricek
Typos: Send me a pull request!