Algorithms for on-the-fly garbage collection
ACM Transactions on Programming Languages and Systems (TOPLAS)
A distributed garbage collection algorithm
Proc. of a conference on Functional programming languages and computer architecture
Communication and concurrency
The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Polymorphic type reconstruction for garbage collection without tags
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Abstract models of memory management
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
On-the-fly garbage collection: an exercise in cooperation
Communications of the ACM
A Calculus of Communicating Systems
A Calculus of Communicating Systems
Towards a Lambda-Calculus for Concurrent and Communicating Systems
TAPSOFT '89/CAAP '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 1: Advanced Seminar on Foundations of Innovative Software Development I and Colloquium on Trees in Algebra and Programming
Garbage collection and task deletion in distributed applicative processing systems
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Hi-index | 0.00 |
We develop am abstract model of memory management in distributed systems. The model is low-level enough so that we can express communication, allocation and garbage collection, but otherwise hides many of the lower-level details of an actual implementation.Recently, such formal models have been developed for memory management in a functional, sequential setting [10]. The models are rewriting systems whose terms are programs. Programs have both the "code" (control string) and the "store" syntactically apparent. Evaluation is expressed as conditional rewriting and includes store operations. Garbage collection becomes a rewriting relation that removes part of the store without affecting the behavior of the program.Distribution adds another dimension to an already complex problem. By using techniques developed for communicating and concurrent systems [9], we extend their work to a distributed environment. Sending and receiving messages is also made apparent at the syntactic level. A very general garbage collection rule based on reachability is introduced and proved correct. Now proving correct a specific collection strategy is reduced to showing that the relation between programs defined by the strategy is a sub-relation of the general relation. Any actual implementation which is capable of providing the transitions (including their atomicity constraints) specified by the strategy is therefore correct.This model allows us to specify and prove correct in a compact manner two garbage collectors; the first one does a simple garbage collection local to a node. The second garbage collector uses migration of data in order to be able to reclaim inter-node cyclic garbage.