Programming Languages

Memory Management (Proseminar)

Computer programs typically need memory to run. Often, memory has to be allocated dynamically at runtime and sometimes quite a lot of memory is needed. Memory is not infinite, however, so it usually needs to be managed appropriately by freeing memory that is no longer needed for reuse. There are various ways to accomplish this task and different tradeoffs can be made. In this proseminar, we will examine several techniques to do memory management on the application level. We will only briefly discuss memory management on the level of operating systems.

Topics include:

  • Virtual memory
  • Manual memory management
  • Allocators
  • Tracing garbage collectors
  • Reference counting
  • Linearity, ownership and borrowing

The course language will be German or English, depending on the participants.

Entry in the alma-system: Link

Instructors

Registration

If you want to participate, please send an e-mail with the following data to mari.mueller@uni-tuebingen.de:

  • Matrikelnummer
  • name
  • Studiengang + Abschluss
  • Fachsemester
  • your student e-mail address

Please register until Mo, 21.04.25. Please also send an e-mail with your preferences for the topics to present, see the orga slides.

Structure

We will meet weekly on Thursday, 12-14 in room A104 at Sand. Every week one participant will give a (roughly) 35-min presentation on one of the topics of this seminar with an ensuing class discussion of about 10 min led by the speaker.

Requirements

Apart from basic programming skills, it may be helpful to have attended (or attend) the lecture “Programming Languages 1”, but this is not strictly required.

First Meeting

The first meeting will take place on Thursday, 17.04.25, 12 c.t. in room A104 at Sand.

(Preliminary) Schedule

Date Topic Name
17.04.25 First Meeting Marius
15.05.25 Operating System & Virtual Memory: Basics Jan
15.05.25 Operating System & Virtual Memory: Paging Oussama
22.05.25 Manual Memory Management & Allocators Fabian
05.06.25 Garbage Collectors: Basics & Mark-Sweep Marwa
05.06.25 Moving Garbage Collectors Marcel
26.06.25 Reference Counting Marc
03.07.25 Heap Partitioning for GC Niklas
10.07.25 Comparing & Unifying Tracing and RC Pascal
17.07.25 Region-Based Memory Management Luis
24.07.25 Linearity, Ownership & Borrowing Jakub