1. [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.

  2. [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.

  3. [March 2017] Elias' paper Actors without Borders: Amnesty for Imprisoned State will appear at PLACES 2017 in conjunction with ETAPS. Camera-ready version forthcoming.

  4. [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.

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

  6. [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!

  7. [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.

  8. [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.

  9. [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.

  10. [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.

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

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

  13. [May 2016] Visiting Nobuko Yoshida and Sophia Drossopoulou at Imperial College in London.

  14. [April 2016] Visiting Imperial College in London for UPSCALE plenary meeting.

  15. [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.

  16. [March 2016] Elias' paper Reference Capabilities for Concurrency Control accepted for ECOOP 2016.

  17. [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.

  18. [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.

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

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

  21. [Oct 2015] Hosted the Nth plenary meeting for the UPSCALE project at Uppsala University.

  22. [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.

  23. [July 2015] Stephan's paper Disjointness Domains was accepted to OOPSLA 2015.

  24. [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, I am not a PI]

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. [2017] ECOOP
  2. [2016] ECOOP, IWACO, OOPSLA (EPC), Dahl-Nygaard Award Committee
  3. [2015] OOPSLA, PLDI (ERC), STOP, Dahl-Nygaard Award Committee
  4. [2014] FOOL
  5. [2013] POPL, SCALA
  6. [2012] ECOOP
  7. [2011] OOPSLA, IWACO, FTFJP
  8. [2010] LDTA, CATS
  9. [2009] STOP (Chair), IWACO, DLS
  11. [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)