A Reference-Counting Garbage Collection Algorithm for Cyclical Functional Programming

被引:0
|
作者
Trancon y Widemann, Baltasar [1 ]
机构
[1] Univ Bayreuth, D-95440 Bayreuth, Germany
关键词
memory management; garbage collection; reference counting; cycles; functional programming;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Reference-counting garbage collection is known to have problems with the collection of cyclically connected data. There are two historically significant styles of cycle-aware algorithms: The style of Brownbridge that maintains a subset of marked edges and the invariant that every cycle contains at least one marked edge, and the style of Martinez-Lins-Wachenchauzer (MLW) that involves local mark-and-scan procedures to detect cycles. The former is known to be difficult to design and implement correctly, and the latter to have pathological efficiency for a number of very typical Situations. We present a novel algorithm that combines both approaches to obtain reasonably efficient local mark-and-scan phases with a marking invariant that is rather cheap to maintain. We demonstrate that the assumptions of this algorithm about mutator activity patterns make it well-suited, but not limited, to a functional programming technique for cyclic data. We evaluate the approach in comparison with simple and more sophisticated MLW algorithms using a simple benchmark based oil that functional paradigm.
引用
收藏
页码:71 / 80
页数:10
相关论文
共 50 条
  • [21] A DISTRIBUTED GARBAGE COLLECTION ALGORITHM
    HUGHES, J
    LECTURE NOTES IN COMPUTER SCIENCE, 1985, 201 : 256 - 272
  • [22] Verifying a garbage collection algorithm
    Jackson, PB
    THEOREM PROVING IN HIGHER ORDER LOGICS, 1998, 1479 : 225 - 244
  • [23] Perceus: Garbage Free Reference Counting with Reuse
    Reinking, Alex
    Xie, Ningning
    de Moura, Leonardo
    Leijen, Daan
    PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21), 2021, : 96 - 111
  • [24] Finding Reference-Counting Errors in Python']Python/C Programs with Affine Analysis
    Li, Siliang
    Tan, Gang
    ECOOP 2014 - OBJECT-ORIENTED PROGRAMMING, 2014, 8586 : 80 - 104
  • [25] TRANSFORMATIONAL DERIVATION OF A GARBAGE COLLECTION ALGORITHM
    DEWAR, RBK
    SHARIR, M
    WEIXELBAUM, E
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1982, 4 (04): : 650 - 667
  • [26] AN EFFICIENT DISTRIBUTED GARBAGE COLLECTION ALGORITHM
    LESTER, DR
    LECTURE NOTES IN COMPUTER SCIENCE, 1989, 365 : 207 - 223
  • [27] Garbage Collection for Reversible Functional Languages
    Mogensen, Torben Aegidius
    REVERSIBLE COMPUTATION, RC 2015, 2015, 9138 : 79 - 94
  • [28] An on-the-fly reference counting garbage collector for Java
    Microsoft Corporation, One Microsoft Way, Redmond
    WA
    98052, United States
    不详
    32000, Israel
    ACM SIGPLAN Not., 11 (367-380):
  • [29] Integrating generations with advanced reference counting garbage collectors
    Azatchi, H
    Petrank, E
    COMPLIER CONSTRUCTION, PROCEEDINGS, 2003, 2622 : 185 - 199
  • [30] Integrating generations with advanced reference counting garbage collectors
    Azatchi, Hezi
    Petrank, Erez
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2006, 18 (09): : 959 - 995