The ACM SIGPLAN conference on Systems, Programming, Languages and Applications: Software for Humanity

Amsterdam, The Netherlands
Oct 30-Nov 4, 2016


Oct 31

Breakfast @ Omelegg – City Centre

Generative Programming: Concepts and Experiences (GPCE)

Ina Schaefer (Program Chair in Program Committee for GPCE 2016)

  • Statistics
    • Submission: 44 full papers, 7 short papers, 1 tool paper
    • Accepted: 17 full papers, 2 short papers, 1 tool paper
    • 38% acceptance rate
    • 162 reviews, at least 3 per paper
    • 155 authors from 25 countries
  • Best Paper Award, “Synthesizing Regular Expressions from Examples for Introductory Automata Assignments”


[Keynote] Lightweight Modular Staging (LMS): Generate all the things!
Tiark Rompf

  • Tiark Rompf
  • Lightweight Modular Staging (LMS)
    • A library for generating high performance (low-level) code from high-level specification
    • Killer applications: data processing (database)
      • 1M LOC for generic DBMS
      • Manual specialization for performance is required
      • Previous approaches are still 10-100x slower than hand-written code

Domain-Specific Language Design and Implementation (DSLDI)

[Keynote] Small, simple and smelly: What we can learn from examining end-user artifacts?
Felienne Hermans

  • Two ways towards good, flawless programs
    • A better language
    • Education
  • Excel
    • The world’s most popular programming language
    • Common characteristics with programming languages
      • It is used for similar problems
      • Its formulas are Turing complete
      • It suffers from typical programming problems
        • Many variables
        • Long methods
        • Complexity
        • Code clones
  • Programming education for non-developers

The DSGA Model of DSL Design: Domain, Schema, Grammar, Actions
Vadim Zaytsev

Naturally Embedded DSLs
Jonathan Aldrich, Alex Potanin

  • Control multiple DSLs with one general purpose embedded DSL
    • e.g. serve: (URL, HTML) -> ()
    • Execute a parser and interpreter for each DSL (in this case, URL and HTML)

Towards explanation-oriented introductory programming
Julian Jabs

  • Explanation-oriented programming 
  • Insight: interpretation is just another explanation
    • Add natural language explanation within interpreter
  • Challenges
    • Difficulty to describe the intended behavior
    • Usability of line-by-line explanation
    • Necessity to provide all the explanations in advance

DesignScript: a scalable multi-paradigm domain-specific end-user language and modelling environment for architectural computation
Robert Aish, Emmanuel Mendoza

Generative Programming: Concepts and Experiences (GPCE)

Synthesizing Regular Expressions from Examples for Introductory Automata Assignments
Mina Lee, Sunbeom So, Hakjoo Oh

Programmable Semantic Fragments: The Design and Implementation of typy
Cyrus Omar, Jonathan Aldrich

Delaying Decisions in Variable Concern Hierarchies
Jörg Kienzle, Gunter Mussbacher, Omar Alam, Philippe Collet

Automatic Code Generation in Practice: Experiences with Embedded Robot Controllers
Sorin Adam, Marco Kuhrmann, Ulrik Schultz

Monday Poster Reception

A Web Application is a Domain-Specific Language
David H. Lorenz, Boaz Rosenan

Principled Syntactic Code Completion using Placeholders
Luís Eduardo de Souza Amorim, Sebastian Erdweg, Guido Wachsmuth, Eelco Visser

Dinner @ Bravi Ragazzi

Nov 1

Evaluation and Usability of Programming Languages and Tools (PLATEAU)


[Keynote] How to Design a Programming Language
Alan Blackwell

Software Engineering for Parallel Systems (SEPS)

Reducing Parallelizing Compilation Time by Removing Redundant Analysis
Jixin Han, Rina Fujino, Ryota Tamura, Mamoru Shimaoka, Hiroki Mikami, Moriyuki Takamura, Sachio Kamiya, Kazuhiko Suzuki, Takahiro Miyajima, Keiji Kimura , Hironori Kasahara

  • Top 3 most time-consuming analysis
    • Def-use analysis
    • Pointer analysis
    • Dependency analysis
  • Evaluation
    • Time cost reduced by 30%
      • 51.7% in terms of pointer analysis

LWC@SLE 2016 Language Workbench Challenge

Whole Platform Solution to a Selection of LWC16 Benchmark Problems
Riccardo Solmi, Enrico Persiani

