Research
I am an assistant professor at Uppsala University, working on
programming languages, semantics and type systems. I am involved
in the Verona project
together with Azure Research.
I used to be a post-doc researcher in David
Broman’s
group at
KTH, working on
heterogeneous model compilers and semantics. I am currently
involved in two projects; one relating to composition of language
semantics, and one relating
to full-stack verification of programs synthesized from timed
automata.
I did my PhD with Tobias
Wrigstad and Dave
Clarke at
Uppsala University. There,
I did research on type systems for controlling aliasing and
preventing data-races in concurrent and parallel programs.
In 2018, I did an internship at Microsoft Research in Cambridge,
working together with Matthew
Parkinson
and David
Chisnall on
compiler-based mitigation of the
Spectre attacks.
I was one of the main contributors to
Encore, a
highly concurrent object-oriented programming language. Encore’s
type system guarantees the absence of data-races and is based on
my work on Kappa .
I am always interested in discussing collaboration!
Publications and Presentations
- [2024] Trieste: A C++ DSL for Flexible Tree Rewriting – SLE’24 (paper)
- [2024] Arrays in Practice: An Empirical Study of Array Access
Patterns on the JVM – Programming’24 (paper)
- [2023] Reference Capabilities for Flexible Memory Management – OOPSLA’23
(paper)
- [2023] Encore: Coda – Springer Nature (Paper to be posted)
- [2023] Statically Resolvable Ambiguity – POPL’23
(paper|artifact)
- [2021] Resolvable Ambiguity: Principled Resolution of
Syntactically Ambiguous Programs – CC’21
(paper)
- [2020] Reference Capabilities for Safe Parallel Array
Programming – Programming’20 (paper)
- [2019] Developing a Monadic Type Checker for an Object-Oriented
Language: An Experience Report – SLE’19 (Distinguished Artifact Award)
(preprint|artifact)
- [2019] Progress Report: Exploring API Design for Capabilities
for Programming with Arrays – ICOOOLPS’19 (paper)
- [2018] OOlong: a concurrent object calculus for extensibility
and reuse – ACM SIGAPP (paper |
artifact)
- [2018] Attached and Detached Closures in Actors –
AGERE@SPLASH’18 (paper | slides)
- [2018] Cflat: A New Modular Approach to Implementing Efficient
and Tunable Collections – Onward!
(paper)
- [2018] Bestow and Atomic: Concurrent Programming using
Isolation, Delegation and Grouping – JLAMP
(paper)
- [2018] Parallel programming with arrays in Kappa –
ARRAY@PLDI’18
(paper)
- [2018] Forward to a Promising Future – COORDINATION’18 (Best Paper Award)
(paper)
- [2018] Capability-Based Type Systems for Concurrency Control – PhD Thesis
(extensive summary)
- [2017] OOlong: An Extensible Concurrent Object Calculus – OOPPS@SAC’17
(preprint | slides | artifact)
- [2017] Reference Capabilities for Concurrency & Scalability: an Experience Report – OCAP’17
(slides | video forthcoming)
- [2017] Mastery Learning-Like Teaching with Achievements – SPLASH-E’17
(paper)
- [2017] Relaxed Linear References for Lock-Free Data Structures – ECOOP’17
(paper and talk | slides)
- [2017] Actors without Borders: Amnesty for Imprisoned State – PLACES’17
(paper | slides)
- [2016] Reference Capabilities for Trait Based Reuse and Concurrency Control – Technical Report
(paper)
- [2016] Types for CAS: Relaxed Linearity with Ownership Transfer – NWPT’16
(paper)
- [2016] LOLCAT: Relaxed Linear References for Lock-free Programming – Technical Report
(paper)
- [2016] Reference Capabilities for Concurrency Control – ECOOP’16
(paper and talk | slides | poster)
- [2016] Kappa: Insights, Current Status and Future Work – IWACO’16
(paper | slides)
- [2015] Refined Ownership: Fine-grained controlled internal sharing – SFM’15
(paper)
- [2015] Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore – SFM’15
(paper)
- [2014] Capable: Capabilities for Scalability – IWACO’14
(paper | slides)
- [2024] SLE’24, program committee
- [2024] IWACO’24, program committee
- [2023] ICOOOLPS’23, program committee
- [2023] VIMPL’23, program committee
- [2023] IWACO’23, program committee
- [2023] PLACES’23, program committee
- [2022] SCP, reviewing
- [2021] SPLASH’21, student research competition judge
- [2021] SLE’21, artifact evaluation co-chair
- [2021] AGERE’21, member of the organizing committee.
- [2020] AGERE’20, member of the organizing committee.
- [2020] OOPSLA’20 Artifact Evaluation Committee.
- [2020] PLDI’21 Artifact Evaluation Committee.
- [2019] AGERE’19, member of the organizing committee.
- [2019] LCTES’19 Artifact Evaluation Committee
- [2019] PLDI’19 Artifact Evaluation Committee
- [2018]
ECOOP’18 Artifact Evaluation Committee
- [2018]
PLDI’18 Artifact Evaluation Committee
- [2017]
OOPSLA’17 Artifact Evaluation Committee
- [2017]
IWACO’17, co-chair and
organizer together with Juliana Franco.
- [2017]
ECOOP’17 Artifact Evaluation Committee
- [2017]
Subreviewing for ECOOP and OOPSLA
- [2016]
OOPSLA’16 Artifact Evaluation Committee
- [2016]
Subreviewing for ECOOP and OOPSLA
- [2015]
Subreviewing for PLDI, ECOOP, OOPSLA, CONCUR and SAC
- [2014] ECOOP’14, local student aid
Teaching
Since 2021 I am the main teacher of a second year 20 ECTS credits
course at Uppsala University called Imperative and Object-Oriented
Programming Methodology (or IOOPM for short). In 2021 I was the
proud recipient of the Union of Engineering and Science Student’s
Teaching Award!
Since 2023 I also teach a 5 ECTS credit course on Programming
Language Semantics.
Previous courses taught include:
- Computer Hardware Engineering (7.5 ECTS, KTH), 2019
- Program Design and Data Structures (20 ECTS, UU), 2016-2017
- Imperative and Object-Oriented Programming Methodology (20 ECTS,
UU), 2012-2018
Students
I am the main supervisor of the following PhD students:
- Matilda Blomqvist (since 2023)
I have co-supervised the following PhD students:
- Ellen Arvidsson (since 2021)
- Viktor Palmkvist (since 2021, graduated 2024)
- Beatrice Åkerblom (since 2019)
I am currently supervising the following bachelor thesis projects:
- Emma Angetun – Extending the Object Calculus OOlong
- Linus Waehler – Can ChatGPT Achieve Mastery? Using ChatCPT to Pass a Second Year University Programming Course
I have supervised the following master thesis projects:
- Alfrida Mattisson – Automatically Choosing Implementations of Abstract Data Types
I have supervised the following bachelor thesis projects:
Personal
I spend a lot of my free time on listening to and creating music.
- From 2008 to 2017 I was the conductor of
Kalmar Nation’s Choir
in Uppsala.
Here
is a video of us performing of Vienna Teng’s beautiful Hymn of Acxiom.
- Since 2015 I am a singer in
Uppsala Vokalensemble.
- I also like to write and arrange choir music.
Here is a
recording of my arrangement of the traditional Swedish hymn “Den
blomstertid nu kommer”. You can also buy the arrangement!
Here
is a recording of my setting of Alfred Tennyson’s Now Sleeps the
Crimson Petal, performed by the women’s choir
Discordia.
- I play the electric and upright
bass. Here is a
recording I made as a Christmas present for the friend who
introduced me to the wonderful music of Vulfpeck.
- I play bass in the now dormant band Morfis. Our album
Dunia
from 2013 is on Spotify! I wrote and arranged the songs Gånglåt
från Gottsunda (“Walking Song from Gottsunda”), Cykeltjuven
(“The Bicycle Thief”) and Kometen (“The Comet”).