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 garbace collectors
  • Reference counting
  • Region-based memory management
  • Linearity 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

The number of participants is restricted to 10. Places are assigned on a first-come, first-served basis. The deadline for registering is 22.04.24. 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, 14-16 in room C214 (PC-Poolraum) at Sand 14. 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. Every participant will be the speaker two times.

Requirements

Apart from basic programming skills, it may be helpful to have attended the lectures “Programming Languages 1” and Programming Languages 2”, but this is not strictly required.

First Meeting

The first meeting will take place on Thursday, 18.04.24, 14 c.t. in room C214 (PC-Poolraum) at Sand 14.

Schedule

Date Topic Name
18.04.24 First Meeting Marius
16.05.24 Manual Memory Management & Allocators Thomas
06.06.24 Operating System & Virtual Memory Amina
13.06.24 Garbage Collectors: Basics & Mark-Sweep Thomas
20.06.24 Moving Garbage Collectors Mohamad
27.06.24 Reference Counting Nalin
27.06.24 Heap Partitioning for GC Nalin
04.07.24 Region-Based Memory Management Moritz
18.07.24 Comparing & Unifying Tracing and RC Mohamad
18.07.24 Operating System & Virtual Memory 2 Amina
25.07.24 Linearity, Ownership & Borrowing Moritz