Software Language Engineering (SLE)

Towards a Universal Code Formatter through Machine Learning
Terence Parr, Jurgen Vinju

Principled Syntactic Code Completion using Placeholders
Luís Eduardo de Souza Amorim, Sebastian Erdweg, Guido Wachsmuth, Eelco Visser


DrAST: An Inspection Tool for Attributed Syntax Trees (Tool Demo)
Joel Lindholm, Johan Thorsberg, Görel Hedin

Dynamic Languages Symposium (DLS)

A Small Embedding of Logic Programming with a Simple Complete Search
Jason Hemann, Daniel P. Friedman, William E. Byrd, Matthew Might


Generative Programming: Concepts and Experiences (GPCE)

A Vision for Online Verification-Validation
Matthew Hammer, Bor-Yuh Evan Chang, David Van Horn

Automatic Non-functional Testing of Code Generators Families
Mohamed Boussaa, Olivier Barais, Benoit Baudry, Gerson Sunyé

Beer @ Hannekes Boom

Dinner @ DoubleTree by Hilton Hotel Amsterdam Centraal Station

Nov 2

Breakfast @ Starbucks


Welcome to SPLASH 2016
Eelco Visser


OOPSLA 10-year Most Influential Paper Award
Eelco Visser

[Keynote] The Science of Deep Specification
Benjamin C. Pierce

  • Course design
    • Undergraduate courses
      • Drop-in replacements for standard compiler and OS courses
      • Pedagogical versions of Vellvm and CertiKOS
      • Reading and interacting with specifications
      • Code connected to specifications via random testing
    • Graduate courses
      • New course on formally specifying and verifying systems software and hardware

OOPSLA – Semantics and Verification

Semantics-Based Program Verifiers for All Languages
Andrei Stefanescu, Daejun Park, Shijiao Yuwen, Yilong Li, Grigore Rosu

Hoare-Style Specifications as Correctness Conditions for Non-linearizable Concurrent Objects
Ilya Sergey, Aleksandar Nanevski, Anindya Banerjee, Germán Andrés Delbianco

OOPSLA – Program Synthesis

Deriving Divide-and-Conquer Dynamic Programming Algorithms using Solver-Aided Transformations
Shachar Itzhaky, Rohit Singh, Rezaul Chowdhury, Kuat Yessenov, Yongquan Lu, Charles E. Leiserson, Armando Solar-Lezama

Speeding Up Machine-Code Synthesis
Venkatesh Srinivasan, Tushar Sharma, Thomas Reps

Automated Reasoning for Web Page Layout
Pavel Panchekha, Emina Torlak

FIDEX: Filtering Spreadsheet Data using Examples
Xinyu Wang, Sumit Gulwani, Rishabh Singh

OOPSLA – Programming Frameworks, Tools, and Methodologies

Purposes, Concepts, Misfits, and a Redesign of Git
Santiago Perez De Rosso, Daniel Jackson

  • So many people want better Git :)

Apex: Automatic Programming Assignment Error Explanation
Dohyeong Kim, Yonghwi Kwon, Peng Liu, I Luk Kim, David Mitchel Perry, Xiangyu Zhang, Gustavo Rodriguez-Rivera

Wednesday Poster Reception

Synthesizing Regular Expressions from Examples for Introductory Automata Assignments
Mina Lee, Sunbeom So, Hakjoo Oh

Dinner & Drink @ Delirium Café Amsterdam

Nov 3


Yannis Smaragdakis, Michael Bond

[Keynote] From DOT to Dotty — Foundations and Types for Objects As Modules
Martin Odersky

OOPSLA – Language Design and Programming Models II

Automatic Enforcement of Expressive Security Policies using Enclaves
Anitha Gollamudi, Stephen Chong

Chain: Tasks and Channels for Reliable Intermittent Programs
Alexei Colin, Brandon Lucia

Lunch @ Cau Restaurant

Cruise @ Rederij Kooij

Onward! Papers

Object Spreadsheets: A New Computational Model for End-User Development of Data-Centric Web Applications
Matt McCutchen, Shachar Itzhaky, Daniel Jackson

Moldable, Context-Aware Searching with Spotter
Andrei Chiş, Tudor Gîrba, Juraj Kubelka, Oscar Nierstrasz, Stefan Reichhart, Aliaksei Syrel

