Thesis defence: Beatrice Åkerblom

Thesis defence

Date: Thursday 20 March 2025

Time: 13.00 – 16.00

Location: Room Earth (ground floor, Nod building), Borgarfjordsgatan 12, Kista

Welcome to a thesis defence at DSV! In her PhD thesis, Beatrice Åkerblom examines the relation between expressivity in programming languages and typability of programs.

Beatrice Åkerblom, DSV at Stockholm University.
Beatrice Åkerblom. Photo: Carina Bergholm.

On March 20, 2025, Beatrice Åkerblom will present her PhD thesis at the Department of Computer and Systems Sciences (DSV), Stockholm University. The title of the thesis is “On Typability in Programming Languages”.

PhD student: Beatrice Åkerblom, DSV
External reviewer: Christoph Reichenbach, Lund University
Main supervisor: Tony Lindgren, DSV
Supervisors: Peter Idestam-Almquist, DSV, and Tobias Wrigstad and Elias Castegren, Uppsala University

Download the PhD thesis from Diva

Contact Beatrice Åkerblom

The defence takes place at DSV in Kista, starting at 13:00.
Find your way to DSV

Abstract

This dissertation examines the relation between expressivity in programming languages and typability of programs.

For all data used in computer programs, it makes sense to perform a certain set of operations on it. The set of meaningful operations vary between different kinds of data, and this defines the type of the data. This means that all data used in computer programs has a type, but programs implemented using different languages treat information about types in different ways. The type information is accessible at different times throughout program implementation and execution.

In statically typed languages the type of all data is checked during compile time. This can provide programmers with valuable early detection of errors but can also lead to the rejection of programs that would actually run without any errors. In dynamically typed languages the approach is instead to defer checking if operations performed on some data is valid to run time. These checks are typically made at the the point in time when the operation is about to be performed. This allows an informed programmer to run programs that a static type system could not guarantee would be free from errors.

There is a trade-off between expressivity and e.g., early error detection and the possibility to use different kinds of optimisation techniques. This dissertation approaches the trade-off problem from several angles. We have examined existing programs to find out how code is written when there are no constraints from static types, both for the use of polymorphism in the dynamically typed language Python where there are no static typing at all, and access patterns used for arrays in the statically typed language Java. The latter has been used to evaluate the expressivity of array capabilities, a novel technique for statically preventing data races in parallel algorithms manipulating arrays.

eventNewsArticle

standard-article

true

{
  "dimensions": [
    {
      "id": "department.categorydimension.subject",
      "name": "Global categories",
      "enumerable": true,
      "entities": [],
      "localizations": {}
    },
    {
      "id": "department.categorydimension.tag.Keywords",
      "name": "Keywords",
      "enumerable": false,
      "entities": [],
      "localizations": {}
    },
    {
      "id": "department.categorydimension.tag.Person",
      "name": "Person",
      "enumerable": false,
      "entities": [],
      "localizations": {}
    },
    {
      "id": "department.categorydimension.tag.Tag",
      "name": "Tag",
      "enumerable": false,
      "entities": [],
      "localizations": {}
    },
    {
      "id": "webb2021.categorydimension.Category.Events",
      "name": "Globala kategorier Kalender (Webb 2021)",
      "enumerable": true,
      "entities": [
        {
          "id": "webb2021.categorydimension.Category.Events.research",
          "name": "Research",
          "entities": [],
          "attributes": [],
          "childrenOmitted": false,
          "localizations": {}
        }
      ],
      "localizations": {}
    },
    {
      "id": "webb2021.categorydimension.Label",
      "name": "Tema (Webb 2021)",
      "enumerable": true,
      "entities": [],
      "localizations": {}
    },
    {
      "id": "webb2021.categorydimension.Label.en",
      "name": "Themes (Webb 2021)",
      "enumerable": true,
      "entities": [
        {
          "id": "webb2021.categorydimension.Label.en.CompSci",
          "name": "Digitalization and AI",
          "entities": [],
          "attributes": [],
          "childrenOmitted": false,
          "localizations": {}
        }
      ],
      "localizations": {}
    },
    {
      "id": "webb2021.categorydimension.Keyword",
      "name": "Keywords (Webb 2021)",
      "enumerable": false,
      "entities": [],
      "localizations": {}
    },
    {
      "id": "DSV.eng.lokala.kat",
      "name": "Lokala kategorier DSV eng",
      "enumerable": true,
      "entities": [
        {
          "id": "DSV.eng.lokala.kat.kal",
          "name": "Local calendar",
          "entities": [
            {
              "id": "DSV.eng.lokala.kat.kal.fo",
              "name": "Research",
              "entities": [],
              "attributes": [],
              "childrenOmitted": false,
              "localizations": {}
            }
          ],
          "attributes": [],
          "childrenOmitted": false,
          "localizations": {}
        },
        {
          "id": "DSV.eng.lokala.kat.kal",
          "name": "Local calendar",
          "entities": [
            {
              "id": "DSV.eng.lokala.kat.kal.om",
              "name": "About the department",
              "entities": [],
              "attributes": [],
              "childrenOmitted": false,
              "localizations": {}
            }
          ],
          "attributes": [],
          "childrenOmitted": false,
          "localizations": {}
        }
      ],
      "localizations": {}
    }
  ]
}