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

Many mod­ern pro­gram­ming lan­guage im­ple­men­ta­tions, es­pe­cially those for highly dy­namic lan­guages, rely on just-in-time com­pi­la­tion tech­niques to im­prove their per­for­mance. Those JIT’ted lan­guage im­ple­men­ta­tions might op­er­ate di­rectly on the Ab­stract Syn­tax Tree of the source lan­guage or on some in­ter­me­di­ate byte­code for­mat, i.e., im­ple­ment a vir­tual ma­chine like, e.g., the JVM or CLR.

In this sem­i­nar, we will get a basic overview of dif­fer­ent JIT com­pi­la­tion tech­niques as well as their ap­pli­ca­tion. Also, where ap­plic­a­ble, we will try to play around with or re­pro­duce parts of the shown im­ple­men­ta­tions and ideas.

Re­quire­ments

Each stu­dent will read a paper and:

  • pre­sent (some as­pects of) it to the other par­tic­i­pants,
  • or­ga­nize the rest of the ses­sion (see below), and
  • write a blog­post ex­plain­ing the paper/topic to other stu­dents.

Struc­ture of the ses­sions

The first two ses­sions will be an in­tro­duc­tory tu­to­r­ial done by Mar­cial Gaißert.

Later ses­sions will start with a talk by a par­tic­i­pant, and then con­tinue with one or more of:

  • A mod­er­ated dis­cus­sion about the topic of the paper (mod­er­ated by the speaker).
  • Work­ing on a re­lated im­ple­men­ta­tion task. e.g., using or reim­ple­ment­ing (part of) a tool that was pre­sented (with guid­ance from the speaker).
  • Doing an ex­per­i­ment re­lated to the topic (with guid­ance from the speaker).

En­rolling

To par­tic­i­pate in this course, send an email con­tain­ing your name, Ma­trikel­num­mer and Stu­di­en­gang to Mar­cial Gaißert.

Dates

  • The sem­i­nar will take place weekly, Wednes­days from 10-12am in A302.
    • Bring a lap­top if pos­si­ble!
  • The first meet­ing will take place on 18th Oct 2023 in Room A302.

Peo­ple

Pre­req­ui­sites

“Pro­gram­mier­sprachen 1” will be help­ful. How­ever, the first two ses­sions will be a tu­to­r­ial to bring you up to speed on nec­es­sary prior knowl­edge.