OOPSLA– Program Modeling and Learning

Ringer: Web Automation by Demonstration
Shaon Barman, Sarah Chasins, Rastislav Bodik, Sumit Gulwani

Scalable Verification of Border Gateway Protocol Configurations with an SMT Solver
Konstantin Weitz, Doug Woos, Emina Torlak, Michael D. Ernst, Arvind Krishnamurthy, Zachary Tatlock

Banquet @ Beurs van Berlage

Nov 4


Gail Murphy

Onward! Most Notable Paper Award
Guy L. Steele Jr., Robert Hirschfeld

Student Awards
Sam Guyer, Matthew Flatt

[Keynote] A Human View of Programming Languages
Andrew J. Ko

Onward! Papers

Exploring the Role of Sequential Computation in Distributed Systems: Motivating a Programming Paradigm Shift
Ivan Kuraj, Daniel Jackson

Gramada: Immediacy in Programming Language Development
Patrick Rein, Marcel Taeumel, Robert Hirschfeld

Helping Johnny Encrypt: Toward Semantic Interfaces for Cryptographic Frameworks
Soumya Indela, Mukul Kulkarni, Kartik Nayak, Tudor Dumitras

  • Separate security part of code with functionality code
  • Developers for functionality use abstracted calls
  • Developers for security then deals with encapsulated security part with expertise

Leveraging a Corpus of Natural Language Descriptions for Program Similarity
Meital Zilberstein, Eran Yahav

  • Apply NLP techniques to suggest similar codes
    • Dataset from Stack Overflow
    • TF-IDF
  • How effectively does this data-driven approach work?
  • Many remaining challenges to resolve
    • Context (e.g. counterexamples)
    • Partial program

PLDI 2016

The 37th annual ACM SIGPLAN conference on
Programming Language Design and Implementation

Santa Barbara, California
June 13-17, 2016


Dear Mina Lee,

Congratulations! We are pleased to inform you that we will fund your trip to attend PLMW@PLDI and PLDI.

I was thrilled when I first read this very beginning of the email! I was super surprised and elated just by looking at it, realizing that I actually got to go the conference.

Since I was still in my last semester of university, I had to ask professors to reschedule my finals; luckily they let me take them in advance–thanks a lot! After finishing up my graduation project as well as the last final, I flew to California with a big, big smile.

※ Note that there are lots of parts left blank below where I haven’t finished writing yet. I am filling them one by one, so please excuse me for that :-)

June 14

On my first day of the conference, I mostly attended sessions provided by Programming Languages Mentoring Workshop (PLMW), which is the program that funded not only me but also many other students from various countries. The only time that I went to another session on this day was attending a tutorial given by Sumit Gulwani and Oleksandr Polozov, Programming using Examples, which dealt with the exact topic that I am deeply interested in!

Programming Languages Mentoring Workshop

Below are some brief notes I took while listening to each talk during the workshop.

PLMW: Mentoring
Armando Solar-Lezama

He is one of the authors of the paper, Automated Feedback Generation for Introductory Programming Assignments, which is the very first paper I read and which eventually led me to immerse myself in program synthesis.

PLMW: Professional Communication
Matthew Might

How to email professors?

  1. Don’t email them
  2. Make it short
  3. Use the subject
  4. Use points rather than paragraphs
  5. Reply in points
  6. Place actions at top
  7. Sort points by priority
  8. Don’t replay all
  9. Be polite

PLMW: The Secrets
Jason Mars

Get motivated, inspired, and proud.

  1. Identify your mentors
  2. Latch on, hold on tight
  3. Build lifelong relationships

Embrace the unknown-seek to learn.

  1. Get out of comfort zone
  2. Leverage all resources
  3. Learn to navigate new territory

Be convinced.

  1. Buy into your problem
  2. Pitch your idea
  3. Convince others

The community can be fallible; if you don’t agree, persist. Believe and take yourself seriously! (His paper had been rejected for 4 years, but it was accepted as the best reviewed paper at the end)

Q. How can I not be discouraged?
A. Think about paper level parallelism.

PLMW: Getting People to Listen
Marry Hall

  • Communication and confidence are related.
  • Give constructive feedback
  • Many people struggle with:
    • Impostor syndrome
      • high-achieving individuals marked by an inability to internalize their accomplishments and a persistent fear of being exposed as a “fraud”
    • Dunning-Kruger effect
      • low-ability individuals suffer from illusory superiority, mistakenly assessing their ability as much higher than it really is

