European Lisp Symposium

- 2023, Amsterdam
The conference is over!

There are several ways for you to join ELS online:

The timezone of our schedule is UTC+2. The videos of the streams will stay online for two weeks on Twitch, but will also be available on our YouTube channel. See you online!


  • Keynote (remote): Artificial Intelligence: a Problem of Plumbing?

    • photo Gerald J. Sussman Gerald J. Sussman (SPEAKER KEYNOTE) USA

    We have made amazing progress in the construction and deployment of systems that do work originally thought to require human-like intelligence. On the symbolic side we have world-champion Chess-playing and Go-playing systems. We have deductive systems and algebraic manipulation systems that exceed the capabilities of human mathematicians. We are now observing the rise of connectionist mechanisms that appear to see and hear pretty well, and chatbots that appear to have some impressive linguistic ability. But there is a serious problem. The mechanisms that can distinguish pictures of cats from pictures of dogs have no idea what a cat or a dog is. The chatbots have no idea what they are talking about. The algebraic systems do not understand anything about the real physical world. And no deontic logic system has any idea about feelings and morality. So what is the problem? We generally do not know how to combine systems so that a system that knows how to solve problems of class A and another system that knows how to solve problems of class B can be combined to solve not just problems of class A or class B but can solve problems that require both skills that are needed for problems of class A and skills that are needed for problems of class B. Perhaps this is partly a problem of plumbing. We do not have linguistic structures that facilitate discovering and building combinations. This is a fundamental challenge for the programming-language community. We need appropriate ideas for abstract plumbing fittings that enable this kind of cooperation among disparate mechanisms. For example, why is the amazingly powerful tree exploration mechanism that is used for games not also available, in the same system, to a deductive engine that is being applied to a social interaction problem? I will attempt to elucidate this problem and perhaps point at avenues of attack that we may work on together.

  • Keynote: A Language-Based Approach to Programming with Serialized Data

    • photo Michael Vollmer Michael Vollmer (SPEAKER KEYNOTE) UK

    It is common for software running today to use object representations fixed by the language runtime system; both the Java and Haskell runtimes dictate an object layout, and the compiler must stick to it for all programs. And yet when humans optimize a program, one of their primary levers on performance is changing data representation. For example, an HPC programmer knows how to pack a regular tree into a byte array for more efficient access. Unfortunately, this is error-prone, making it an undesirable way to achieve performance optimization at the expense of safety and readability. Furthermore, whenever a program receives data from the network or disk, rigid insistence on a particular heap layout causes an impedance mismatch we know as deserialization. Data represented in memory has pointers and arbitrary, sparse layout, while data on disk is packed contiguously, so data must be transformed from one form to another and back. Programming with serialized data is a technique for unifying the in-memory and on-disk representations of data, where the serialized form is used both on-disk and in-memory. This technique allows data processing programs to skip the deserialization/reserialization steps by operating directly on the data in its serialized form. It also represents a principled approach to optimizing programs by compacting data representations, which increases locality and minimizes indirection. In this talk, I will present a programming language, LoCal, for programming with serialized data. I will also describe Gibbon, an experimental compiler that automatically transforms functional programs to operate on serialized data.

  • Keynote: Hedy: Gradual, Multi-Lingual, and Teacher-Centric Programming Education

    • photo Felienne Hermans Felienne Hermans (SPEAKER KEYNOTE) Nederlands

    When kids learn to program they often use either a visual language like Scratch, or a textual language like Python. While visual languages are great for the first steps, children and educators often want to move on to textual languages. However, early on, a textual language and its error messages can be scary. Hedy aims to bridge this gap with a programming language that is gradual, using different language levels. In level 1, there is hardly any syntax at all; printing is done with: print hello! At every level, new syntax and concepts are added, so learners do not have to master everything at once. Hedy builds up to a subset of Python including conditions, loops, variables, and lists. To make learning as accessible as possible, Hedy also allows for the use of localized keywords, f.e in Spanish: imprimir Hello! Hedy ( was launched in early 2020 and over 5 million Hedy progams have been created to date, and has been translated into 46 languages.

  • Keynote: Run-Time Verification of Communication Protocols in Clojure

    • photo Sung-Shik Jongmans Sung-Shik Jongmans (SPEAKER KEYNOTE) Nederlands

    To simplify shared-memory concurrent programming, languages have started to offer core support for high-level communications primitives, in the form of message passing though channels, in addition to lower-level synchronization primitives. Yet, a growing body of evidence suggests that channel-based programming abstractions also have their issues. The Discourje project aims to help programmers cope with channels and concurrency bugs in Clojure programs, based on dynamic analysis. The idea is that programmers write not only implementations of communication protocols in their Clojure programs, but also specifications. Discourje then offers a run-time verification library to ensure that channel actions in implementations are safe relative to specifications.


photo Startup Village (CONFERENCE) Science Park 608 1098 XH Amsterdam Nederlands


ELS 2023 will take place in Startup Village which is located in Amsterdam Science Park, one of the campuses of the University of Amsterdam.

Amsterdam Science Park has its own railway station from where it is 10 minutes walk across the campus to Startup Village. You can find information and schedules on the site of NS, the Dutch national railway.

Startup Village is also served by the number 40 bus. You can alight at bus stop Science Park Terra which is right at the entrance to the Village. You may buy a ticket for one hour, one day or multiday. And if you haven't bought a ticket in advance, you can even pay incidentally by swiping your bank pass in the tram or bus.

Generally speaking, public transport in and around Amsterdam is of high quality. Your favourite search engine will usually give you accurate and up-to-date information but these sites may also be helpful for planning your trips.

  • Amsterdam public transport
  • Public Transport route finder in the Netherlands
  • One of the best ways to get around Amsterdam is by bike. There are many places in the city where you can rent a bike but one that you might find particularly convenient is the OV Fiets (OV is "public transport" and "fiets" is the Dutch word for a bike). You can pick up a rental bike at most railway stations for €4.45 per day.

    If you arrive by car, you can park in Parking lot P7 which is two minutes walk from Startup Village. Parking costs €4.50 per hour.


    Some events at around the time of the conference may be of interest.

    April 27th in the Nederlands is King's Day, the national holiday, a renowned and very colorful event, especially in Amsterdam. This is a great opportunity for those who'd wish to combine ELS with some tourism...

    More information on King's Day here

    The Keukenhof describes itself as "The most beautiful spring garden in the world." It is currently in bloom.

    The Rijksmuseum is currently hosting the largest exhibition ever of paintings by Vermeer. However it will be difficult to find tickets.


    Programme Chair

    • photo Stefan Monnier Stefan Monnier DIRO, Université de Montréal (PROGRAMME-CHAIR) Canada

    Organizing Chair

    Local Chair

    • photo Breanndán Ó Nualláin Breanndán Ó Nualláin Machine Learning Programs (LOCAL-CHAIR) Netherlands


    • photo Alan Ruttenberg Alan Ruttenberg (COMMITTEE) USA
    • photo Ambrose Bonnaire-Sergeant Ambrose Bonnaire-Sergeant (COMMITTEE)
    • photo Christopher League Christopher League (COMMITTEE) USA
    • photo Ioanna Dimitriou Ioanna Dimitriou (COMMITTEE) Germany
    • photo Irène Durand Irène Durand (COMMITTEE) France
    • photo Jay McCarthy Jay McCarthy (COMMITTEE) USA
    • photo Ludovic Courtès Ludovic Courtès (COMMITTEE) France
    • photo Marc Battyani Marc Battyani (COMMITTEE)
    • photo Marc Feeley Marc Feeley (COMMITTEE) Canada
    • photo Marco Heisig Marco Heisig (COMMITTEE) Germany
    • photo Mark Evenson Mark Evenson (COMMITTEE) Austria
    • photo Matthew Flatt Matthew Flatt (COMMITTEE) USA
    • photo Mattias Engdegård Mattias Engdegård (COMMITTEE)
    • photo Nick Levine Nick Levine (COMMITTEE) Spain
    • photo Robert Smith Robert Smith (COMMITTEE)

    Virtualization Team

    • photo Georgiy Tugai Georgiy Tugai Configura (VIRTUALIZATION) Sweden
    • photo Yukari Hafner Yukari Hafner Shinmera (VIRTUALIZATION SPEAKER) Switzerland


    Times are local to the conference. You can download the programme in iCalendar format here.
    1. April 24th

    2. Registration, badges, meet and greet

    3. Welcome message and announcements

    4. Keynote: Run-Time Verification of Communication Protocols in Clojure

      • Sung-Shik Jongmans
    5. Coffee Break

    6. Research Paper: A MOP-Based Implementation for Method Combinations

      • Didier Verna
    7. Research Paper: A Minimal Run-Time Overhead Metaobject Protocol for Julia

      • Marcelo Santos
      • Antonio Leitao
    8. Lunch

    9. Research Paper: An Elegant and Fast Algorithm for Partitioning Types

      • Jim Newton
    10. Demonstration: GRASP: An Extensible Tactile Interface for Editing S-expressions

      • Panicz Maciej Godek
    11. Coffee Break

    12. Keynote: Hedy: Gradual, Multi-Lingual, and Teacher-Centric Programming Education

      • Felienne Hermans
    13. Enlightening Lightning Talks

    14. Conference dinner (on site)

    15. April 25th

    16. Keynote: A Language-Based Approach to Programming with Serialized Data

      • Michael Vollmer
    17. Coffee Break

    18. Demonstration (remote): A stepper for Armed Bear Common Lisp (ABCL)

      • Alejandro Zamora Fonseca
    19. Experience Report: Kandria - A Game in Common Lisp

      • Yukari Hafner
    20. Sponsored: SISCOG - 35 years of keeping trains on track

      • Fábio Almeida
    21. Lunch

    22. Research Paper (remote): Parallel Garbage Collection for SBCL

      • Hayley Patton
    23. Research Paper: Design of an Efficient Lisp Bytecode Machine and Compiler

      • Alexander Wood
      • Charles Zhang
      • Christian Schafmeister
    24. Coffee Break

    25. Keynote (remote): Artificial Intelligence: a Problem of Plumbing?

      • Gerald J. Sussman
    26. Enlightening Lightning Talks


    You can find the proceedings in PDF form here:


    Please wait...