Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleOctober 2024
The ART of Sharing Points-to Analysis: Reusing Points-to Analysis Results Safely and Efficiently
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 363, Pages 2606–2632https://doi.org/10.1145/3689803Data-flow analyses like points-to analysis can vastly improve the precision of other analyses, and enable powerful code optimizations. However, whole-program points-to analysis of large Java programs tends to be expensive – both in terms of time and ...
- research-articleOctober 2024
A Case for First-Class Environments
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 360, Pages 2521–2550https://doi.org/10.1145/3689800Formalizations of programming languages typically adopt the substitution model from the lambda calculus. However, substitution creates notorious complications for reasoning and implementation. Furthermore, it is disconnected from practical ...
- research-articleOctober 2024
When Your Infrastructure Is a Buggy Program: Understanding Faults in Infrastructure as Code Ecosystems
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 359, Pages 2490–2520https://doi.org/10.1145/3689799Modern applications have become increasingly complex and their manual installation and configuration is no longer practical. Instead, IT organizations heavily rely on Infrastructure as Code (IaC) technologies, to automate the provisioning, configuration, ...
- research-articleOctober 2024
Effect Handlers for C via Coroutines
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 358, Pages 2462–2489https://doi.org/10.1145/3689798Effect handlers provide a structured means for implementing user-defined, composable, and customisable computational effects, ranging from exceptions to generators to lightweight threads. We introduce libseff, a novel effect handlers library for C, based ...
- research-articleOctober 2024
Sound and Partially-Complete Static Analysis of Data-Races in GPU Programs
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 357, Pages 2434–2461https://doi.org/10.1145/3689797GPUs are progressively being integrated into modern society, playing a pivotal role in Artificial Intelligence and High-Performance Computing. Programmers need a deep understanding of the GPU programming model to avoid subtle data-races in their codes. ...
-
Practical Verification of Smart Contracts using Memory Splitting
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 356, Pages 2402–2433https://doi.org/10.1145/3689796SMT-based verification of low-level code requires modeling and reasoning about memory operations. Prior work has shown that optimizing memory representations is beneficial for scaling verification—pointer analysis, for example can be used to split memory ...
- research-articleOctober 2024
Validating SMT Solvers for Correctness and Performance via Grammar-Based Enumeration
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 355, Pages 2378–2401https://doi.org/10.1145/3689795We introduce ET, a grammar-based enumerator for validating SMT solver correctness and performance. By compiling grammars of the SMT theories to algebraic datatypes, ET leverages the functional enumerator FEAT. ET is highly effective at bug finding and ...
Dependency-Aware Code Naturalness
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 354, Pages 2355–2377https://doi.org/10.1145/3689794Code naturalness, which captures repetitiveness and predictability in programming languages, has proven valuable for various code-related tasks in software engineering. However, precisely measuring code naturalness remains a fundamental challenge. ...
- research-articleOctober 2024
Making Sense of Multi-threaded Application Performance at Scale with NonSequitur
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 353, Pages 2325–2354https://doi.org/10.1145/3689793Modern multi-threaded systems are highly complex. This makes their behavior difficult to understand. Developers frequently capture behavior in the form of program traces and then manually inspect these traces. Existing tools, however, fail to scale to ...
Mark–Scavenge: Waiting for Trash to Take Itself Out
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 351, Pages 2268–2295https://doi.org/10.1145/3689791Moving garbage collectors (GCs) typically free memory by evacuating live objects in order to reclaim contiguous memory regions. Evacuation is typically done either during tracing (scavenging), or after tracing when identification of live objects is ...
- research-articleOctober 2024
Unifying Static and Dynamic Intermediate Languages for Accelerator Generators
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 350, Pages 2242–2267https://doi.org/10.1145/3689790Compilers for accelerator design languages (ADLs) translate high-level languages into application-specific hardware. ADL compilers rely on a hardware control interface to compose hardware units. There are two choices: static control, which relies on ...
Control-Flow Deobfuscation using Trace-Informed Compositional Program Synthesis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 349, Pages 2211–2241https://doi.org/10.1145/3689789Code deobfuscation, which attempts to simplify code that has been intentionally obfuscated to prevent understanding, is a critical technique for downstream security analysis tasks like malware detection. While there has been significant prior work on ...
Semantic-Type-Guided Bug Finding
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 348, Pages 2183–2210https://doi.org/10.1145/3689788In recent years, there has been an increased interest in tools that establish incorrectness rather than correctness of program properties. In this work we build on this approach by developing a novel methodology to prove incorrectness of semantic typing ...
Wasm-R3: Record-Reduce-Replay for Realistic and Standalone WebAssembly Benchmarks
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 347, Pages 2156–2182https://doi.org/10.1145/3689787WebAssembly (Wasm for short) brings a new, powerful capability to the web as well as Edge, IoT, and embedded systems. Wasm is a portable, compact binary code format with high performance and robust sandboxing properties. As Wasm applications grow in size ...
- research-articleOctober 2024
Modular Synthesis of Efficient Quantum Uncomputation
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 345, Pages 2097–2124https://doi.org/10.1145/3689785A key challenge of quantum programming is uncomputation: the reversible deallocation of qubits. And while there has been much recent progress on automating uncomputation, state-of-the-art methods are insufficient for handling today’s expressive quantum ...
Automated Verification of Parametric Channel-Based Process Communication
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 344, Pages 2070–2096https://doi.org/10.1145/3689784A challenge of writing concurrent message passing programs is ensuring the absence of partial deadlocks, which can cause severe memory leaks in long running systems. Several static analysis techniques have been proposed for automatically detecting ...
- research-articleOctober 2024
QuAC: Quick Attribute-Centric Type Inference for Python
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 343, Pages 2040–2069https://doi.org/10.1145/3689783Python’s dynamic typing facilitates rapid prototyping and underlies its popularity in many domains. However, dynamic typing reduces the power of many static checking and bug-finding tools. Python type annotations can make these tools more useful. Type ...
- research-articleOctober 2024
Imperative Compositional Programming: Type Sound Distributive Intersection Subtyping with References via Bidirectional Typing
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 342, Pages 2010–2039https://doi.org/10.1145/3689782Compositional programming is a programming paradigm that emphasizes modularity and is implemented in the CP programming language. The foundations for compositional programming are based on a purely functional variant of System F with intersection types, ...
- research-articleOctober 2024
Semantics of Remote Direct Memory Access: Operational and Declarative Models of RDMA on TSO Architectures
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 341, Pages 1982–2009https://doi.org/10.1145/3689781Remote direct memory access (RDMA) is a modern technology enabling networked machines to exchange information without involving the operating system of either side, and thus significantly speeding up data transfer in computer clusters. While RDMA is ...
- research-articleOctober 2024
Rustlantis: Randomized Differential Testing of the Rust Compiler
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 340, Pages 1955–1981https://doi.org/10.1145/3689780Compilers are at the core of all computer architecture. Their middle-end and back-end are full of subtle code that is easy to get wrong. At the same time, the consequences of compiler bugs can be severe. Therefore, it is important that we develop ...