Affiliation:
1. Massachusetts Institute of Technology, Cambridge
Abstract
A real-time list processing system is one in which the time required by the elementary list operations (e.g. CONS, CAR, CDR, RPLACA, RPLACD, EQ, and ATOM in LISP) is bounded by a (small) constant. Classical implementations of list processing systems lack this property because allocating a list cell from the heap may cause a garbage collection, which process requires time proportional to the heap size to finish. A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool. The program is small and requires no time-sharing interrupts, making it suitable for microcode. Finally, the system requires the same average time, and not more than twice the space, of a classical implementation, and those space requirements can be reduced to approximately classical proportions by compact list representation. Arrays of different sizes, a program stack, and hash linking are simple extensions to our system, and reference counting is found to be inferior for many applications.
Publisher
Association for Computing Machinery (ACM)
Cited by
303 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. CHERIoT: Complete Memory Safety for Embedded Devices;56th Annual IEEE/ACM International Symposium on Microarchitecture;2023-10-28
2. Deep Dive into ZGC: A Modern Garbage Collector in OpenJDK;ACM Transactions on Programming Languages and Systems;2022-09-21
3. Mako: a low-pause, high-throughput evacuating collector for memory-disaggregated datacenters;Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2022-06-09
4. Low-latency, high-throughput garbage collection;Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2022-06-09
5. Alligator collector: a latency-optimized garbage collector for functional programming languages;Proceedings of the 2020 ACM SIGPLAN International Symposium on Memory Management;2020-06