PLDI 2025
Mon 16 - Fri 20 June 2025 Seoul, South Korea

Researchers have presented numerous frameworks for mechanizing the definition of programming languages. Ott takes a language definition in ASCII notation as input and generates various versions of the definition, including LaTeX, Coq, and Isabelle/HOL. K generates tools such as interpreters, model checkers, and verifiers, from language definitions encoded in K’s term rewriting system. PLT Redex supports the specification and debugging of language semantics using randomized test generation. Skeletal Semantics describes and manipulates language semantics and can generate OCaml interpreters and Coq formalizations. Some frameworks are more specialized. Sail supports processor instruction set architecture definitions, generates SMT encodings, theorem prover definitions, and LaTeX document fragments. ESMeta generates mechanized JavaScript semantics and various tools from prose specifications of JavaScript. SpecTec generates a typeset specification, including formal definitions and prose descriptions, and a meta-level interpreter from a SpecTec definition of the WebAssembly semantics.

Some of these tools have been applied to mechanize the definition of real-world programming languages and have been adopted by language standardization organizations to verify or generate normative language specifications. Sail supports the complete ISA specifications for several Arm architectures, automatically translated from the Arm-internal ASL reference (as used in the Arm reference manual). ESMeta is integrated into the CI systems of ECMA-262, the JavaScript language specification, and Test262, the JavaScript test suite. The WebAssembly Community Group has agreed to adopt SpecTec as a toolchain for WebAssembly specifications (when it is ready). Inspired by these achievements, researchers are applying similar techniques to other languages such as P4 and Rust. In this workshop, we will discuss different approaches to mechanizing the definition and implementation of real-world programming languages.

This program is tentative and subject to change.

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

Tue 17 Jun

Displayed time zone: Seoul change

09:00 - 10:10
Session 1RPLS at Cosmos

K and Redex

09:15
25m
Talk
Programming Languages Must Have Formal Semantics. Period.
RPLS
Xiaohong Chen University of Illinois at Urbana-Champaign
09:40
25m
Talk
Lightweight Semantics Engineering with Redex
RPLS
Matthew Flatt University of Utah
10:30 - 12:00
Session 2RPLS at Cosmos

Mechanized Specifications for WebAssembly and JavaScript

10:30
25m
Talk
SpecTec, a Single Source of Truth
RPLS
10:55
25m
Talk
Trusted JavaScript Language Environments with ESMeta
RPLS
Jihyeok Park Korea University
11:20
25m
Talk
The Software Supporting the JavaScript Language Specification
RPLS
14:00 - 15:20
Session 3RPLS at Cosmos

Verification and Reasoning

14:05
25m
Talk
Lightweight Hypervisor Verification: Putting the Hardware Burger on a DietRemote
RPLS
Nate Foster Cornell University; Jane Street
14:30
25m
Talk
P4-Based Automated Reasoning (P4-BAR) using Symbolic Execution at Google
RPLS
14:55
25m
Talk
Verification of WebAssembly Features
RPLS
Philippa Gardner Imperial College London, Conrad Watt Nanyang Technological University
15:40 - 17:30
Session 4RPLS at Cosmos

Specifications for Real-World Programming Languages

15:40
25m
Talk
MiniRust: A Core Language for Specifying Rust
RPLS
Ralf Jung ETH Zurich
16:05
25m
Talk
Production Language Specification - Requirements for Multiple UsagesRemote
RPLS
Peter Sewell University of Cambridge
16:30
60m
Panel
Panel: Mechanized Specifications for Real-World Programming Languages
RPLS
M: Sukyoung Ryu KAIST, P: Xiaohong Chen University of Illinois at Urbana-Champaign, P: Jonathan DiLorenzo Google, P: Michael Ficarra F5, P: Ralf Jung ETH Zurich
19:30 - 21:30
RPLS Committee DinnerRPLS / Catering at Blossom 2
19:30
2h
Dinner
Dinner
Catering

Hide past events

Call for Participants

This workshop will be centered around a small number of invited talks on the development, use, and maintenance of real-world programming language specifications, interspersed with panel discussions and broader discussion among the attendees.