317,210 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
A Method for the Combination of Stochastic Time Varying Load Effects
The problem of evaluating the probability that a structure becomes unsafe under a
combination of loads, over a given time period, is addressed. The loads and load effects
are modeled as either pulse (static problem) processes with random occurrence time, intensity and a specified shape or intermittent continuous (dynamic problem) processes which
are zero mean Gaussian processes superimposed 'on a pulse process. The load coincidence
method is extended to problems with both nonlinear limit states and dynamic responses,
including the case of correlated dynamic responses. The technique of linearization of a
nonlinear limit state commonly used in a time-invariant problem is investigated for timevarying
combination problems, with emphasis on selecting the linearization point. Results
are compared with other methods, namely the method based on upcrossing rate, simpler
combination rules such as Square Root of Sum of Squares and Turkstra's rule. Correlated
effects among dynamic loads are examined to see how results differ from correlated static
loads and to demonstrate which types of load dependencies are most important, i.e., affect'
the exceedance probabilities the most.
Application of the load coincidence method to code development is briefly discussed.National Science Foundation Grants CME 79-18053 and CEE 82-0759
- …