1. February 2018 Elias Castegren, PhD just graduated. The opponent was Professor Alan Mycroft from Cambridge and the grading committe consisted of Associate Professor Luca Padovani from Torino, Professor Christian Schulte, KTH, and Associate Senior Lecturer Alexandra Jimborean, Uppsala.

  2. January 2018 My PhD student Elias Castegren just nailed his thesis, as part of the ritual of announcing his public PhD defence on February 9th.

  3. December 2017 ESOP paper accepted! Correctness of a fully concurrent Garbage Collector for Actor Languages, by Juliana Franco, Sylvan Clebsch, Sophia Drossopoulou, Jan Vitek and myself has been accepted for ESOP 2018.

  4. November 2017 SAC OOPS paper accepted! OOLONG — An Extensible Concurrent Object Calculus, by my soon-to-finish PhD student Elias Castegren and myself. The OOLONG calculus is a small, extensible calculus fully formalised in Coq. If you want to model stateful object-oriented languages, then OOLONG might be your cup of tea! A link to the finished paper, Coq sources, LaTeX sources, and OTT definitions will appear here soon.

  5. November 2017 On November 29th, I'm organising the 11th multicore day as part of the SICS software week. The line-up for this year is great (here in lexicographical order):

    1. Alberto Ros (U. Murcia) talking about cache coherence protocols of the future
    2. Claes Redestad (Oracle) talking Java 9 on parallel hardware
    3. Felix Mulder (Klarna) talking about Scala on parallel hardware and Scala 3
    4. Georgi Gaydadjiev (Maxeller) talking about the streaming dataflow paradigm
    5. Kostis Sagonas and Bengt Jonsson (Uppsala U.) talking about testing of concurrent software
    6. Niko Matsakis (Mozilla) talking about Rust
    7. Sylvan Clebsch (Microsoft Research) talking about parallel runtimes
    8. ...and Johan Gronqvist (ARM), Per Stenström (Chalmers) and Davide Rossi (U. Bologna) in a heated panel debate.

    Participation is free of charge, but registration is mandatory. First come, first serve!

  6. October 2017 Action shots from SPLASH'17.


  7. October 2017 I'm travelling 22/10—28/10 to attend SPLASH'17 and co-located events in Vancouver, Canada. The week's schedule is quite busy, so expect additional latency in communication. On Monday, I have a SPLASH-E paper with Elias on the course in Imperative and Object-Oriented Programming that I am currently teaching. On Tuesday, Elias and I have a paper on his capabilities' work at the OCAP workshop. On Thursday, we are presenting the ORCA paper on fully concurrent garbage collection at OOPSLA. On Friday, we are presenting the SHAPES work on efficient abstract data layout for OOP at ONWARD!. There is also the NOOL workshop on new object-oriented languages run by Roly Perera that you should check out if you are attending SPLASH.

  8. September 2017 OCAP workshop paper accepted: Reference Capabilities for Concurrency & Scalability: an Experience Report, which surveys the work on reference capabilites by my soon-to-finish PhD student Elias Castegren and myself will be presented at the inaugural OCAP: Object-Capability Languages, Systems, and Applications, co-located with SPLASH 2017 in Vancouver.

    September 2017 (Shameless plug) My PhD student Elias Castegren kicked off his “marketing tour” — looking for a PostDoc position as he is due to finish in the next few months. Here he is giving a talk at the Royal Institute of Technology.

    Elias' research interests are programming languages, compilers, type systems, concurrent and parallel programming, object-oriented programming, functional programming and CS education. He is the number one committer (out of 6 core committers) to the Encore programming language, which is implemented in Haskell and C.

  9. August 2017 SPLASH-E paper accepted! Right on time for (as in same day of) the start of my big course on Imperative and Object-Oriented Programming Methodology, the paper on the design of this course (co-authored with Elias Castegren, who is the head TA for this course for several years) was accepted for SPLASH-E. If you are a student on this course, you should read the paper to understand the course's design! As soon as the paper is ready, it will be linked here.

  10. August 2017 OOPSLA paper on garbage collection accepted: Orca: Leveraging Types and Messaging for Fully Concurrent GC, joint with Sylvan Clebsch (Microsoft Research Cambridge), Juliana Franco and Sophia Drossopoulou (Imperial College), Albert Mingkun Yang (Uppsala University — my PhD student) and Jan Vitek (Northeastern). This paper describes the ORCA GC protocol that is used in Pony and Encore, and explains ORCA's implementation in the Pony run-time.

  11. August 2017 NOOL 2017 has a CFP out! NOOL is a workshop for researchers and developers of new object-oriented languages that is co-located with OOPSLA.

  12. July 2017 I will be serving on the Programme Committee for PLDI -- Programming Languages Design and Implementation in 2018. PLDI is the premier forum in the field of programming languages and programming systems research, covering the areas of design, implementation, theory, applications, and performance. The acceptance rate of PLDI 2017 was 14,9% (47/314).

  13. July 2017 I will be serving on the Programme Committee for OOPSLA -- Object-Oriented Programming, Systems, Languages and Applications at SPLASH in 2018. OOPSLA seeks outstanding contributions on all aspects of programming languages and software engineering. Accepted papers will appear in Proceedings of the ACM on Programming Languages (PACMPL), a Gold Open Access journal. The acceptance rate of OOPSLA 2016 was 25,6% (52/203).

  14. July 2017 Onward! paper accepted: Juliana's paper (joint with myself, Sophia Drossopoulou, Susan Eisenbach and Martin Hagelin) You Can Have it All: Abstraction and Good Cache Performance has been accepted to Onward!. Camera-ready version forthcoming.

  15. June 2017 During the AITO General Assembly Meeting held during ECOOP 2017, I was elected onto the AITO Executive Board as vice president. This means that I will be more involved in the organisation of future ECOOPs (I organised ECOOP 2014 in Uppsala). ECOOP 2017 was a great conference with many great talks, good networking, and a lot of excellent student activities, including mentoring breakfasts and a summer school. Please encourage your students to go to ECOOP 2018 in Amsterdam!

  16. June 2017 The first team of bachelor students just held their presentations. Six good talks, and several new features being added to Encore.

  17. June 2017 The team is attending ECOOP+PLDI 2017 at force!

    1. Albert is presenting his paper on garbage collection on Sunday 19/6
    2. Stephan is doing an invited demo of his Spencer tool for interactive dynamic heap analysis IWACO on Monday 20/6. You can see his slides here.
    3. Elias is presenting his paper on typing lock-free programming on Friday 24/6 and organising IWACO together with Juliana Franco.

  18. May 2017 I will be speaking at the PLISS Summer school (Programming Language Implementation Summer School) about Encore in general and about lock-freedom and garbage collection in particular. My talk will cover work with Thorbiörn Fritzon (at Spotify — presented at last NOOL), Elias Castegren (UU — to appear at ECOOP) and Albert Yang (UU — to appear at ISMM).

  19. April 2017 Next issue of ACM XDRS will feature a gender equality event co-organised by Albert (my PhD student) and Kiko (whom I co-advice with Dave Clarke). The event was organised by the local ACM-W chapter in Uppsala where Kiko is co-chair and Albert is secretary and treasurer. Hats off to all organisers for making this happen!

    The event brought experts from the IT industry, who were paired with a group of 3 to 4 students, and worked together for a day in a project. By signing up female experts, students experience (first hand) that females working in IT can also be leaders, challenging the idea that only men can be leaders and making a statement female role models exists.
    I am happy for whatever little inching in the right direction. When I was running advanced education for a big, international telecommunications company, we talked a lot about diversity in the work-place. In these classes I ran into “lots” of (%-age-wise) women who had trouble not being “promoted out of” the programming jobs they loved because it was just assumed that they, as women, would prefer to work in communication-oriented roles, like non-technical project management etc., rather than hack.

  20. April 2017 Elias' paper Relaxed Linear References for Lock-free Data Structures has been accepted to the European Conference on Object-Oriented Programming. Camera-ready version forthcoming.

  21. April 2017 I am happy to announce that my PhD student Albert will be doing an internship with the Google V8 team working on garbage collection.

  22. April 2017 Albert's paper Type-Assisted Automatic Garbage Collection for Lock-Free Data Structures has been accepted to the 2017 ACM SIGPLAN International Symposium on Memory Management (ISMM). in conjunction with PLDI and ECOOP. Camera-ready version forthcoming.

  23. April 2017 I am happy to announce that I have been voted the teacher of the year 2017 by the currently enrolled CS bachelor and IT Civil Engineering students. The motivation is (translated from Swedish):

    For teaching the subject in a pedagogic way, and with great dedication, the prize goes to Tobias Wrigstad. As a teacher, he listens to student criticism and feedback. The teacher has a good standing with the students, uses an activating means of teaching, and most importantly is passionate about his subject.
    Here are pictures of me accepting the prize together with Elias, my head TA on the IOOPM course, and some of the TAs of the course installation of 2016.

  24. March 2017 Stephan's paper Spencer: Interactive Heap Analysis for the Masses will appear at 14th Conference on Mining Software Repositories in conjunction with ICSE. Camera-ready version forthcoming. Preprint.

  25. March 2017 Stephan's paper Mining for Safety using Interactive Trace Analysis will appear at QAPL 2017 in conjunction with ETAPS. Camera-ready version forthcoming. Preprint.

  26. March 2017 Elias' paper Actors without Borders: Amnesty for Imprisoned State will appear at PLACES 2017 in conjunction with ETAPS. Workshop version.

  27. January 2017 Teaching semester ended! The course on Imperative and Object-Oriented Programming Methodology, got really good reviews from students (as last year!). You can read the course report.

  28. September 2016 Elias' paper Types for CAS: Relaxed Linearity with Ownership Transfer will appear at NWPT 2016.

  29. July 2016 The CFP for the workshop on New Object Oriented Languages (NOOL) which is organised by Roly Perera and myself is online! The CFP is a play on OOPSLA'86, as was also the case with NOOL'15 organised by Alex Potanin and James Noble. The deadline is September 1st. Opinion pieces, thoughts on object-oriented languages, new languages and new old languages, are welcome!

  30. July 2016 An extended preprint of the LOLCAT paper (Castegren, Wrigstad — in submission) on types for lock-free programming is available here. The LOLCAT type system allows programmers to identify points of contention of lock-free data structures, and guarantee (1) data-race freedom on all accesses outside of these contention points; (2) effective atomicity of non-atomic operations on contended points that involve reads and writes of multiple disjoint locations.

  31. July 2016 An extended version of Reference Capabilities for Concurrency Control (ECOOP'16) is available here. The extended version includes full proofs and extended code examples.

  32. June 2016 Springer reports more than 12.000 individual chapter downloads in LNCS 7850, Aliasing in Object-Oriented Programming. Types, Analysis and Verification, which I co-edited with Dave Clarke and James Noble.

  33. May 2016 The paper Towards Enabling Low-Level Memory Optimisations at the High-Level with Ownership Annotations with Juliana Franco and Sophia Drossopoulou has been accepted to IWACO 2016.

  34. May 2016 Elias' and my position paper Kappa: Insights, Current Status and Future Work has been accepted to IWACO 2016.

  35. May 2016 I will be serving on the ECOOP'17 PC. Please consider submitting!

  36. May 2016 Visiting Nobuko Yoshida and Sophia Drossopoulou at Imperial College in London.

  37. April 2016 Visiting Imperial College in London for UPSCALE plenary meeting.

  38. March 2016 Presented preliminary work together with Stephan Brandauer on unearthing structural and behavioural properties of object-oriented programs, and work with Elias Castegren on reference capabilities for lock-free programming at the ECOOP 2016 PC meeting in Providence, RI.

  39. March 2016 Elias' paper Reference Capabilities for Concurrency Control accepted for ECOOP 2016.

  40. March 2016 The NOOL-1 workshop on New Object-Oriented Languages was accepted for OOPSLA 2016. I will be organising this workshop together with Roly Perera.

  41. March 2016 Vats: A Safe, Reactive Storage Abstraction, a paper in the honour of Frank S. de Boer, written with Dave Clarke, is now published in Theory and Practice of Formal Methods, volume 9660 of LNCS.

  42. Feb 2016 I am co-organising the 7th IWACO (aliasing, capabilities and ownership) at ECOOP'16 together with Paley Li.

  43. Jan 2016 My student Johan Östlund successfully defended his PhD thesis. Johan's first post-PhD job will be at Spotify.

  44. Oct 2015 Hosted the Nth plenary meeting for the UPSCALE project at Uppsala University.

  45. Sept 2015 I will be speaking at NOOL about Inversion in Programming Language Design: The Encore Way, following joint work with Dave Clarke, Nobuko Yoshida, Frank S. de Boer and Einar Broch Johnsen.

  46. July 2015 Stephan's paper Disjointness Domains was accepted to OOPSLA 2015.

  47. June 2015 I am attending SFM'15 where I will be speaking about the Encore programming language, and our recent works on reference capabilities for concurrency control.

Teaching in 2017

  1. Fall Semester teaching all of 20 credit course, Introduction to Imperative and Object-Oriented Programming Methodology for CS bachelors and at Uppsala University.


See below for a capsule summary of my current and past research projects.

Ongoing Projects

  • UpScale's vision is to provide programming language support to efficiently develop applications that seamlessly scale to the available parallelism of manycore chips without abandoning the object-oriented paradigm and the associated software engineering methodologies. UpScale explores an “inversion” of the current canonical language design through the Encore language: constructs facilitating concurrent computation are default while constructs facilitating synchronised and sequential computation need to be explicitly expressed. [Funded by: EU FP7]
  • The Structured Aliasing project searches for a theory and practise of structured aliasing to lift alias management over low-level operations such as assigning individual references to objects and maintain encapsulation on a per-reference basis, and let programmers create and maintain object graphs and express alias properties in their programs in an explicated, clear and enforceable way. [Funded by: Swedish Research Council]
  • The UPMARC centre of excellence on programming for multicore architectures funded Johan Östlund, who recently graduated. Johan developed the actor-based language Joelle, among the first actor languages to use types to achieve isolation, and lifted a single thread of control abstraction for actors in a data-race free way. Johan graduated in January 2016. UPMARC also funds Elias Castegren, who is working on reference capabilities to simplify concurrent programming. Elias' work includes the first type system to support lock-free programming with linear references. [Funded by: Swedish Research Council]

Past Projects

  • The Loci project developed a simple static checker for thread-locality for Java-like languages. Thread-locality is a strong and useful property as it allows sequential reasoning. The initial work was developed during my postdoc at Purdue, and continued as a series of master theses (Amanj Sherwany, Nosheen Zaza) at Uppsala Univerisity.
  • The Thorn project developed a dynamically-typed concurrent language in which lightweight isolated processes communicated by message passing. This was a joint project between IBM Research and Purdue University. Thorn was also a playground for like types, a form of gradual types, which are based in nominal types (for programmer understanding), and strikes a good balance between performance and flexibility.


2012 AITO Dahl-Nygaard Junior Prize:

In 2012, I was the recipient of the Dahl-Nygaard Award. Below is an excerpt from the full statute: Tobias Wrigstad has been a very active researcher in areas of programming language design that involve the interplay between types and topics that are not typically included under that heading. In particular, he has contributed substantially to many papers about ownership types, he has worked on a variant of virtual types in connection with the language Tribe, and recently in 'Integrating typed and untyped code in a scripting language', POPL 2010, he helped creating the foundation for a new intermediate form between static and dynamic typing, which is used in the language Thorn. Tobias Wrigstad is also a highly active contributor to the community, having served on more than a dozen program committees including ECOOP, POPL, and OOPSLA, having co-organized many workshops and several student related activities at major conferences, and being a member of several steering committees.

2015 AITO Recognition Service Award:

In conjunction with ECOOP'15, I received a Recognition Service Award by AITO for my community services as the main organiser of ECOOP 2014. ECOOP 2014 had over 240 participants. My proudest achievement in conjunction with the organisation is instigating the change to AITO setting up its own merchant account, making it easier for all future ECOOP organisers to collect participant fees but also to pay European taxes. Go AITO!

Community Service

Programme Committees

  1. [2018] PLDI, OOPSLA, PhD committee for Vincenzo Mastandrea (supervised by Ludovic Henrio and Cosimo Laneve)
  2. [2017] ECOOP
  3. [2016] ECOOP, IWACO, OOPSLA (EPC), PhD committee for Ramunas Gutkovas (supervised by Johannes Borgström), PhD committee for Niklas Fors (supervised by Görel Hedin), Dahl-Nygaard Award Committee
  4. [2015] OOPSLA, PLDI (ERC), STOP, PhD committee for Jun He (supervised by Pierre Flener and Justin Pearson), Dahl-Nygaard Award Committee
  5. [2014] FOOL
  6. [2013] POPL, SCALA
  7. [2012] ECOOP
  8. [2011] OOPSLA, IWACO, FTFJP
  9. [2010] LDTA, CATS
  10. [2009] STOP (Chair), IWACO, DLS
  12. [2007] IWACO (Chair)

Event Organisation

  1. [2016] Workshop organiser NOOL @ OOPSLA in Amsterdam, NL and IWACO @ ECOOP in Rome IT, Sponsor Co-Chair @ OOPSLA, Workshop PC @ OOPSLA
  2. [2015] Summer School Co-Organiser: Formal Methods for the Design of Computer, Communication and Software Systems: Multicore Programming in Bertinoro, Italy
  3. [2014] General Chair (main organiser) for ECOOP in Uppsala, Sweden.
  4. [2014] Chair of Student Activities, POPL in San Diego, USA
  5. [2013] Chair of Student Activities, POPL in Rome, Italy
  6. [2012] Chair of Student Activities, POPL in Philadelphia, USA
  7. [2011] Main Organiser of UPMARC Summer School on Concurrent and Parallel Programming
  8. [2011] Workshop organiser STOP @ POPL in Austin, Texas USA
  9. [2009] Workshop organiser STOP @ ECOOP in Genoa, Italy
  10. [2007] Workshop organiser IWACO @ ECOOP in Berlin, Germany

Steering Committees and Other Memberships

  1. IWACO (aliasing, capabilities, ownership) Steering Committee (2008–)
  2. STOP (script to program evolution) Steering Committee (2009–)
  3. AITO member (2015–)

Contact Info


Visiting Address:
Department of Information Technology
Polacksbacken (Lägerhyddsvägen 2)