@inproceedings{reinking2021perceus, author = {Reinking*, Alex and Xie*, Ningning and de Moura, Leonardo and Leijen, Daan}, title = {Perceus: Garbage Free Reference Counting with Reuse}, organization = {SIGPLAN}, booktitle = {The 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI ’21)}, year = {2021}, month = {June}, abstract = {Extended version available as a technical report. We introduce Perceus, an algorithm for precise reference counting with reuse and specialization. Starting from a functional core language with explicit control-flow, Perceus emits precise reference counting instructions such that programs are _garbage free_, where only live references are retained. This enables further optimizations, like reuse analysis that allows for guaranteed in-place updates at runtime. This in turn enables a novel programming paradigm that we call _functional but in-place_ (FBIP). Much like tail-call optimization enables writing loops with regular function calls, reuse analysis enables writing in-place mutating algorithms in a purely functional way. We give a novel formalization of reference counting in a linear resource calculus, and prove that Perceus is sound and garbage free. We show evidence that Perceus, as implemented in Koka, has good performance and is competitive with other state-of-the-art memory collectors.}, publisher = {ACM}, url = {http://approjects.co.za/?big=en-us/research/publication/perceus-garbage-free-reference-counting-with-reuse-2/}, note = {(*) The first two authors contributed equally to this work. Distinguished paper at PLDI'21.}, }