This program is tentative and subject to change.

Mon 2 Jun 2025 15:30 - 15:55 at S 9 - Debugging and Teaching

In the winter term 2024/25, we launched the first edition of Build Your Own Programming Language (BYOPL), a university course in which 20 students implemented a full dynamic language on top of the Truffle/GraalVM platform. Using a provided Lox-based baseline and working with the recently introduced Truffle Bytecode DSL, students developed bytecode-interpreted runtimes supporting expressions, control flow, functions, closures, objects, inheritance, and tooling support.

The course was structured around weekly lectures and development milestones, with all source code published and extended incrementally. This structure made it easy for students to follow along, yet integrating all components into a coherent and performant runtime proved challenging. Despite this, engagement remained high throughout the course. Students tackled optional weekly bonus challenges—often involving complex language or runtime features—and all participants completed the final project.

To evaluate implementations, we adapted a subset of the Are We Fast Yet? benchmarks, requiring some practical extensions to the Lox language. The course concluded with a benchmark-based shootout and individual oral exams, where students were interviewed about their own codebases to assess their understanding beyond copy-paste development. One of the key takeaways was that, although all students had access to the same reference implementations and were introduced to debugging and visualization tools, the final performance of their interpreters varied significantly. This variance revealed much about how subtle design and implementation choices affect runtime behavior—even within a shared framework like Truffle. In this talk, we’ll present the technical structure of the course, the architectural decisions behind the runtime, and what we learned about dynamic language implementation through observing a dozen independent Truffle-based interpreters evolve in parallel.

This program is tentative and subject to change.

Mon 2 Jun

Displayed time zone: Belgrade, Bratislava, Budapest, Ljubljana, Prague change

15:30 - 17:00
Debugging and TeachingMoreVMs at S 9
15:30
25m
Talk
BYOPL: Building a Bytecode-Interpreted Language on Truffle in a University Setting
MoreVMs
Jens Lincke Hasso Plattner Institute; University of Potsdam, Tim Felgentreff Oracle Labs, Potsdam, Fabio Niephaus Oracle Labs, Robert Hirschfeld Hasso Plattner Institute; University of Potsdam
15:55
25m
Talk
Debugging a Smalltalk VM assisted by large automated reasoning
MoreVMs
Boris Shingarov LabWare, Jan Vraný LabWare
16:20
25m
Talk
Writing Tiny Programming Systems
MoreVMs
Tomas Petricek Charles University