The ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM), which has a history going back to 1991 and has co-located with POPL every year since 2006, originates in the discoveries of practically useful automated techniques for evaluating programs with only partial input. Over the years, the scope of PEPM has expanded to include a variety of research areas centred around the theme of semantics-based program manipulation — the systematic exploitation of treating programs not only as subject to black-box execution, but also as data structures that can be generated, analysed, and transformed while establishing or maintaining important semantic properties.


The proceedings can be downloaded for free via ACM SIGPLAN’s OpenTOC page for PEPM 2018.


You're viewing the program in a time zone which is different from your device's time zone - change time zone

Mon 8 Jan
Times are displayed in time zone: Tijuana, Baja California change

10:30 - 12:00: Session 1-1PEPM at Crocker
Chair(s): Hsiang-Shang ‘Josh’ KoNational Institute of Informatics, Japan
10:30 - 11:30
Developments in Property-Based Testing (Invited Talk)
Jan MidtgaardUniversity of Southern Denmark
11:30 - 12:00
Selective CPS Transformation for Shift and Reset
Kenichi AsaiOchanomizu University, Chihiro UeharaOchanomizu University
14:00 - 15:30: Session 1-2PEPM at Crocker
Chair(s): Kenichi AsaiOchanomizu University
14:00 - 14:30
A Guess-and-Assume Approach to Loop Fusion for Program Verification
Akifumi ImanishiKyoto University, Kohei SuenagaGraduate School of Informatics, Kyoto University, Atsushi IgarashiKyoto University, Japan
14:30 - 15:00
Gradually Typed Symbolic Expressions
David BromanKTH Royal Institute of Technology, Jeremy G. SiekIndiana University, USA
15:00 - 15:30
On the Cost of Type-Tag Soundness
Ben GreenmanNortheastern University, Zeina MigeedUniversity of California, Los Angeles
16:00 - 17:30: Session 1-3PEPM at Crocker
Chair(s): Frank PfenningCarnegie Mellon University, USA
16:00 - 17:00
The Simple Essence of Automatic Differentiation (Invited Talk)
Conal ElliottTarget, USA

Tue 9 Jan
Times are displayed in time zone: Tijuana, Baja California change

10:30 - 12:00: Session 2-1PEPM at Crocker
Chair(s): Fritz HengleinDIKU, Denmark
10:30 - 11:30
Challenges in the Design and Compilation of Programming Languages for Exascale Machines (Invited Talk)
Alex AikenStanford University
11:30 - 12:00
Checking Cryptographic API Usage with Composable Annotations (Short Paper)
Duncan MitchellRoyal Holloway, University of London, L. Thomas van BinsbergenRoyal Holloway University of London, Blake Loring, Johannes KinderRoyal Holloway, University of London
14:00 - 15:30: Session 2-2PEPM at Crocker
Chair(s): Kohei SuenagaGraduate School of Informatics, Kyoto University
14:00 - 14:30
Partially Static Data as Free Extension of Algebras (Short Paper)
Jeremy YallopUniversity of Cambridge, UK, Tamara von GlehnUniversity of Cambridge, Ohad KammarUniversity of Oxford
14:30 - 15:00
Program Generation for ML Modules (Short Paper)
Takahisa WatanabeUniversity of Tsukuba, Japan, Yukiyoshi KameyamaUniversity of Tsukuba, Japan
15:00 - 15:30
Recursive Programs in Normal Form (Short Paper)
Barry JayUniversity of Technology Sydney
16:00 - 17:30: Session 2-3PEPM at Crocker
Chair(s): Barry JayUniversity of Technology Sydney
16:00 - 16:10
Towards Language-independent Code Synthesis (Poster/Demo Talk)
Jan BessaiTechnical University Dortmund, Boris DüdderUniversity of Copenhagen, George HeinemanWorcester Polytechnic Institute, Jakob RehofTechnical University Dortmund
File Attached
16:10 - 16:20
Dataflow Metaprogramming (Poster/Demo Talk)
Dominic Duggan, Jianhua YaoStevens Institute of Technology
16:20 - 16:30
An Approach to Generating Text-Based IDEs with Syntax Completion (Poster/Demo Talk)
Isao SasanoShibaura Institute of Technology
16:30 - 16:40
Modular Macros (Poster/Demo Talk)
Olivier Nicole, Leo WhiteJane Street, Jeremy YallopUniversity of Cambridge, UK
File Attached
16:40 - 16:50
Equations: From Clauses to Splittings to Functions (Poster/Demo Talk)
File Attached
16:50 - 17:30

Call for Papers


In addition to the traditional PEPM topics (see below), PEPM 2018 welcomes submissions in new domains, in particular:

  • Semantics based and machine-learning based program synthesis and program optimisation.

  • Modelling, analysis, and transformation techniques for distributed and concurrent protocols and programs, such as session types, linear types, and contract specifications.

