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 seminar, 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) 60-min presentation on one of the topics of this seminar with an ensuing class discussion of about 30 min led by the speaker.

Moreover, every participant will hand in a summary (3-4 pages) of the topic they have presented by the end of the semester. The document must be sent as a single pdf to mari.mueller@uni-tuebingen.de until 29.09.24. Use the following template:

https://www.acm.org/publications/proceedings-template

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
02.05.24 Operating System & Virtual Memory Thomas
16.05.24 Manual Memory Management & Allocators Amina
06.06.24 TBA  
13.06.24 TBA  
20.06.24 TBA  
27.06.24 TBA  
04.07.24 TBA  
11.07.24 TBA  
18.07.24 TBA  
25.07.24 TBA