Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Ephemerons: a new finalization mechanism
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Garbage collection and local variable type-precision and liveness in Java virtual machines
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Imperative streams—a monadic combinator library for synchronous programming
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Functional reactive programming from first principles
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Declarative event-oriented programming
Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming
Estimating the impact of heap liveness information on space consumption in Java
Proceedings of the 3rd international symposium on Memory management
Using passive object garbage collection algorithms for garbage collection of active objects
Proceedings of the 3rd international symposium on Memory management
LINQ: reconciling object, relations and XML in the .NET framework
Proceedings of the 2006 ACM SIGMOD international conference on Management of data
Flapjax: a programming language for Ajax applications
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Collecting hollywood's garbage: avoiding space-leaks in composite events
Proceedings of the 2010 international symposium on Memory management
Real World Functional Programming: With Examples in F# and C#
Real World Functional Programming: With Examples in F# and C#
Collecting hollywood's garbage: avoiding space-leaks in composite events
Proceedings of the 2010 international symposium on Memory management
Hi-index | 0.00 |
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.