More generally, topics of interest for PEPM 2018 include, but are not limited to:

  • Program and model manipulation techniques such as: supercompilation, partial evaluation, fusion, on-the-fly program adaptation, active libraries, program inversion, slicing, symbolic execution, refactoring, decompilation, and obfuscation.

  • Techniques that treat programs/models as data objects including metaprogramming, generative programming, embedded domain-specific languages, program synthesis by sketching and inductive programming, staged computation, and model-driven program generation and transformation.

  • Program analysis techniques that are used to drive program/model manipulation such as: abstract interpretation, termination checking, binding-time analysis, constraint solving, type systems, automated testing and test case generation.

  • Application of the above techniques including case studies of program manipulation in real-world (industrial, open-source) projects and software development processes, descriptions of robust tools capable of effectively handling realistic applications, benchmarking. Examples of application domains include legacy program understanding and transformation, DSL implementations, visual languages and end-user programming, scientific computing, middleware frameworks and infrastructure needed for distributed and web-based applications, embedded and resource-limited computation, and security.

This list of categories is not exhaustive, and we encourage submissions describing new theories and applications related to semantics-based program manipulation in general. If you have a question as to whether a potential submission is within the scope of the workshop, please contact the programme co-chairs, Fritz Henglein and Josh Ko.

Submission categories and guidelines

Two kinds of submissions will be accepted: Regular Research Papers and Short Papers.

  • Regular Research Papers should describe new results, and will be judged on originality, correctness, significance, and clarity. Regular research papers must not exceed 12 pages (excluding bibliography).

  • Short Papers may include tool demonstrations and presentations of exciting if not fully polished research, and of interesting academic, industrial, and open-source applications that are new or unfamiliar; they will be evaluated primarily on the basis of their ideas rather than finished execution. Short papers must not exceed 6 pages (excluding bibliography), and should include the words “short paper” somewhere in their title (in both the submission form and the PDF).

Both kinds of submissions should be typeset using the two-column sigplan sub-format of the new acmart format available at:

and submitted electronically via HotCRP:

PEPM 2018 will employ lightweight double-blind reviewing according to the rules of POPL 2018. Quoting from POPL 2018’s call for papers:

submitted papers must adhere to two rules:

  1. author names and institutions must be omitted, and

  2. references to authors’ own related work should be in the third person (e.g., not “We build on our previous work …” but rather “We build on the work of …”).

The purpose of this process is to help the PC and external reviewers come to an initial judgment about the paper without bias, not to make it impossible for them to discover the authors if they were to try. Nothing should be done in the name of anonymity that weakens the submission or makes the job of reviewing the paper more difficult. In particular, important background references should not be omitted or anonymized. In addition, authors should feel free to disseminate their ideas or draft versions of their paper as they normally would. For instance, authors may post drafts of their papers on the web or give talks on their research ideas.

See POPL 2018’s Submission and Reviewing FAQ page for more information.

Submissions are welcome from PC members (except the two co-chairs) provided that there are non-PC co-authors.

Accepted papers will appear in formal proceedings published by ACM, and be included in the ACM Digital Library. Authors of short papers, however, can ask for their papers to be left out of the formal proceedings.

At least one author of each accepted contribution must attend the workshop and present the work. In the case of tool demonstration papers, a live demonstration of the described tool is expected.

Student participants with accepted papers can apply for a SIGPLAN PAC grant to help cover travel expenses and other support. PAC also offers other support, such as for child-care expenses during the meeting or for travel costs for companions of SIGPLAN members with physical disabilities, as well as for travel from locations outside of North America and Europe. For details on the PAC programme, see its web page.

Important dates

  • Paper submission deadline: Friday 6th October 2017 (AoE) (firm)
  • Author notification: Saturday 4th November 2017
  • Workshop: Monday 8th – Tuesday 9th January 2018

The proceedings will be published 2 weeks pre-conference.

AUTHORS TAKE NOTE: The official publication date is the date the proceedings are made available in the ACM Digital Library. This date may be up to two weeks prior to the first day of your conference. The official publication date affects the deadline for any patent filings related to published work. (For those rare conferences whose proceedings are published in the ACM Digital Library after the conference is over, the official publication date remains the first day of the conference.)

Best paper award

PEPM 2018 continues the tradition of a Best Paper award. The winner will be announced at the workshop.

