IBM Programming Languages Day - PL Day 2018

Poster 2018

The 2018 Programming Languages (PL) day will be held at the IBM T.J. Watson Research Center in Yorktown Heights, NY, on Monday, December 10th, 2018. This is a one day event that will feature several conference-style talks, and opportunities to discuss current research and results in programming languages and systems.

The event is open to all researchers and we encourage participation from students and professors. The main goal of the event is to increase awareness of each other's work, and to encourage interaction and collaboration.

PL day is held in cooperation with the New Jersey and New England Programming Languages and Systems Seminars.


Local arrangements:
We welcome everyone to arrive at the IBM T.J. Watson Research Center in Yorktown Heights starting at 9:00AM. The first presentation will start promptly at 9:25AM. We expect the program to run no later than 5:30PM.

Information on how to get to the IBM T.J. Watson Research Center can be found here.


  • 09:00-09:25 - Welcome Breakfast
  • 09:25-10:30 - Session 1
    • GraphQL API Management Through Static Analysis (slides)
      Erik Wittern, Alan Cha, Jim Laredo, Louis Mandel, Guillaume Baudart (IBM Research)
    • Weak-Consistency Specification via Visibility Relaxation (slides)
      Michael Emmi (SRI International)
    • Abstraction-Safe Effect Handlers via Tunneling
      Yizhou Zhang (Cornell University)
    • Lazy Counterfactual Symbolic Execution
      William Hallahan, Anton Xue, Ruzica Piskac (Yale), Ranjit Jhala (UCSD)
    • Self-Hiding Behavior in Android Apps: Detection and Characterization
      Zhiyong Shan (Wichita State University), Iulian Neamtiu (NJIT), Raina Samuel (NJIT)
  • 10:30-11:00 - Coffee Break
  • 11:00-12:00 - Session 2
    • BEADL: A New Real-Time Language for Behavioral Experiments (slides)
      Stephen A. Edwards (Columbia University)
    • ModelOps - A programming model for reusable, platform-independent, and composable AI workflows (slides)
      Waldemar Hummer, Vinod Muthusamy (IBM Research)
    • Translating Stan into Pyro (slides)
      Javier Burroni (University of Massachusetts Amherst), Guillaume Baudart, Louis Mandel, Martin Hirzel, Avraham Shinnar (IBM Research)
    • Size-Change Termination as a Contract (slides)
      David Van Horn (University of Maryland)
    • Mossad: A Targeted Attack on the Moss Software Similarity Detector (slides)
      Breanna Devore-McDonald, Emery Berger (University of Massachusetts Amherst)
  • 12:00-13:00 - Lunch - Cafeteria Annex
  • 13:00-14:00 - Keynote
    • Designing Rust
      Nicholas Matsakis (Mozilla Research)
  • 14:00-14:30 - Coffee Break
  • 14:30-15:30 - Session 3
    • Formal Foundations of Serverless Computing (slides)
      Abhinav Jangda, Donald Pinckney, Samuel Baxter, Breanna Devore-McDonald, Joseph Spitzer, Yuriy Brun, Arjun Guha (University of Massachusetts Amherst)
    • Learning to Verify Infrastructure as Code
      Mark Santolucito, Ruzica Piskac (Yale University)
    • Randomized Testing of Distributed Systems with Probabilistic Guarantees (slides)
      Filip Niksic (University of Pennsylvania)
    • Collaborative Parallelization Framework
      Sotiris Apostolakis, Gregory Chan, Ziyang Xu, Benjamin Huang, and David I. August (Princeton University)
  • 15:30-16:00 - Coffee Break
  • 16:00-17:15 - Session 4
    • Monadic Smart Contract
      Vugranam C. Sreedhar (IBM GTS/TSS Global Blockchain Leader)
    • Obsidian: A Safer, More Effective Blockchain Programming Language
      Michael Coblenz, Jonathan Aldrich, Brad Myers, and Joshua Sunshine (Carnegie Mellon University)
    • Functional Graph Pattern Matching for Cybersecurity and Beyond (slides)
      Xiaokui Shu, Frederico Araujo, Douglas L. Schales, Marc Ph. Stoecklin (IBM Research)
    • Enabling Effective and Efficient APT Defenses via Querying System Monitoring Data (slides)
      Peng Gao (Princeton University)
    • Multi-View Architecture Language for Description and Enforcement (slides)
      Amanda Liu (Columbia University), Selva Samuel, Jonathan Aldrich (Carnegie Mellon University)


Nicholas Matsakis (Mozilla Research), Designing Rust

Rust is a new programming language that is growing rapidly. Rust's goal is to help in writing programs that are at once correct and efficient. Rust offers performance comparable to C++ and, like C++, has minimal runtime requirements -- it does not require a runtime or garbage collector, and you can even choose to forego the standard library. At the same time, Rust offers some of the strongest safety guarantees around -- not only type and memory safety, but also data-race freedom! A consequence of "squaring this circle" is that Rust manages to appeal both to experienced systems programmers but also those who are more accustomed to dynamic languages and runtimes.

This talk covers the key parts of Rust's design, but it also covers something else equally important: how Rust is designed. Rust operates in an aggressively open way, with a process that is designed to bring in feedback from many different groups of people at once. This process has evolved over time and continues to evolve. We'll cover some of the key lessons we've learned, and some of the problems that we're wrestling with -- lessons that are applicable to most any open-source project, and any project that aims to design "in the open".

Nicholas Matsakis is a Senior Staff Researcher at Mozilla Research and a member of the Rust core team. He has been working on Rust since 2011 and did much of the initial work on its type system and other core features. He did his undergraduate study at MIT, graduating in 2001, and later obtained a PhD in 2011, working with Thomas Gross at ETH Zurich. He also spent several years at DataPower Technology, a startup since acquired by IBM, working on the JIT compiler and networking runtime.

Selection Committee:
- Amal Ahmed (Northeastern University)
- Guillaume Baudart (IBM Research)
- Louis Mandel (IBM Research)
- Mukund Raghothaman (University of Pennsylvania)
- Eddy Zheng Zhang (Rutgers University)

Important Dates:
- Abstract submission: 11 November 2018 18 November 2018
- Decision: 20 November 2018 27 November 2018
- Registration date: 3 December 2018
- IBM PL Day: 10 December 2018

Abstract Submission:
We welcome all topics related to programming languages and systems including areas such as Serverless, Cloud Native, Block Chain programming, AI programming, Security, and DevOps, and encourage all results, including preliminary work and progress reports. Talks are about 10 minutes long. If you want to present your work, please submit a title and abstract (about 300 words).

For any questions, please contact one of the co-organizers:
- Louis Mandel ( or
- Guillaume Baudart (


Important Dates

  • Abstract submission: 17 November 2019
  • Decision: 27 November 2019
  • Registration date: 4 December 2019
  • IBM PL Day: 9 December 2019