Perceus: Garbage Free Reference Counting with Reuse

Mon 25 January 2021

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 …

Continue reading »

Formal Semantics For the Halide Language

Fri 01 May 2020

Halide is a domain-specific language for building and optimizing numerical pipelines for applications in image processing, neural networks, and linear algebra. Its distinctive separation of what to compute — the algorithm— from the organization of that computation — the schedule— enables programmers to focus on the optimization of their programs without reasoning …

Continue reading »

A Type-Directed Approach to Program Repair

Thu 16 July 2015

Programmers working in modern object-oriented languages often need to compose several large, complicated libraries together with in-house code while developing enterprise software. As these libraries evolve, legacy code that depends on deprecated declarations sometimes breaks. Many transformations can break legacy code. For example, changing the name or signature of a …

Continue reading »