Programme committee

  • Nada Amin (EPFL)
  • Shigeru Chiba (University of Tokyo)
  • Ezgi Çiçek (Max Planck Institute for Software Systems)
  • Olivier Danvy (Yale-NUS College)
  • Ronald Garcia (University of British Columbia)
  • Simon Gay (University of Glasgow)
  • Andy Gill (X, the Moonshot Factory)
  • Fritz Henglein (co-chair) (University of Copenhagen)
  • Anastasia Izmaylova (IMC Financial Markets)
  • Johan Jeuring (Utrecht University)
  • Gabriele Keller (University of New South Wales)
  • Oleg Kiselyov (Tohoku University)
  • Hsiang-Shang Ko (co-chair) (National Institute of Informatics)
  • Ralf Lämmel (University of Koblenz-Landau)
  • Julia Lawall (Inria)
  • Simon Peyton Jones (Microsoft Research Cambridge)
  • Frank Pfenning (Carnegie Mellon University)
  • Sriram Rajamani (Microsoft Research India)
  • Norman Ramsey (Tufts University)
  • Thomas Reps (University of Wisconsin-Madison)
  • Sergei Romanenko (Keldysh Institute of Applied Mathematics)
  • Tiark Rompf (Purdue University)
  • Wolfram Schulte (Facebook)
  • Peter Sestoft (IT University of Copenhagen)
  • Harald Søndergaard (University of Melbourne)
  • Kohei Suenaga (Kyoto University)
  • Martin Vechev (ETH Zurich)
  • Marcos Viera (University of the Republic)
  • Nobuko Yoshida (Imperial College London)

Call for Poster/Demo Abstracts

To maintain PEPM’s dynamic and interactive nature, PEPM 2018 will continue to have special sessions for poster/demo presentations. In addition to the main interactive poster/demo session, there will also be a scheduled short-talk session where each poster/demo can be advertised to the audience in, say, 5–10 minutes.

Poster/demo abstracts should describe work relevant to PEPM (whose scope can be found in the Call for Papers), typeset as a one-page PDF using the two-column sigplan sub-format of the new acmart format available at:

and sent by email to the programme co-chairs, Fritz Henglein and Josh Ko, at:,

Please also include in the email:

  • a short summary of the abstract (in plain text),
  • the type(s) of proposed presentation (poster and/or demo), and
  • whether you would like to give a scheduled short talk (in addition to the poster/demo presentation).

Abstracts should be sent no later than:

Friday, 8th December 2017, anywhere on earth

and will be considered for acceptance on a rolling basis. Accepted abstracts, along with their short summary, will be posted on this website.

At least one author of each accepted abstract must attend the workshop and present the work during the poster/demo session.

Student participants with accepted posters/demos can apply for a SIGPLAN PAC grant to help cover travel expenses and other support. PAC also offers other support, such as for child-care expenses during the meeting or for travel costs for companions of SIGPLAN members with physical disabilities, as well as for travel from locations outside of North America and Europe. For details on the PAC programme, see its web page.

Challenges in the Design and Compilation of Programming Languages for Exascale Machines

Alex Aiken (Stanford University)

A new class of very large scale parallel and distributed machines are emerging, with more processors, more complex memory hierarchies, and much more heterogeneity than machines of the past. This talk will outline the likely trends in such machines and why it is worth thinking about programming languages that program them as a whole, rather than current standard approaches which use a mix of technologies. Using the Legion programming model as an example, we’ll discuss a number of novel challenges that arise in the design and compilation of languages for such machines and discuss our current understanding of solutions.

Developments in Property-Based Testing

Jan Midtgaard (University of Southern Denmark)

Property-based testing (aka. QuickCheck) is a successful automated testing approach originating in the programming language community (Claessen-Hughes:ICFP00). It unites the well-known idea of randomized testing with that of ensuring program-specific properties akin to those encountered within verification and theorem proving. Starting as a Haskell library the approach has grown to become language independent with ports to over 30 different programming languages. Over the years property-based testing has been used to pinpoint an impressive amount of software errors in a multitude of settings, initially within academia but more and more so also in the software industry.

In this talk I will first recall the basic concepts of property-based testing and then cover a couple of recent applications, while sharing some of the folklore and community know-how. This includes quite a bit of symbolic program manipulation at the heart of the PEPM community. I will then offer a personal perspective on the approach, both in terms of programming language theory and software engineering.

The Simple Essence of Automatic Differentiation

Conal Elliott (Target)

Automatic differentiation (AD) is often presented in two forms: forward mode and reverse mode. Forward mode is quite simple to implement and package via operator overloading but is inefficient for many problems of practical interest such as deep learning and other uses of gradient-based optimization. Reverse mode (including its specialization, back-propagation) is much more efficient for these problems, but is also typically given much more complicated explanations and implementations, involving mutation, graph construction, and “tapes”. This talk develops a very simple specification and Haskell implementation for mode-independent AD based on the vocabulary of categories (generalized functions). Although the categorical vocabulary would be difficult to write in directly, one can instead write regular Haskell programs to be converted to this vocabulary automatically (via a compiler plugin) and then interpreted as differentiable functions. The result is direct, exact, and efficient differentiation of Haskell programs with no notational overhead. The specification and implementation are then generalized considerably by parameterizing over an underlying category. This generalization is then easily specialized to forward and reverse modes, with the latter resulting from a simple dual construction for categories. Another instance of generalized AD is automatic incremental evaluation of functional programs, again with no notational impact to the programmer.