Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/143095.143140acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Compiler support for garbage collection in a statically typed language

Published: 01 July 1992 Publication History
  • Get Citation Alerts
  • Abstract

    We consider the problem of supporting compacting garbage collection in the presence of modern compiler optimizations. Since our collector may move any heap object, it must accurately locate, follow, and update all pointers and values derived from pointers. To assist the collector, we extend the compiler to emit tables describing live pointers, and values derived from pointers, at each program location where collection may occur. Significant results include identification of a number of problems posed by optimizations, solutions to those problems, a working compiler, and experimental data concerning table sizes, table compression, and time overhead of decoding tables during collection. While gc support can affect the code produced, our sample programs show no significant changes, the table sizes are a modest fraction of the size of the optimized code, and stack tracing is a small fraction of total gc time. Since the compiler enhancements are also modest, we conclude that the approach is practical.

    References

    [1]
    M. Atkinson, K. Chisolm, and P. Cockshott, "PS-AlgoI: an Algol with a persistent heap," ACM SIGPLAN Not., vol. 17, pp. 24-31, July 1982.
    [2]
    G. Nelson, ed., Systems Programming in Modula-3. New Jersey: Prentice Hall, 1991.
    [3]
    J.E.B. Moss, "Implementing persistence for an object oriented language," COINS Technical Report 87-69, University of Massachusetts, Amherst, MA 01003, Sept. 1987.
    [4]
    A.L. Hosking, "Main memory management for persistence," Oct. 1991. Position paper for OOPSLA '91 Workshop on Garbage Collection.
    [5]
    J. F. Bartlett,"Compacting garbage collection with ambiguous roots," Research Report 88/2, Western Research Laboratory, Digital Equipment Corporation, Feb. 1988.
    [6]
    J. F. Bartlett, "Mostly-copying garbage collection picks up generations and C++," Technical Note TN. 12, Western Research Laboratory, Digital Equipment Corporation, Palo Alto, CA 94301, Oct. 1989.
    [7]
    R.M. Stallman, GCC. Free Software Foundation, Cambridge, MA.
    [8]
    H.-J. Boehm and M. Weiser, "Garbage collection in an uncooperative environment," Software: Practice and Experience, vol. 18, pp. 807-820, Sept. 1988.
    [9]
    C. Chambers and D. Ungar, "Making pure object oriented languages practical," in Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, (Phoenix, Arizona, Oct. 1991), pp. 1-15, ACM SIGPLAN Not. 26, 11 (Nov. 1991).
    [10]
    S. Harbison. Personal Communication, 1992.
    [11]
    R.P. Gabriel, Performance and Evaluation of Lisp Systems. Cambridge, MA: MIT Press, 1985.
    [12]
    A. L. Hosking, J. E. B. Moss, and D. Stefanovid, "A comparative performance evaluation of write barrier implementations." Submitted for publication, Feb. 1992.
    [13]
    H.-j. Boehm, "A proposal for GC-safe C compilation," Oct. 1991. Position paper for OOPSLA '91 Workshop on Garbage Collection.
    [14]
    D. Ungar, "Generation scavenging: A non-disruptive high performance storage reclamation algorithm," in Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, Pennsylvania, Apr. 1984), pp. 157-167, ACM SIGPLAN Not. 19, 5 (May 1984).
    [15]
    R.L. Hudson, J. E. B. Moss, A. Diwan, and C. F. Weight, "A language-independent garbage collector toolkit," COINS Technical Report 91-47, University of Massachusetts, Amherst, MA 01003, Sept. 1991. Submitted for publication.
    [16]
    P. Branquart and J. Lewi, "A scheme for storage allocation and garbage collection in Algol-68," in Algol 68 Implementation (J. E. L. Peck, ed.), North-Holland Publishing Company, 1971.
    [17]
    B. Goldberg, "Tag-free garbage collection in strongly typed programming languages," in Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, (Toronto, Ontario, Canada, June 1991), pp. 165-176, ACM SIGPLAN Not. 26, 6 (June 1991).
    [18]
    H.-J. Boehm, "Personal communication," July 1991.
    [19]
    A. Diwan, "Exception handling in Modula-3." Internal OOS Document, 1990.
    [20]
    L. W. Zurawski and R. E. Johnson, "Debugging optimized code with expected behavior," ACM Trans. Programming Languages and Systems, To appear.

    Cited By

    View all
    • (2022)A fast in-place interpreter for WebAssemblyProceedings of the ACM on Programming Languages10.1145/35633116:OOPSLA2(646-672)Online publication date: 31-Oct-2022
    • (2020)From folklore to fact: comparing implementations of stacks and continuationsProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3385994(75-90)Online publication date: 11-Jun-2020
    • (2019)Closure conversion is safe for spaceProceedings of the ACM on Programming Languages10.1145/33416873:ICFP(1-29)Online publication date: 26-Jul-2019
    • Show More Cited By

    Index Terms

    1. Compiler support for garbage collection in a statically typed language

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        PLDI '92: Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
        July 1992
        352 pages
        ISBN:0897914759
        DOI:10.1145/143095
        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Sponsors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 01 July 1992

        Permissions

        Request permissions for this article.

        Check for updates

        Qualifiers

        • Article

        Conference

        PLDI92
        Sponsor:

        Acceptance Rates

        Overall Acceptance Rate 406 of 2,067 submissions, 20%

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)72
        • Downloads (Last 6 weeks)17
        Reflects downloads up to 11 Aug 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2022)A fast in-place interpreter for WebAssemblyProceedings of the ACM on Programming Languages10.1145/35633116:OOPSLA2(646-672)Online publication date: 31-Oct-2022
        • (2020)From folklore to fact: comparing implementations of stacks and continuationsProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3385994(75-90)Online publication date: 11-Jun-2020
        • (2019)Closure conversion is safe for spaceProceedings of the ACM on Programming Languages10.1145/33416873:ICFP(1-29)Online publication date: 26-Jul-2019
        • (2014)Fast conservative garbage collectionACM SIGPLAN Notices10.1145/2714064.266019849:10(121-139)Online publication date: 15-Oct-2014
        • (2014)Fast conservative garbage collectionProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660198(121-139)Online publication date: 15-Oct-2014
        • (2009)Accurate garbage collection in uncooperative environments revisitedConcurrency and Computation: Practice and Experience10.1002/cpe.139121:12(1572-1606)Online publication date: 13-Feb-2009
        • (2008)A principled approach to nondeferred reference-counting garbage collectionProceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments10.1145/1346256.1346275(131-140)Online publication date: 5-Mar-2008
        • (2007)Accurate garbage collection in uncooperative environments with lazy pointer stacksProceedings of the 16th international conference on Compiler construction10.5555/1759937.1759944(64-79)Online publication date: 26-Mar-2007
        • (2007)Realtime garbage collection in the JamaicaVM 3.0Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems10.1145/1288940.1288954(94-103)Online publication date: 26-Sep-2007
        • (2007)Application-specific garbage collectionJournal of Systems and Software10.1016/j.jss.2006.12.56680:7(1037-1056)Online publication date: 1-Jul-2007
        • Show More Cited By

        View Options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Get Access

        Login options

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media