— ACM SIGPLAN Workshop on Partial Evaluation and Program ManipulationPEPM 2018
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.
- Conal Elliott’s invited talk is changed to The Simple Essence of Automatic Differentiation.
- There will be 5 poster/demo presentations as well as 4 poster presentations of regular research and short papers. The interactive poster/demo session will be preceded by 10-minute talks advertising the 5 poster/demo presentations.
- The programme is available.
- The three invited talks are announced.
Mon 8 JanDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00
|Developments in Property-Based Testing (Invited Talk)|
Jan Midtgaard University of Southern DenmarkDOI
|Selective CPS Transformation for Shift and Reset|
14:00 - 15:30
|A Guess-and-Assume Approach to Loop Fusion for Program Verification|
Akifumi Imanishi Kyoto University, Kohei Suenaga Graduate School of Informatics, Kyoto University, Atsushi Igarashi Kyoto University, JapanDOI
|Gradually Typed Symbolic Expressions|
|On the Cost of Type-Tag Soundness|
Tue 9 JanDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00
|Challenges in the Design and Compilation of Programming Languages for Exascale Machines (Invited Talk)|
Alex Aiken Stanford University
|Checking Cryptographic API Usage with Composable Annotations (Short Paper)|
Duncan Mitchell Royal Holloway, University of London, L. Thomas van Binsbergen Royal Holloway University of London, Blake Loring , Johannes Kinder Royal Holloway, University of LondonDOI
14:00 - 15:30
|Partially Static Data as Free Extension of Algebras (Short Paper)|
Jeremy Yallop University of Cambridge, UK, Tamara von Glehn University of Cambridge, Ohad Kammar University of OxfordPre-print
|Program Generation for ML Modules (Short Paper)|
|Recursive Programs in Normal Form (Short Paper)|
Barry Jay University of Technology SydneyDOI
16:00 - 17:30
|Towards Language-independent Code Synthesis (Poster/Demo Talk)|
Jan Bessai Technical University Dortmund, Boris Düdder University of Copenhagen, George Heineman Worcester Polytechnic Institute, Jakob Rehof Technical University DortmundFile Attached
|Dataflow Metaprogramming (Poster/Demo Talk)|
|An Approach to Generating Text-Based IDEs with Syntax Completion (Poster/Demo Talk)|
Isao Sasano Shibaura Institute of Technology
|Modular Macros (Poster/Demo Talk)|
|Equations: From Clauses to Splittings to Functions (Poster/Demo Talk)|
Accepted Papers and Poster/Demo Presentations
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.
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:
author names and institutions must be omitted, and
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.
- 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.)
PEPM 2018 continues the tradition of a Best Paper award. The winner will be announced at the workshop.
- 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.
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.
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.
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.