Just-in-Time (JIT) Compilation and Virtual Machines (Proseminar)

Many modern programming language implementations, especially those for highly dynamic languages, rely on just-in-time compilation techniques to improve their performance. Those JIT’ted language implementations might operate directly on the Abstract Syntax Tree of the source language or on some intermediate bytecode format, i.e., implement a virtual machine like, e.g., the JVM or CLR.

In this seminar, we will get a basic overview of different JIT compilation techniques as well as their application. Also, where applicable, we will try to play around with or reproduce parts of the shown implementations and ideas.


Each student will read a paper and:

  • present (some aspects of) it to the other participants,
  • organize the rest of the session (see below), and
  • write a blogpost explaining the paper/topic to other students.

Structure of the sessions

The first two sessions will be an introductory tutorial done by Marcial Gaißert.

Later sessions will start with a talk by a participant, and then continue with one or more of:

  • A moderated discussion about the topic of the paper (moderated by the speaker).
  • Working on a related implementation task. e.g., using or reimplementing (part of) a tool that was presented (with guidance from the speaker).
  • Doing an experiment related to the topic (with guidance from the speaker).


To participate in this course, send an email containing your name, Matrikelnummer and Studiengang to Marcial Gaißert.


  • The seminar will take place weekly, Wednesdays from 10-12am in A302.
    • Bring a laptop if possible!
  • The first meeting will take place on 18th Oct 2023 in Room A302.



“Programmiersprachen 1” will be helpful. However, the first two sessions will be a tutorial to bring you up to speed on necessary prior knowledge.