11,608 research outputs found
Liveness-Based Garbage Collection for Lazy Languages
We consider the problem of reducing the memory required to run lazy
first-order functional programs. Our approach is to analyze programs for
liveness of heap-allocated data. The result of the analysis is used to preserve
only live data---a subset of reachable data---during garbage collection. The
result is an increase in the garbage reclaimed and a reduction in the peak
memory requirement of programs. While this technique has already been shown to
yield benefits for eager first-order languages, the lack of a statically
determinable execution order and the presence of closures pose new challenges
for lazy languages. These require changes both in the liveness analysis itself
and in the design of the garbage collector.
To show the effectiveness of our method, we implemented a copying collector
that uses the results of the liveness analysis to preserve live objects, both
evaluated (i.e., in WHNF) and closures. Our experiments confirm that for
programs running with a liveness-based garbage collector, there is a
significant decrease in peak memory requirements. In addition, a sizable
reduction in the number of collections ensures that in spite of using a more
complex garbage collector, the execution times of programs running with
liveness and reachability-based collectors remain comparable
Finitary languages
The class of omega-regular languages provides a robust specification language
in verification. Every omega-regular condition can be decomposed into a safety
part and a liveness part. The liveness part ensures that something good happens
"eventually". Finitary liveness was proposed by Alur and Henzinger as a
stronger formulation of liveness. It requires that there exists an unknown,
fixed bound b such that something good happens within b transitions. In this
work we consider automata with finitary acceptance conditions defined by
finitary Buchi, parity and Streett languages. We study languages expressible by
such automata: we give their topological complexity and present a
regular-expression characterization. We compare the expressive power of
finitary automata and give optimal algorithms for classical decisions
questions. We show that the finitary languages are Sigma 2-complete; we present
a complete picture of the expressive power of various classes of automata with
finitary and infinitary acceptance conditions; we show that the languages
defined by finitary parity automata exactly characterize the star-free fragment
of omega B-regular languages; and we show that emptiness is NLOGSPACE-complete
and universality as well as language inclusion are PSPACE-complete for finitary
parity and Streett automata
- …