Polymorphic type reconstruction for garbage collection without tags

Benjamin Goldberg, Michael Gloger

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Several papers ([Appel89],[Goldberg91]) have recently claimed that garbage collection can be performed on untagged data in the presence of ML-style type polymorphism. They rely on the ability to reconstruct the type of any reachable object during garbage collection. The bad news is that this is false - there can be reachable objects in the program whose type cannot be determined by the garbage collector. The good news is that tag-free garbage collection can be performed anyway - any object whose type cannot be determined by the collector is, in fact, garbage. Such objects can be discarded by the collector. This is the key result of this paper. We present a type reconstruction algorithm that can determine the type of any non-garbage object. Unfortunately, the implementation of the tag-free collector for a polymorphically typed language is difficult in ways that were not described in the previous papers, and we address some implementation issues as well. However, we mainly describe how to perform type reconstruction during garbage collection and do not attempt to address practical issues of the garbage collection process.

Original languageEnglish (US)
Title of host publicationProc 92 ACM Conf Lisp Funct Program
PublisherPubl by ACM
Pages53-65
Number of pages13
ISBN (Print)0897914813
StatePublished - 1992
EventProceedings of the 1992 ACM Conference on Lisp and Functional Programming - San Francisco, CA, USA
Duration: Jun 22 1992Jun 24 1992

Other

OtherProceedings of the 1992 ACM Conference on Lisp and Functional Programming
CitySan Francisco, CA, USA
Period6/22/926/24/92

Fingerprint

Polymorphism

ASJC Scopus subject areas

  • Engineering(all)

Cite this

Goldberg, B., & Gloger, M. (1992). Polymorphic type reconstruction for garbage collection without tags. In Proc 92 ACM Conf Lisp Funct Program (pp. 53-65). Publ by ACM.

Polymorphic type reconstruction for garbage collection without tags. / Goldberg, Benjamin; Gloger, Michael.

Proc 92 ACM Conf Lisp Funct Program. Publ by ACM, 1992. p. 53-65.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Goldberg, B & Gloger, M 1992, Polymorphic type reconstruction for garbage collection without tags. in Proc 92 ACM Conf Lisp Funct Program. Publ by ACM, pp. 53-65, Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, San Francisco, CA, USA, 6/22/92.
Goldberg B, Gloger M. Polymorphic type reconstruction for garbage collection without tags. In Proc 92 ACM Conf Lisp Funct Program. Publ by ACM. 1992. p. 53-65
Goldberg, Benjamin ; Gloger, Michael. / Polymorphic type reconstruction for garbage collection without tags. Proc 92 ACM Conf Lisp Funct Program. Publ by ACM, 1992. pp. 53-65
@inproceedings{a5db585ed32744b295dc90705dac57f4,
title = "Polymorphic type reconstruction for garbage collection without tags",
abstract = "Several papers ([Appel89],[Goldberg91]) have recently claimed that garbage collection can be performed on untagged data in the presence of ML-style type polymorphism. They rely on the ability to reconstruct the type of any reachable object during garbage collection. The bad news is that this is false - there can be reachable objects in the program whose type cannot be determined by the garbage collector. The good news is that tag-free garbage collection can be performed anyway - any object whose type cannot be determined by the collector is, in fact, garbage. Such objects can be discarded by the collector. This is the key result of this paper. We present a type reconstruction algorithm that can determine the type of any non-garbage object. Unfortunately, the implementation of the tag-free collector for a polymorphically typed language is difficult in ways that were not described in the previous papers, and we address some implementation issues as well. However, we mainly describe how to perform type reconstruction during garbage collection and do not attempt to address practical issues of the garbage collection process.",
author = "Benjamin Goldberg and Michael Gloger",
year = "1992",
language = "English (US)",
isbn = "0897914813",
pages = "53--65",
booktitle = "Proc 92 ACM Conf Lisp Funct Program",
publisher = "Publ by ACM",

}

TY - GEN

T1 - Polymorphic type reconstruction for garbage collection without tags

AU - Goldberg, Benjamin

AU - Gloger, Michael

PY - 1992

Y1 - 1992

N2 - Several papers ([Appel89],[Goldberg91]) have recently claimed that garbage collection can be performed on untagged data in the presence of ML-style type polymorphism. They rely on the ability to reconstruct the type of any reachable object during garbage collection. The bad news is that this is false - there can be reachable objects in the program whose type cannot be determined by the garbage collector. The good news is that tag-free garbage collection can be performed anyway - any object whose type cannot be determined by the collector is, in fact, garbage. Such objects can be discarded by the collector. This is the key result of this paper. We present a type reconstruction algorithm that can determine the type of any non-garbage object. Unfortunately, the implementation of the tag-free collector for a polymorphically typed language is difficult in ways that were not described in the previous papers, and we address some implementation issues as well. However, we mainly describe how to perform type reconstruction during garbage collection and do not attempt to address practical issues of the garbage collection process.

AB - Several papers ([Appel89],[Goldberg91]) have recently claimed that garbage collection can be performed on untagged data in the presence of ML-style type polymorphism. They rely on the ability to reconstruct the type of any reachable object during garbage collection. The bad news is that this is false - there can be reachable objects in the program whose type cannot be determined by the garbage collector. The good news is that tag-free garbage collection can be performed anyway - any object whose type cannot be determined by the collector is, in fact, garbage. Such objects can be discarded by the collector. This is the key result of this paper. We present a type reconstruction algorithm that can determine the type of any non-garbage object. Unfortunately, the implementation of the tag-free collector for a polymorphically typed language is difficult in ways that were not described in the previous papers, and we address some implementation issues as well. However, we mainly describe how to perform type reconstruction during garbage collection and do not attempt to address practical issues of the garbage collection process.

UR - http://www.scopus.com/inward/record.url?scp=0027005143&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0027005143&partnerID=8YFLogxK

M3 - Conference contribution

SN - 0897914813

SP - 53

EP - 65

BT - Proc 92 ACM Conf Lisp Funct Program

PB - Publ by ACM

ER -