PLMW: What’s Next for Program Synthesis
Armando Solar-Lezama

Civilization runs on software.

  • Program optimization
  • Repair
  • Bug finding
  • Security
  • Automated tutor

Search + Verification = Synthesis

PLMW: Programming with Estimates
James Bornholt (Student at University of Washington)

  • Uncertain<T>: 86% more accurate
  • Probabilistic programming
  • Programs are graphical models
    • We know probability distribution of x, y, then also that of x + y
    • Thus, we can compute the probability that the condition is true, and use a hypothesis test to decide the branch; decide sample size automatically
  • Optimizing Synthesis with Metasketches [POPL 2016]

He was so good at presentation even though he was the only student presented at the workshop. I wish I could research something interesting and practical like his, and present it at the conference in the future :)

Tutorials: Programming using Examples
Sumit Gulwani, Oleksandr Polozov

June 15


Keynote: Programming Languages and Technical Disruption
Benjamin Zorn

Research Papers – Verification I

Data-Driven Precondition Inference with Learned Features
Saswat Padhi, Rahul Sharma, Todd Millstein

Cartesian Hoare Logic for Verifying k-Safety Properties
Marcelo Sousa, Isil Dillig

Verifying Bit Manipulations of Floating-Point
Wonyeol Lee, Rahul Sharma, Alex Aiken

Research Papers – Energy & Performance

GreenWeb: Language Extensions for Energy-Efficient Mobile Web Computing
Yuhao Zhu, Vijay J. Reddi

Research Papers – New Languages

Configuration Synthesis for Programmable Analog Devices with Arco
Sara Achour, Rahul Sarpeshkar, Martin Rinard

From Datalog to Flix: A Declarative Language for Fixed Points on Lattices
Magnus Madsen, Ming-Ho Yee, Ondřej Lhoták

Latte: A Language, Compiler, and Runtime for Elegant and Efficient Deep Neural Networks
Leonard Truong, Rajkishore Barik, Ehsan Totoni, Hai Liu, Chick Markley, Armando Fox, Tatiana Shpeisman

Poster Reception

I loved the vivid, enthusiastic, and interactive ambiance of poster reception. I felt much easier to mingle with people by asking questions, listening to their presentation, and having small chats here and there. In addition, thanks to their kind, detailed answers, I could learned and understood their work comprehensively.

After poster reception, 15 hungry students, including myself, went to downtown to have delicious Indian food. We all met during the poster session and became friends, yay :-) It was one of the unforgettable times that I had in Santa Barbara.


June 16

Research Papers – Down to the Metal II

Stratified Synthesis: Automatically Learning the x86-64 Instruction Set
Stefan Heule, Eric Schkufza, Rahul Sharma, Alex Aiken

Remix: Online Detection and Repair of Cache Contention for the JVM
Ariel Eizenberg, Shiliang Hu, Gilles Pokam, Joseph Devietti

Statistical Similarity of Binaries
Yaniv David, Nimrod Partush, Eran Yahav

Research Papers – Synthesis I

MapReduce Program Synthesis
Calvin Smith, Aws Albarghouthi

Programmatic and Direct Manipulation, Together at Last
Ravi Chugh, Brian Hempel, Mitchell Spradlin, Jacob Albers

Fast Synthesis of Fast Collections
Calvin Loncaric, Emina Torlak, Michael D. Ernst

Research Papers – Synthesis II

Synthesizing Transformations on Hierarchically Structured Data
Navid Yaghmazadeh, Christian Klinger, Isil Dillig, Swarat Chaudhuri

Program Synthesis from Polymorphic Refinement Types
Nadia Polikarpova, Ivan Kuraj, Armando Solar-Lezama



Santa Barbara is indeed a beautiful city with lots of charms and beauty. It would have been nice if I could stay there for several more days. At first, I found palm trees lining up along the streets exotic. However, when I was about to leave, they became pretty familiar to me.


My adviser, his students, and I took a walk by Stearns Wharf after having dinner one day. It presented us stunning view: the beach with the reflection of the glow of sunset. I could walk there for hours and hours.


Looking back on these days, I could not more appreciate all the moments I had there. I relished every day and still vividly remember them. I deeply, sincerely thank PLDI for giving me this opportunity and all of you whom I met on this trip. You all made it such a beautiful one.