POPL 2017- Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages
Full Citation in the ACM Digital Library
SESSION: Keynotes
The influence of dependent types (keynote)
Stephanie Weirich
Rust: from POPL to practice (keynote)
Aaron Turon
SESSION: Abstract Interpretation
Ogre and Pythia: an invariance proof method for weak consistency models
Jade Alglave
Patrick Cousot
A posteriori environment analysis with Pushdown Delta CFA
Kimball Germane
Matthew Might
Semantic-directed clumping of disjunctive abstract states
Huisong Li
Francois Berenger
Bor-Yuh Evan Chang
Xavier Rival
Fast polyhedra abstract domain
Gagandeep Singh
Markus Püschel
Martin Vechev
SESSION: Type Systems 1
Polymorphism, subtyping, and type inference in MLsub
Stephen Dolan
Alan Mycroft
Java generics are turing complete
Radu Grigore
Hazelnut: a bidirectionally typed structure editor calculus
Cyrus Omar
Ian Voysey
Michael Hilton
Jonathan Aldrich
Matthew A. Hammer
Modules, abstraction, and parametric polymorphism
Karl Crary
SESSION: Probabilistic Programming
Beginner's luck: a language for property-based generators
Leonidas Lampropoulos
Diane Gallois-Wong
Cătălin Hriţcu
John Hughes
Benjamin C. Pierce
Li-yao Xia
Exact Bayesian inference by symbolic disintegration
Chung-chieh Shan
Norman Ramsey
Stochastic invariants for probabilistic termination
Krishnendu Chatterjee
Petr Novotný
Ðorđe Žikelić
Coupling proofs are probabilistic product programs
Gilles Barthe
Benjamin Grégoire
Justin Hsu
Pierre-Yves Strub
SESSION: Concurrency 1
A promising semantics for relaxed-memory concurrency
Jeehoon Kang
Chung-Kil Hur
Ori Lahav
Viktor Vafeiadis
Derek Dreyer
Automatically comparing memory consistency models
John Wickerson
Mark Batty
Tyler Sorensen
George A. Constantinides
Interactive proofs in higher-order concurrent separation logic
Robbert Krebbers
Amin Timany
Lars Birkedal
A relational model of types-and-effects in higher-order concurrent separation logic
Morten Krogh-Jespersen
Kasper Svendsen
Lars Birkedal
SESSION: Logic
Monadic second-order logic on finite sequences
Loris D'Antoni
Margus Veanes
On the relationship between higher-order recursion schemes and higher-order fixpoint logic
Naoki Kobayashi
Étienne Lozes
Florian Bruse
Coming to terms with quantified reasoning
Laura Kovács
Simon Robillard
Andrei Voronkov
SESSION: Compiler Optimisation
A program optimization for automatic database result caching
Ziv Scully
Adam Chlipala
Stream fusion, to completeness
Oleg Kiselyov
Aggelos Biboudis
Nick Palladinos
Yannis Smaragdakis
Rigorous floating-point mixed-precision tuning
Wei-Fan Chiang
Mark Baranowski
Ian Briggs
Alexey Solovyev
Ganesh Gopalakrishnan
Zvonimir Rakamarić
SESSION: Program Analysis
Relational cost analysis
Ezgi Çiçek
Gilles Barthe
Marco Gaboardi
Deepak Garg
Jan Hoffmann
Contract-based resource verification for higher-order functions with memoization
Ravichandhran Madhavan
Sumith Kulal
Viktor Kuncak
Context-sensitive data-dependence analysis via linear conjunctive language reachability
Qirun Zhang
Zhendong Su
Towards automatic resource bound analysis for OCaml
Jan Hoffmann
Ankush Das
Shu-Chun Weng
SESSION: Type Systems 2
Deciding equivalence with sums and the empty type
Gabriel Scherer
The exp-log normal form of types: decomposing extensional equality and representing terms compactly
Danko Ilik
Contextual isomorphisms
Paul Blain Levy
Typed self-evaluation via intensional type functions
Matt Brown
Jens Palsberg
SESSION: Concurrency 2
Mixed-size concurrency: ARM, POWER, C/C++11, and SC
Shaked Flur
Susmit Sarkar
Christopher Pulte
Kyndylan Nienhuis
Luc Maranget
Kathryn E. Gray
Ali Sezgin
Mark Batty
Peter Sewell
Dynamic race detection for C++11
Christopher Lidbury
Alastair F. Donaldson
Serializability for eventual consistency: criterion, analysis, and applications
Lucas Brutschy
Dimitar Dimitrov
Peter Müller
Martin Vechev
Thread modularity at many levels: a pearl in compositional verification
Jochen Hoenicke
Rupak Majumdar
Andreas Podelski
SESSION: Functional Programming with Effects
Type directed compilation of row-typed algebraic effects
Daan Leijen
Do be do be do
Sam Lindley
Conor McBride
Craig McLaughlin
Dijkstra monads for free
Danel Ahman
Cătălin Hriţcu
Kenji Maillard
Guido Martínez
Gordon Plotkin
Jonathan Protzenko
Aseem Rastogi
Nikhil Swamy
Stateful manifest contracts
Taro Sekiyama
Atsushi Igarashi
SESSION: Semantic Foundations
A semantic account of metric preservation
Arthur Azevedo de Amorim
Marco Gaboardi
Justin Hsu
Shin-ya Katsumata
Ikram Cherigui
Cantor meets scott: semantic foundations for probabilistic networks
Steffen Smolka
Praveen Kumar
Nate Foster
Dexter Kozen
Alexandra Silva
SESSION: Logic and Programming
Genesis: synthesizing forwarding tables in multi-tenant networks
Kausik Subramanian
Loris D'Antoni
Aditya Akella
LOIS: syntax and semantics
Eryk Kopczyński
Szymon Toruńczyk
SESSION: Verification and Synthesis
Component-based synthesis for complex APIs
Yu Feng
Ruben Martins
Yuepeng Wang
Isil Dillig
Thomas W. Reps
Learning nominal automata
Joshua Moerman
Matteo Sammartino
Alexandra Silva
Bartek Klin
Michał Szynwelski
On verifying causal consistency
Ahmed Bouajjani
Constantin Enea
Rachid Guerraoui
Jad Hamza
Complexity verification using guided theorem enumeration
Akhilesh Srikanth
Burak Sahin
William R. Harris
SESSION: Type Systems 3
Intersection type calculi of bounded dimension
Andrej Dudenhefner
Jakob Rehof
Type soundness proofs with definitional interpreters
Nada Amin
Tiark Rompf
Computational higher-dimensional type theory
Carlo Angiuli
Robert Harper
Todd Wilson
Type systems as macros
Stephen Chang
Alex Knauth
Ben Greenman
SESSION: Concurrency 3
Parallel functional arrays
Ananya Kumar
Guy E. Blelloch
Robert Harper
A short counterexample property for safety and liveness verification of fault-tolerant distributed algorithms
Igor Konnov
Marijana Lazić
Helmut Veith
Josef Widder
Analyzing divergence in bisimulation semantics
Xinxin Liu
Tingting Yu
Wenhui Zhang
Fencing off go: liveness and safety for channel-based programming
Julien Lange
Nicholas Ng
Bernardo Toninho
Nobuko Yoshida
SESSION: Gradual Typing and Contracts
Big types in little runtime: open-world soundness and collaborative blame for gradual type systems
Michael M. Vitousek
Cameron Swords
Jeremy G. Siek
Gradual refinement types
Nico Lehmann
Éric Tanter
Automatically generating the dynamic semantics of gradually typed languages
Matteo Cimini
Jeremy G. Siek
Sums of uncertainty: refinements go gradual
Khurram A. Jafery
Joshua Dunfield
SESSION: Quantum
Invariants of quantum programs: characterisations and generation
Mingsheng Ying
Shenggang Ying
Xiaodi Wu
The geometry of parallelism: classical, probabilistic, and quantum effects
Ugo Dal Lago
Claudia Faggian
Benoît Valiron
Akira Yoshimizu
QWIRE: a core language for quantum circuits
Jennifer Paykin
Robert Rand
Steve Zdancewic
SESSION: Security and Privacy
LMS-Verify: abstraction without regret for verified systems programming
Nada Amin
Tiark Rompf
Hypercollecting semantics and its application to static analysis of information flow
Mounir Assaf
David A. Naumann
Julien Signoles
Éric Totel
Frédéric Tronel
LightDP: towards automating differential privacy proofs
Danfeng Zhang
Daniel Kifer