PLDI 2017- Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation
Full Citation in the ACM Digital Library
SESSION: Compiler Optimizations
Cache locality optimization for recursive programs
Jonathan Lifflander
Sriram Krishnamoorthy
Fusing effectful comprehensions
Olli Saarikivi
Margus Veanes
Todd Mytkowicz
Madan Musuvathi
Generalizations of the theory and deployment of triangular inequality for compiler-based strength reduction
Yufei Ding
Lin Ning
Hui Guan
Xipeng Shen
Alive-Infer: data-driven precondition inference for peephole optimizations in LLVM
David Menendez
Santosh Nagarakatte
SESSION: Learning and Probabilistic
DemoMatch: API discovery from demonstrations
Kuat Yessenov
Ivan Kuraj
Armando Solar-Lezama
Similarity of binaries through re-optimization
Yaniv David
Nimrod Partush
Eran Yahav
Synthesizing program input grammars
Osbert Bastani
Rahul Sharma
Alex Aiken
Percy Liang
Compiling Markov chain Monte Carlo algorithms for probabilistic modeling
Daniel Huang
Jean-Baptiste Tristan
Greg Morrisett
SESSION: Concurrency Analysis
BARRACUDA: binary-level analysis of runtime RAces in CUDA programs
Ariel Eizenberg
Yuanfeng Peng
Toma Pigli
William Mansky
Joseph Devietti
BigFoot: static check placement for dynamic race detection
Dustin Rhodes
Cormac Flanagan
Stephen N. Freund
Dynamic race prediction in linear time
Dileep Kini
Umang Mathur
Mahesh Viswanathan
Systematic black-box analysis of collaborative web applications
Marina Billes
Anders Møller
Michael Pradel
SESSION: Language Implementation
Bringing the web up to speed with WebAssembly
Andreas Haas
Andreas Rossberg
Derek L. Schuff
Ben L. Titzer
Michael Holman
Dan Gohman
Luke Wagner
Alon Zakai
JF Bastien
Miniphases: compilation using modular and efficient tree transformations
Dmitry Petrashko
Ondřej Lhoták
Martin Odersky
Proactive and adaptive energy-aware programming with mixed typechecking
Anthony Canino
Yu David Liu
Simple, fast, and safe manual memory management
Piyus Kedia
Manuel Costa
Matthew Parkinson
Kapil Vaswani
Dimitrios Vytiniotis
Aaron Blankstein
SESSION: Static Analysis
Compositional recurrence analysis revisited
Zachary Kincaid
Jason Breck
Ashkan Forouhi Boroujeni
Thomas Reps
Context transformations for pointer analysis
Rei Thiessen
Ondřej Lhoták
Efficient and precise points-to analysis: modeling the heap by merging equivalent automata
Tian Tan
Yue Li
Jingling Xue
Static deadlock detection for asynchronous C# programs
Anirudh Santhiar
Aditya Kanade
SESSION: Dynamic Analysis and Testing
Achieving high coverage for floating-point code via unconstrained programming
Zhoulai Fu
Zhendong Su
Instruction punning: lightweight instrumentation for x86-64
Buddhika Chamith
Bo Joel Svensson
Luke Dalessandro
Ryan R. Newton
Low overhead dynamic binary translation on ARM
Amanieu D'Antras
Cosmin Gorgovan
Jim Garside
Mikel Luján
Skeletal program enumeration for rigorous compiler testing
Qirun Zhang
Chengnian Sun
Zhendong Su
SESSION: Static Analysis and Security
Decomposition instead of self-composition for proving the absence of timing channels
Timos Antonopoulos
Paul Gazzillo
Michael Hicks
Eric Koskinen
Tachio Terauchi
Shiyi Wei
Automatic program inversion using symbolic transducers
Qinheping Hu
Loris D'Antoni
Control-flow recovery from partial failure reports
Peter Ohmann
Alexander Brooks
Loris D'Antoni
Ben Liblit
Rigorous analysis of software countermeasures against cache attacks
Goran Doychev
Boris Köpf
SESSION: Synthesis
Component-based synthesis of table consolidation and transformation tasks from examples
Yu Feng
Ruben Martins
Jacob Van Geffen
Isil Dillig
Swarat Chaudhuri
Network configuration synthesis with abstract topologies
Ryan Beckett
Ratul Mahajan
Todd Millstein
Jitendra Padhye
David Walker
Synthesizing highly expressive SQL queries from input-output examples
Chenglong Wang
Alvin Cheung
Rastislav Bodik
Synthesizing memory models from framework sketches and Litmus tests
James Bornholt
Emina Torlak
SESSION: Functional Programming and Correctness
Compiling without continuations
Luke Maurer
Paul Downen
Zena M. Ariola
Simon Peyton Jones
FunTAL: reasonably mixing a functional language with assembly
Daniel Patterson
Jamie Perconti
Christos Dimoulas
Amal Ahmed
HoTTSQL: proving query rewrites with univalent SQL semantics
Shumo Chu
Konstantin Weitz
Alvin Cheung
Dan Suciu
Levity polymorphism
Richard A. Eisenberg
Simon Peyton Jones
SESSION: Parallelization and Concurrency
Synthesis of divide and conquer parallelism for loops
Azadeh Farzan
Victor Nicolet
Futhark: purely functional GPU-programming with nested parallelism and in-place array updates
Troels Henriksen
Niels G. W. Serup
Martin Elsman
Fritz Henglein
Cosmin E. Oancea
Gradual synthesis for static parallelization of single-pass array-processing programs
Grigory Fedyukovich
Maaz Bin Safeer Ahmad
Rastislav Bodik
SESSION: Verified Computation
A formally verified compiler for Lustre
Timothy Bourke
Lélio Brun
Pierre-Évariste Dagand
Xavier Leroy
Marc Pouzet
Lionel Rieg
Flatten and conquer: a framework for efficient analysis of string constraints
Parosh Aziz Abdulla
Mohamed Faouzi Atig
Yu-Fang Chen
Bui Phi Diep
Lukáš Holík
Ahmed Rezine
Philipp Rümmer
SESSION: Correctness
Repairing sequential consistency in C/C++11
Ori Lahav
Viktor Vafeiadis
Jeehoon Kang
Chung-Kil Hur
Derek Dreyer
Taming undefined behavior in LLVM
Juneyoung Lee
Yoonseung Kim
Youngju Song
Chung-Kil Hur
Sanjoy Das
David Majnemer
John Regehr
Nuno P. Lopes
SESSION: Systems and Performance
Low-synchronization, mostly lock-free, elastic scheduling for streaming runtimes
Scott Schneider
Kun-Lung Wu
Practical partial evaluation for high-performance dynamic language runtimes
Thomas Würthinger
Christian Wimmer
Christian Humer
Andreas Wöß
Lukas Stadler
Chris Seaton
Gilles Duboscq
Doug Simon
Matthias Grimmer
Responsive parallel computation: bridging competitive and cooperative threading
Stefan K. Muller
Umut A. Acar
Robert Harper
StreamQRE: modular specification and efficient evaluation of quantitative queries over streaming data
Konstantinos Mamouras
Mukund Raghothaman
Rajeev Alur
Zachary G. Ives
Sanjeev Khanna