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-articleJune 2020
Understanding memory and thread safety practices and issues in real-world Rust programs
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 763–779https://doi.org/10.1145/3385412.3386036Rust is a young programming language designed for systems software development. It aims to provide safety guarantees like high-level languages and performance efficiency like low-level languages. The core design of Rust is a set of strict safety rules ...
- research-articleJune 2020
Templates and recurrences: better together
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 688–702https://doi.org/10.1145/3385412.3386035This paper is the confluence of two streams of ideas in the literature on generating numerical invariants, namely: (1) template-based methods, and (2) recurrence-based methods.
A template-based method begins with a template that contains unknown ...
- research-articleJune 2020
Efficient handling of string-number conversion
- Parosh Aziz Abdulla,
- Mohamed Faouzi Atig,
- Yu-Fang Chen,
- Bui Phi Diep,
- Julian Dolby,
- Petr Janků,
- Hsin-Hung Lin,
- Lukáš Holík,
- Wei-Cheng Wu
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 943–957https://doi.org/10.1145/3385412.3386034String-number conversion is an important class of constraints needed for the symbolic execution of string-manipulating programs. In particular solving string constraints with string-number conversion is necessary for the analysis of scripting languages ...
- research-articleJune 2020
Compiler-directed soft error resilience for lightweight GPU register file protection
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 989–1004https://doi.org/10.1145/3385412.3386033This paper presents Penny, a compiler-directed resilience scheme for protecting GPU register files (RF) against soft errors. Penny replaces the conventional error correction code (ECC) based RF protection by using less expensive error detection code (...
- research-articleJune 2020
Faster general parsing through context-free memoization
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 1022–1035https://doi.org/10.1145/3385412.3386032We present a novel parsing algorithm for all context-free languages. The algorithm features a clean mathematical formulation: parsing is expressed as a series of standard operations on regular languages and relations. Parsing complexity w.r.t. input ...
-
Effective function merging in the SSA form
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 854–868https://doi.org/10.1145/3385412.3386030Function merging is an important optimization for reducing code size. This technique eliminates redundant code across functions by merging them into a single function. While initially limited to identical or trivially similar functions, the most recent ...
- research-articleJune 2020
SCAF: a speculation-aware collaborative dependence analysis framework
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 638–654https://doi.org/10.1145/3385412.3386028Program analysis determines the potential dataflow and control flow relationships among instructions so that compiler optimizations can respect these relationships to transform code correctly. Since many of these relationships rarely or never occur, ...
- research-articleJune 2020
Reconciling enumerative and deductive program synthesis
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 1159–1174https://doi.org/10.1145/3385412.3386027Syntax-guided synthesis (SyGuS) aims to find a program satisfying semantic specification as well as user-provided structural hypotheses. There are two main synthesis approaches: enumerative synthesis, which repeatedly enumerates possible candidate ...
Static analysis of Java enterprise applications: frameworks and caches, the elephants in the room
- Anastasios Antoniadis,
- Nikos Filippakis,
- Paddy Krishnan,
- Raghavendra Ramesh,
- Nicholas Allen,
- Yannis Smaragdakis
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 794–807https://doi.org/10.1145/3385412.3386026Enterprise applications are a major success domain of Java, and Java is the default setting for much modern static analysis research. It would stand to reason that high-quality static analysis of Java enterprise applications would be commonplace, but ...
Question selection for interactive program synthesis
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 1143–1158https://doi.org/10.1145/3385412.3386025Interactive program synthesis aims to solve the ambiguity in specifications, and selecting the proper question to minimize the rounds of interactions is critical to the performance of interactive program synthesis. In this paper we address this question ...
- research-articleJune 2020
LLHD: a multi-level intermediate representation for hardware description languages
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 258–271https://doi.org/10.1145/3385412.3386024Modern Hardware Description Languages (HDLs) such as SystemVerilog or VHDL are, due to their sheer complexity, insufficient to transport designs through modern circuit design flows. Instead, each design automation tool lowers HDLs to its own ...
- research-articleJune 2020
EVA: an encrypted vector arithmetic language and compiler for efficient homomorphic computation
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 546–561https://doi.org/10.1145/3385412.3386023Fully-Homomorphic Encryption (FHE) offers powerful capabilities by enabling secure offloading of both storage and computation, and recent innovations in schemes and implementations have made it all the more attractive. At the same time, FHE is ...
Behavioral simulation for smart contracts
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 470–486https://doi.org/10.1145/3385412.3386022While smart contracts have the potential to revolutionize many important applications like banking, trade, and supply-chain, their reliable deployment begs for rigorous formal verification. Since most smart contracts are not annotated with formal ...
- research-articleJune 2020
Debug information validation for optimized code
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 1052–1065https://doi.org/10.1145/3385412.3386020Almost all modern production software is compiled with optimization. Debugging optimized code is a desirable functionality. For example, developers usually perform post-mortem debugging on the coredumps produced by software crashes. Designing reliable ...
- research-articleJune 2020
First-order quantified separators
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 703–717https://doi.org/10.1145/3385412.3386018Quantified first-order formulas, often with quantifier alternations, are increasingly used in the verification of complex systems. While automated theorem provers for first-order logic are becoming more robust, invariant inference tools that handle ...
Gillian, part i: a multi-language platform for symbolic execution
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 927–942https://doi.org/10.1145/3385412.3386014We introduce Gillian, a platform for developing symbolic analysis tools for programming languages. Here, we focus on the symbolic execution engine at the heart of Gillian, which is parametric on the memory model of the target language. We give a formal ...
Responsive parallelism with futures and state
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 577–591https://doi.org/10.1145/3385412.3386013Motivated by the increasing shift to multicore computers, recent work has developed language support for responsive parallel applications that mix compute-intensive tasks with latency-sensitive, usually interactive, tasks. These developments include ...
Synthesizing structured CAD models with equality saturation and inverse transformations
- Chandrakana Nandi,
- Max Willsey,
- Adam Anderson,
- James R. Wilcox,
- Eva Darulova,
- Dan Grossman,
- Zachary Tatlock
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 31–44https://doi.org/10.1145/3385412.3386012Recent program synthesis techniques help users customize CAD models(e.g., for 3D printing) by decompiling low-level triangle meshes to Constructive Solid Geometry (CSG) expressions. Without loops or functions, editing CSG can require many coordinated ...
Promising 2.0: global optimizations in relaxed memory concurrency
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 362–376https://doi.org/10.1145/3385412.3386010For more than fifteen years, researchers have tried to support global optimizations in a usable semantics for a concurrent programming language, yet this task has been proven to be very difficult because of (1) the infamous “out of thin air” problem, ...
Reactive probabilistic programming
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 898–912https://doi.org/10.1145/3385412.3386009Synchronous modeling is at the heart of programming languages like Lustre, Esterel, or Scade used routinely for implementing safety critical control software, e.g., fly-by-wire and engine control in planes. However, to date these languages have had ...