Programming Languages

Abstract Machines

Between high-level programming languages (Java, Haskell, Rust, Prolog…) and low-level machine models (x86, ARM, RISC-V, FPGAs, Turing machines,…) there is an intermediate category of abstract machines. These abstract machines are much simpler than programming languages, which are mainly intended for human users, yet abstract enough to not be concerned with details of concrete computer or instruction set architectures.

There are various use-cases for abstract machines. They form the basis of bytecode-interpreted languages like Java’s JVM, Microsoft/.Net’s CLR and Erlang’s BEAM virtual machine. In compilers they are often used as the basis for intermediate languages; for example the LLVM IR, GHC’s STG IR, or Rust’s Mir. These intermediate languages are where a lot of code optimizations happen. And in the theoretical study of programming languages abstract machines allow to make mathematically precise statements about runtime properties of code, for example the sharing of intermediate computations.

For an overview of abstract machines, you can take a look at the article by Diehl, Hartel and Sestoft: Abstract machines for programming language implementation. We will be mainly interested in the abstract machines for functional programming languages mentioned in section 6. But the general principles carry over to other abstract machine models.

Organization of the Seminar

The seminar will start with some introductory sessions by the instructor. After these introductory sessions, the participants will take turns in presenting selected articles and bookchapters, each dealing with either an abstract machine model or a closely related concept. The seminar will take place in German if, and only if, all participants speak German.

Registration and Number of Participants

If you want to attend the seminar, please send an email with your name, course of studies (Info/Bioinfo/…), pursued degree (BEd/Bsc/Msc/…) and Matrikelnummer to David Binder. Since the seminar is going to take place in person, the number of participants is limited to 10 participants. Places are assigned on a first-come-first-served basis.

Place and Time

The seminar will take place every Thursday from 16:15 in room C111 at the Sand. The first meeting will take place on October 21st 2021.

Covid-19 Regulations

Every participant of the seminar has to either (1) provide proof of vaccination at the beginning of the semester or (2) provide a negative test result at the beginning of each session.