English
Related papers

Related papers: Counting Immutable Beans: Reference Counting Optim…

200 papers

Safe memory reclamation (SMR) schemes are an essential tool for lock-free data structures and concurrent programming. However, manual SMR schemes are notoriously difficult to apply correctly, and automatic schemes, such as reference…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-04-13 Daniel Anderson , Guy E. Blelloch , Yuanhao Wei

Current garbage collectors leave a lot of garbage uncollected because they conservatively approximate liveness by reachability from program variables. In this paper, we describe a sequence of static analyses that takes as input a program…

Programming Languages · Computer Science 2007-10-09 Amey Karkare , Amitabha Sanyal , Uday Khedker

Selecting the right compiler optimisations has a severe impact on programs' performance. Still, the available optimisations keep increasing, and their effect depends on the specific program, making the task human intractable. Researchers…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-05-12 Stefano Cereda , Gianluca Palermo , Paolo Cremonesi , Stefano Doni

We consider the problem of reducing the memory required to run lazy first-order functional programs. Our approach is to analyze programs for liveness of heap-allocated data. The result of the analysis is used to preserve only live data---a…

Programming Languages · Computer Science 2016-05-03 Prasanna Kumar. K , Amitabha Sanyal , Amey Karkare

In this paper, we are interested in memoryless computation, a modern paradigm to compute functions which generalises the famous XOR swap algorithm to exchange the contents of two variables without using a buffer. This uses a combinatorial…

Computational Complexity · Computer Science 2015-03-19 Maximilien Gadouleau , Soren Riis

Memoryless computation is a new technique to compute any function of a set of registers by updating one register at a time while using no memory. Its aim is to emulate how computations are performed in modern cores, since they typically…

Computational Complexity · Computer Science 2013-10-23 Peter J. Cameron , Ben Fairbairn , Maximilien Gadouleau

It is well known that modern functional programming languages are naturally amenable to parallel programming. Achieving efficient parallelism using functional languages, however, remains difficult. Perhaps the most important reason for this…

Programming Languages · Computer Science 2018-02-20 Adrien Guatto , Sam Westrick , Ram Raghunathan , Umut Acar , Matthew Fluet

Concurrent and parallel programming is difficult due to the presence of memory side-effects, which may introduce data races. Type qualifiers, such as reference capabilities, can remove data races by restricting sharing of mutable data.…

Programming Languages · Computer Science 2019-10-16 Kiko Fernandez-Reyes , Isaac Oscar Gariano , James Noble , Tobias Wrigstad

Unrestricted mutation of shared state is a source of many well-known problems. The predominant safe solutions are pure functional programming, which bans mutation outright, and flow sensitive type systems, which depend on sophisticated…

Programming Languages · Computer Science 2021-06-25 Dimitri Racordon , Denys Shabalin , Daniel Zheng , Dave Abrahams , Brennan Saeta

Functional programming languages use garbage collection for heap memory management. Ideally, garbage collectors should reclaim all objects that are dead at the time of garbage collection. An object is dead at an execution instant if it is…

Programming Languages · Computer Science 2007-05-23 Amey Karkare , Uday Khedker , Amitabha Sanyal

Much software, whether beneficent or malevolent, is distributed only as binaries, sans source code. Absent source code, understanding binaries' behavior can be quite challenging, especially when compiled under higher levels of compiler…

Software Engineering · Computer Science 2021-09-20 Toufique Ahmed , Premkumar Devanbu , Anand Ashok Sawant

Model counting ($\#\text{SAT}$) is a fundamental yet $\#\text{P}$-complete problem central to probabilistic reasoning. In this work, we address \textit{incremental model counting}, where sequences of structurally similar formulas must be…

Logic in Computer Science · Computer Science 2026-05-04 Uriya Bartal , Dror Fried , Jean-Marie Lagniez

Memory reclamation for lock-based data structures is typically easy. However, it is a significant challenge for lock-free data structures. Automatic techniques such as garbage collection are inefficient or use locks, and non-automatic…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-12-05 Trevor Brown

Programmers routinely trade space for time to increase performance, often in the form of caching or memoization. In managed languages like Java or JavaScript, however, this space-time tradeoff is complex. Using more space translates into…

Programming Languages · Computer Science 2016-10-18 Diogenes Nunez , Samuel Z. Guyer , Emery D. Berger

Functional programming languages are particularly well-suited for building automated reasoning systems, since (among other reasons) a logical term is well modeled by an inductive type, traversing a term can be implemented generically as a…

Programming Languages · Computer Science 2020-06-02 Daniel Selsam , Simon Hudon , Leonardo de Moura

Incrementalization speeds up computations by avoiding unnecessary recomputations and by efficiently reusing previous results. While domain-specific techniques achieve impressive speedups, e.g., in the context of database queries, they are…

Programming Languages · Computer Science 2026-05-26 Timon Böhler , Tobias Reinhard , David Richter , Mira Mezini

Detecting buffer overruns from a source code is one of the most common and yet challenging tasks in program analysis. Current approaches have mainly relied on rigid rules and handcrafted features devised by a few experts, limiting…

Software Engineering · Computer Science 2017-03-08 Min-je Choi , Sehun Jeong , Hakjoo Oh , Jaegul Choo

This paper is about the interface between languages which use a garbage collector and those which use fancy types for safe manual memory management. Garbage collection is the traditional memory management scheme for functional languages,…

Programming Languages · Computer Science 2018-07-03 Alan Jeffrey

In continual learning, a model learns incrementally over time while minimizing interference between old and new tasks. One of the most widely used approaches in continual learning is referred to as replay. Replay methods support interleaved…

Computer Vision and Pattern Recognition · Computer Science 2024-05-13 Truman Hickok , Dhireesha Kudithipudi

Multiversioning is widely used in databases, transactional memory, and concurrent data structures. It can be used to support read-only transactions that appear atomic in the presence of concurrent update operations. Any system that…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-01-10 Yuanhao Wei , Guy E. Blelloch , Panagiota Fatourou , Eric Ruppert
‹ Prev 1 2 3 10 Next ›