Jump:    News  |  Community Service  |  Awards  |  Current and Past Research Projects  |  Teaching

News

  1. November 2024 A blog post about our work on the Mark--Scavenge GC protocol is published on inside.java.

  2. October 2024 My grant application Data-race Freedom and Memory Safety for Untyped Languages was funded by the Swedish Research Council. Funding runs until 2028.

  3. October 2024 Visiting the Isaac Newton Institute in Cambridge to attend Big Specification.

  4. September 2024

    SICP JS has sold over 5.000 copies, excluding translations.

  5. August 2024 Marina Shimchenko just successfully defended her thesis Optimizing Energy Efficiency of Concurrent Garbage Collection. The opponent was Professor Yu David Liu from State University of New York (Binghampton), and the grading committe consisted of Professor Elisa Gonzales Boix from Vrie University of Brussels, Associate Professor Stefan Marr from University of Kent, Professor Mike Hazas from Uppsala University, and Associate Professor Emma Söderberg from University of Lund.

  6. August 2024 My PhD student Jonas Norlinder's paper Mark-Scavenge: Waiting for Trash to Take Itself Out, has been accepted for publication at OOPSLA 2024.

  7. July 2024 My PhD student Jonas Norlinder's paper Mutator-Driven Object Placement using Load Barriers, has been accepted for publication at Managed Programming Languages and Runtimes (MPLR) 2024.

  8. July 2024 Our paper Dafny vs. Dala: Experience with Mechanising Language Design, has been accepted for publication at FTfJP 2024.

  9. June 2024 I am Associate Editor for OOPSLA 2025. You should strongly consider OOPSLA for any interesting work you are doing in PL! (Submission link forthcoming.)

  10. June 2024 My master student Isabell's paper Nominal Types for Erlang (with John Högberg, Kiko Fernandez-Reyes and myself) was accepted to Erlang 2024 (in conjunction with ICFP). Watch out for a future Erlang release to include her enhancement proposal.

  11. May 2024 Our intellectual abstract Reference Counting Deeply Immutable Data Structures with Cycles was accepted for ISMM 2024.

  12. May 2024 Marina's PhD dissertation, Optimising Energy Efficiency of Concurrent Garbage Collection, is printed and bound and looks beautiful! The defense is August 30. Opponent is Yu David Liu and the grading committee is staffed by Elisa Gonzales Boix, Stefan Marr, Mike Hazas, and Emma Söderberg.

  13. April 2024 My master thesis student (supervised at Ericsson by John Högberg) Isabell Huang successfully defended her thesis on Nominal Types in Erlang. You can read the Erlang Enhancement Proposal here. See also community reactions.

  14. March 2024 I am happy to announce that I am made an official member of the IFIP TC2 Working Group 2.16 on Programming Language Design.

  15. January 2024 Marina's paper on Scheduling Garbage Collection for Energy Efficiency on Asymmetric Multicore Processors was accepted for Programming 2024 in Lund.

  16. January 2024 I am on the programming committee for ESOP: European Symposium on Programming 2025.

  17. January 2024 I am on the programming committee for MPLR: Managed Programming Languages and Runtimes 2024.

  18. January 2024 I am Associate Editor for OOPSLA 2024. You should strongly consider OOPSLA for any interesting work you are doing in PL!


News 2023

  1. October 2023 My grant application Pervasive Memory Safety through Ownership Types was funded by the Swedish Research Council.

  2. October 2023 In Cascais, attending SPLASH 2023 where Marina presents our wok on automatic heap sizing for ZGC in OpenJDK, Ellen presents Reggio, our work on a region-based ownership model for flexible memory management, and Luke presents behaviour-oriented concurrency.

  3. October 2023 In Lyon, attending the 5th International ABS Workshop and talking about Behaviour-Oriented Concurrency in Verona.

  4. September 2023 Giving a talk at USI on Behaviour-Oriented Concurrency in Verona: Simple, Safe & Speedy.

  5. September 2023 In Lugano serving of the grading committee for Igor Moreno Santos at USI, PhD student of Matthias Hauswirth.

  6. September 2023 Attending and speaking at the Programming Language Implementation Summer School (PLISS) on concurrent GC in ZGC, our past and current work on locality optimisations driven by GC, and type systems for memory management.

  7. August 2023 Our paper on reference capabilities for flexible memory management has been accepted to OOPSLA 2023. Congratulations to Ellen Arvidsson and the rest of the team!

  8. August 2023 Our paper on Behaviour-oriented Concurrency has been accepted to OOPSLA 2023. Congratulations to Luke Cheeseman and the rest of the team!

  9. August 2023 Our paper on adaptive heap sizing in ZGC on OpenJDK has been accepted to MPLR 2023. Congratulations to Sanaz Tavakolisomeh, Marina Shimchenko, and the rest of the team!

  10. June 2023 Our collaboration with Microsoft (Azure Research) on the Verona programming language is now visible on the Verona project page.

  11. June 2023 As part of our long collaboration with Oracle, there is a guest post by my PhD student Marina Shimchenko on the Inside JDK blog on our work on automatically deciding a heap size for Java programs based on using GC CPU overhead as a tuning knob. To see more blog posts made by students as part of this collaboration, see here.

  12. June 2023 We have an open PhD position in the programming languages group!

  13. June 2023 In Prague serving of the grading committee for Petr Maj at CTU, PhD student of Jan Vitek.

  14. June 2023 Off-site with parts of the PL group, making plans to take over the world.


    (Most PhD students missing because of e.g. summer schools etc.)

  15. June 2023 In Lund serving of the grading committee for Noric Couderc at LTH, PhD student of Christoph Reichenbach and Emma Söderberg.

  16. January 2023 I am serving on the programme committee of the journal of Programming (vol. 8).

  17. March 2023 I am serving on the programme committee of Onward! 2023, a conference co-located with SPLASH.

  18. January 2023 I am serving on the programme committee of Erlang 2023, a workshop co-located with ICFP.

  19. January 2023 POPL tutorial on ownership with James Noble.


News 2022

  1. August 2022 I am serving on the programme committee of ECOOP 2023, which despite having Europe in its title is located in Seattle.

  2. July 2022 Call for posters and demos to MPLR'22 (Managed Programming Languages and Runtimes) has been posted.

  3. July 2022 Marina Shimchenko's paper Analyzing and Predicting Energy Consumption of Garbage Collectors in OpenJDK, has been accepted for publication in Managed Programming Languages and Runtimes (MPLR) 2022.

  4. July 2022 Jonas Norlinder's paper Compressed Forwarding Tables Reconsidered, has been accepted for publication in Managed Programming Languages and Runtimes (MPLR) 2022.

  5. June 2022 Jonas Norlinder was given a distinguished artifact reviewer award at ECOOP 2022.

  6. May 2022 Note: The deadline for submitting papers to MPLR'22 (Managed Programming Languages and Runtimes) has been extended 1 week due to several requests from authors. Hence, there is still time to submit work on all aspects of managed programming languages and runtime systems!

  7. May 2022 Albert Yang's paper Deep Dive into ZGC: A Modern Garbage Collector in OpenJDK, has been accepted for publication in ACM Transactions on Programming Languages and Systems.

  8. May 2022 Second printing of SICP JS!

  9. April 2022 (Remotely) attending launch event for SICP JS with Harold Abelson, Jerry Sussman, Martin Henz and Julie Sussman.

  10. April 2022 Marina Shimchenko joins the JVM RECO collaboration with Oracle as a new PhD student. Marina is interested in reducing energy consumptions of JVMs.

  11. April 2022

    This beauty (which one Amazon reviwer describes as dogpoop on an éclair) has finally hit the shelves.

  12. February 2022 I am serving on the PC of Scheme 2022 — a yearly meeting of programming language practitioners who share an aesthetic sense embodied by the Algorithmic Language Scheme: universality through minimalism, and flexibility through rigorous design.


News 2021

  1. December 2021 I am the PC chair for the 2022 conference on Managed Programming Languages and Runtimes (in co-op with ACM). The deadline to submit papers is May 20, 2022.

  2. September 2021 Ellen Arvidsson just started as a new PhD student. Ellen did her master thesis with Philipp Haller, and is now working with me and Elias Castegren on type systems for the Verona programming language.

  3. August 2021 Together with Martin Henz and Julie Sussman (and Hal Abelson and Jerry Sussman), we just submitted Structure and Interpretation of Computer Programs: JavaScript Edition to MIT Press. Expect this to hit the stores in April 2022. (And now we can all get some sleep.)

  4. April 2021 I am serving on the programme committee of Onward! Essays. New to essays? Here is an explanatory quote from Richard P Gabriel: Essays are not (much) like typical technical papers; instead an essay is an exploration, a reflection, or an observation — in this case about programming, programming languages, and software... An Essay is not a technical paper, it's not a proposal for research, it's not a lousy OOPSLA paper, it's not even an Onward! Research paper. It might be an invitation to look at programming languages and software a different way. Here are the Onward! Essays of 2020. One of my favourite Onward! Essays is Some were meant for C: the endurance of an unmanageable language.

  5. March 2021 I am serving on the external review committee of OOPSLA 2021. The deadline for submissions is Friday, April 16, 2021. If you are doing great work in programming languages, you should definitely consider submitting to OOPSLA.

  6. February 2021 Malin Källén just passed her PhD defense. Here is her thesis: Towards Higher Code Quality in Scientific Computing. The opponent was Professor Serge Demeyer from University of Antwerp, and the grading committe consisted of Professor Görel Hedin from Lund University, Professor Benoit Baudry from KTH, Professor Elisabeth Larsson from Uppsala University, and Magne Haveraaen from University of Bergen.

    The defense took place over Zoom, with an overwhelming majority of people self-identifying as experts in Scientific Computing and a few experts in Software Engineering.

  7. January 2021 Kiko Fernandez-Reyes, just passed his PhD defense. Here is his thesis: Abstractions to Control the Future. The opponent was Professor Martin Steffen from Oslo University, and the grading committe consisted of Professor Elisa Gonzales Boix from Vrije University Brussels, Christoph Reichenbach from Lund University, and Tjark Weber from Uppsala University, and Mark S. Miller from Agoric as the reserve.

    The defense took place over Zoom. Thanks to all europeans that stayed up late, and to Mark who rose very early.

  8. January 2021 My PhD student Malin's paper to Programming 2021 on Jupyter Notebooks on GitHub: Characteristics and Code Clones has been accepted. In this paper we mine 2.7 million Jupyter Notebooks downloaded from GitHub to find software clones, and other characteristics such as language distributions (95% Python), etc. Read the pre-print on arXiv here.


News 2020

  1. December 2020 Our Oracle project proposal to continue our collaboration on garbage collection was funded. This project will start in Spring of 2021 and run for at least one year.

  2. November 2020 My project proposal to the Swedish research council on acceleration of managed languages was funded. This project will start in January 2021 and run for four years.

  3. October 2020 My grant application Accelerating Managed Languages was funded by the Swedish Research Council. Funding runs until 2024.

  4. October 2020 I am the general chair of ISMM 2021, co-located with PLDI 2021. If you are doing any work in the area of memory management, you should definitely consider submitting to ISMM.

  5. August 2020 I am serving on the programme committee of PLDI 2021. The deadline for submissions is Friday, November 20, 2020. If you are doing great work in programming languages, you should definitely consider submitting to PLDI.

  6. August 2020 Keynote: Martin Henz and myself are featured on ICFP's Scheme workshop programme, talking about the SICP JS project: SICP JS: Ketchup on Caviar?, tune in!

  7. June 2020 Jonas Norlinder's master thesis, Moving Garbage Collection with Low-Variation Memory Overhead and Deterministic Concurrent Relocation, has been approved. Notably, Jonas won 3rd prize in the PLDI Student Research Competition for his poster based on that work.

  8. June 2020 Michael Rehn's master thesis, Garbage Collected CRDTs on the Web: Studying the Memory Efficiency of CRDTs in a Web Context, has been approved.

  9. June 2020 PhD position open in a project on execution environments for high-level programming languages. Deadline to apply 2020-06-25. Part of this work will be done in collaboration with Oracle.

    This position has been filled.

  10. June 2020 Our artefact for Reshape your layouts, not your programs: A safe language extension for better cache locality has been accepted to ECOOP 2020. Great work Alex Tasos!

  11. May 2020 The artefact for our paper Improving Program Locality in the GC using Hotness with won the distinguished artefact award at PLDI 2020. Our artefact downloaded and built OpenJDK, then applied a patch for the work in our paper, and then built a modified OpenJDK version. With these two versions, a reviewer could then recreate all plots from our paper on their own hardware. Kudos to artefact reviewers who ran the full set of benchmarks (which takes more than one week!).

  12. April 2020 Albert Yang's paper ThinGC: Complete Isolation With Marginal Overhead has been accepted to ISMM 2020. This is a collaboration with Oracle (Erik Österlund and Jesper Wilhelmsson) and includes work done by a master student from KTH (Hanna Nyblom).

  13. April 2020 Our paper Reshape your layouts, not your programs: A safe language extension for better cache locality has been accepted to Science of Computer Programming. This is the culmination of lots of work by Alex Tasos and Juliana Franco, Sophia Drossopoulou, Susan Eisenbach, and myself. And the best is yet to come as we will now allow ourselves to move forward!

  14. April 2020 The artefact for Albert Yang's paper Improving Program Locality in the GC using Hotness with Erik Österlund from Oracle and myself has been accepted to PLDI 2020 with a reusable badge.

  15. April 2020 I have been promoted to full professor of computing science (datalogi in Swedish) at Uppsala University.

  16. March 2020 My master student Jonas' entry to the PLDI 2020 Student Research Competition has been accepted. Jonas' topic is reducing the memory footprint of OpenJDK under ZGC and making it more predictable, by reengineering the forwarding tables and changing semantics of relocation so that object placement is deterministic, even with mutators and GC threads racing to relocate objects.

  17. February 2020 My PhD student Albert's paper Improving Program Locality in the GC using Hotness with Erik Österlund from Oracle and myself has been accepted to PLDI 2020.

  18. January 2020 Starting from January 1st, I am serving as the Head of Education at the department. We are currently making big changes to how we manage education, so this is doubly exciting an a great time to take on this role.


News 2019

  1. September 2019 Our paper Run Actor, Run on benchmarking actor applications has been accepted to the AGERE 2019 workshop. This is joint work between Sebastian Blessing, Albert Mingkun Yang, Kiko Fernandez-Reyes, Sophia Drossopoulou and myself. The paper argues the need for stating clear rules for cross-language benchmarking games, as well as takes the first steps towards defining a multi-faceted actor benchmark.

  2. August 2019 My PhD student Malin's paper to Managed Programming Languages and Runtimes on Performance of an OO Compute Kernel on the JVM — Revisiting Java as a Language for Scientific Computing Applications has been accepted. In this paper we evaluate the performance of C++ and JVM compute kernels, and investigate the state of Java for Scientific Computing in 2019.

  3. July 2019 The artefact for our paper Godot — all the benefits of explicit and implicit futures won the distinguished artefact award at ECOOP.

  4. Jul 2019 Until the end of the year, I am on a sabbatical visiting the Department of Computer Science at the National University of Singapore. Thus, I am in Time Zone UTC+8, and cannot regularly be reached through my Swedish cell phone number.

  5. Jun 2019 I am serving on the Programme Committee for SPLASH-E (the SPLASH Education Track) in 2019. The deadline is July 12, but this year SPLASH-E has a flexible deadline option.

  6. May 2019 I am proud to report that I am the 2019 recipient of the pedagogical award in the Math, Science, and Technology faculty.

    Motivation: Tobias Wrigstad is passionate about his teaching. With pedagogical ability and subject knowledge, he inspires his students. He continuously develops his pedagogy with the goal that students should take their own responsibility for their learning. With innovative teaching and examination forms, enthusiasm and responsiveness, Tobias promotes student learning and interest in the subject. Tobias also generously shares his educational experiences with colleagues.

  7. May 2019 Evaluated Artefact accepted — companion to the Godot paper which is to appear at ECOOP, by Kiko Fernandez-Reyes, Dave Clarke, Einar Broch Johnson, Ludovic Henrio and myself.
    The artefact contains a prototype implementation of the formalisms in the paper in Scala, to serve the community members who rather look at executable code than operational semantics when implementing features.

  8. May 2019 Paper accepted to <PROGRAMMING> 2020: Reference Capabilities for Safe Parallel Array Programming, by Beatrice Åkerblom, Elias Castegren and myself.
     
    The paper extends our previous work on reference capabilities with support for arrays. Array capabilities are abstract array views that offer a consequtive view of (the possibly "scattered" elements of) the underlying array. Array manipulation of unique reference capabilities preserves uniqueness, and there are many nice borrowing patterns that showcase the usefulness of borrowing to temporarily decompose a structure and using borrowing to snap it back together again.
     
    One of my favourite lines of the paper is the showcasing of how a matrix encoded as an array can be rotated with a single line of code: align(merge(split(matrix, Cols, True), True)) (see the forthcoming paper for details).

  9. May 2019 Paper accepted to the IFAC Symposium on Advances in Control Education (ACE 2019): Quantitative Analysis of Curricula Coherence Using Directed Graphs, by Steffi Knorn, Damiano Varagnolo, Kjell Staffas, myself, and Eva Fjällström.

  10. May 2019 CurryOn talk: Run, Actor, Run!, by Sebastian Blessing, Sophia Drossopoulou and myself.
     
    Together with Sophia and Sebastian (and since then a growing team including Kiko Fernandez-Reyes and Albert Mingkun Yang), we are looking at the performace of actor languages on big machines. Stay tuned!

  11. April 2019 I will be serving on the Programme Committee for Onward! in 2019.

  12. April 2019 ECOOP paper accepted: Godot: All the Benefits of Implicit and Explicit Futures, by Kiko Fernandez-Reyes, Dave Clarke, Einar Broch Johnson, Ludovic Henrio and myself.
     
    This work explore two kinds of futures — data flow futures and control flow futures and their use in a single, explicitly typed system.

  13. April and March 2019 I am serving on the PhD committe of Nathalie Oostvoegels, adviced by Wolfgang De Meuter at VUB.

  14. February/March 2019 Visiting Martin Henz at the National University of Singapore (NUS).

  15. February 2019 I have been awarded a STINT scholarship to do a teaching sabbatical at National University of Singapore (NUS) in the fall of 2019. My host is Martin Henz.

  16. January 2019 Stephan Branduaer, PhD just graduated. The opponent was Professor Doug Lea from SUNY Oswego, and the grading committe consisted of Professor Magne Haveraaen from University of Bergen, Professor Görel Hedin, LTH, and Associate Senior Lecturer Elisabeth Larsson, Uppsala.

  17. January 2019 My PhD student Stephan Brandauer just nailed his thesis, as part of the ritual of announcing his public PhD defence on January 23rd. The grading committee consists of Professor Magne Haveraaen, Professor Görel Hedin, Associate Professor Elisabeth Larsson and Professor Björn Victor. The opponent is Professor Doug Lea, SUNY Oswego, US.


News 2018

  1. November 2018 On November 26th, together with Per Stenström (Chalmers) and Sverker Jansson (Rise), I'm organising the 12th Multicore Day as part of the SICS software week. The year's line-up promises great insights into the future of computer hardware, and computing:

    1. Half Off GPU Computing: Efficient Virtualization and Coherence Techniques for GPUs, Murali Annavaram, University of Southern California
    2. Quantum Computers and Quantum Software, Harry Buhrman, Univesity of Amsterdam
    3. Emerging Trends in Neuromorphic Hardware Systems, Nasim Farahini, Qamcom Research & Technology
    4. Is it Time for RISC and CISC to Die?, Aaron Smith, Microsoft and University of Edinburgh
    5. Mr.Wolf: A RISC-V Parallel Ultra Low Power SoC for IoT Edge Processing, David Rossi, University of Bologna
    6. Trends in High-Performance Memory Systems, Per Stenström, Chalmers University of Technology
    7. Green Cache: Efficient Pointer-Based Multicore Caches, Erik Hagersten, Uppsala University

    Hope to see you there!

  2. October 2018 I am giving a keynote presentation: Concurrency vs. Parallelism in Encore (...and Types), at AGERE!, Monday November 5 8:45-10:00, co-located with SPLASH 2018.

    Abstract: Parallelism warrants concurrency, but more often that not, the concepts are at odds with each other. Typical concurrent programming deals with coordinating related events that execute asynchronously. Typical concurrent programs push control closer to the producers and consumers of related events. Parallel programming on the other hand often thrives on centralised control – on the ability to determine that a certain task can be partitioned and work distributed across multiple cores. How to best support parallelism in actor programs is not clear. Do we use internal parallelism encapsulated inside an actor to increase the throughput of a single message, or do we employ parallelism to process multiple messages to the same actor in parallel, in the hope of reducing latency?
            For the last few years, the Encore actor language has served as a playground for exploring how to support – efficiently and safely – both concurrency and parallelism in actor languages. In this talk I will report on our experiences, and how we leverage types across all solutions.

    In addition, I am also presenting Stephan's Onward! paper on Cflat: A New Modular Approach to Implementing Efficient and Tunable Collections on November 8 10:30--11:00.

  3. September 2018 AGERE paper accepted: Attached and Detached Closures in Actors, by the (past and present) core Encore team: Elias Castegren, Dave Clarke, Kiko Fernandez-Reyes, Albert Mingkun Yang and myself
    .  
    This work investigates closures and capturing of state in actor programs, and in particular how this is handled in the Encore programming language.

  4. August 2018 Onward! paper accepted: Cflat: A New Modular Approach to Implementing Efficient and Tunable Collections., by Stephan Brandauer, Elias Castegren and myself
     
    The paper explores a new way to implement data structures which untangles representation from "business logic", which allows intresting ways of tuning data structures using different storage back-ends that match different usage scenarios. A key result is a small regex-like language for expressing an abstract iterator that is used for front-end implementation of a data structure while keeping it combinable with any storage back-end.

  5. July 2018 Action shots from ECOOP (FTfJP and ICOOOLPS) of Juliana and Alex presenting our work on SHAPES.

  6. July 2018 JLAMP journal paper accepted: Bestow and Atomic: Concurrent Programming using Isolation, Delegation and Grouping, by Elias Castegren, Joel Wallin and myself has been accepted to the Journal of Logical and Algebraic Methods in Programming.
     
    The paper explores different means to achieve effective actor isolation -- by controlling sharing of mutable state, or by controlling who carries out operations on mutable state, regardless of where they are triggered. It also explores the meaning of atomicity in the context of actors and how to develop concurrency abstractions for actors we well as threads and locks. An open preprint version will be uploaded to arXiv shortly.

  7. June 2018 A few action shots from ARRAY'18 of Beatrice presenting her work (together with Elias and myself) on data-race free programming with arrays in Kappa.

       

  8. June 2018 Attending the OOPSLA PC meeting and PLDI.

  9. June 2018 Our paper Safely Abstracting Memory Layouts was accepted to FTfJP. The paper, by Juliana Franco, Alexandros Tasos, Sophia Drossopoulou, myself and Susan Eisenbach, formalises parts of our previous (and on-going) work on SHAPES a programming language extension for enabling memory optimisation for managed languages.

  10. June 2018 Work-in-progress paper Extending SHAPES for SIMD Architectures was accepted to ICOOOLPS. The paper, by Alexandros Tasos, Juliana Franco, myself, Sophia Drossopoulou and Susan Eisenbach, builds on our previous (and on-going) work on SHAPES a programming language extension for enabling memory optimisation for managed languages.

  11. May 2018 I have been appointed “distinguished university teacher” by the university commission for (wait for it) distinguished university teachers. This is “a career step and a distinguished title for extra-skilled teachers at Uppsala University”.

  12. May 2018 Beatrice's paper Support for Parallel Programming With Arrays in Kappa with Elias and myself has been accepted for ARRAY 2018.

  13. April 2018 An action shot from ESOP of Juliana presenting our work on the correctness of the ORCA GC protocol.

    Photo by Sophia Drossopoulou.

  14. March 2018 For a few months, I have been collaborating with Oracle (together with Albert Yang, my PhD student) on memory management on the JVM. As a side-effect of this collaboration, Oracle is offering master thesis subjects supervised by JVM engineers at their Stockholm Offices. Uppsala students interested in these topics should contact me directly.

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

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


News 2017

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

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

  3. 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!

  4. October 2017 Action shots from SPLASH'17.

           

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

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

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

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

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

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

  11. 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).

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

  13. 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!

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

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

  16. 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).

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

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

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

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

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

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

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

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

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


News Before 2016

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  20. 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 2018

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


Research

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

Ongoing Projects

  • 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

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


Awards

2017 Teacher of the Year Award:

The currently enrolled students at the department's two main programmes, the 5-year IT programme, and the 3-year CS bachelor programme, awarded me with the teacher of the year award in 2017.

Motivation: 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.

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!

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.


Community Service

Programme Committees, Grading Committees, and Chairing

  1. [2022] ECOOP, MPRL (as PC Chair), PROGRAMMING, and Scheme and Functional Programming Workshop at ICFP.
  2. [2021] ECOOP, OOPSLA (ERC), PLDI, Onward! Essays, and ISMM (as General Chair).
  3. [2020] Cancelled due to COVID!
  4. [2019] ECOOP, PhD committee for Nathalie Oostvoegels (advised by Wolfgang De Meuter at VUB). and SPLASH-E.
  5. [2018] PLDI, OOPSLA, SPLASH-E (Education Symposium), and AGERE! (Actor workshop).
  6. [2017] ECOOP, PhD committee for Vincenzo Mastandrea (advised by Ludovic Henrio and Cosimo Laneve)
  7. [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
  8. [2015] OOPSLA, PLDI (ERC), STOP, PhD committee for Jun He (supervised by Pierre Flener and Justin Pearson), Dahl-Nygaard Award Committee
  9. [2014] FOOL
  10. [2013] POPL, SCALA
  11. [2012] ECOOP
  12. [2011] OOPSLA, IWACO, FTFJP
  13. [2010] LDTA, CATS
  14. [2009] STOP (Chair), IWACO, DLS
  15. [2008] ECOOP, IWACO, FTFJP, FOOL/WOOD
  16. [2007] IWACO (Chair)

Event Organisation

  1. [2022] Program Chair for MPLR in Brussels, Belgium.
  2. [2021] General Chair for ISMM in Virtual, Zoom.
  3. [2018] 12th Multicore Day in collaboration with SICS/RISE.
  4. [2017] 11th Multicore Day in collaboration with SICS/RISE.
  5. [2016] Workshop organiser NOOL @ OOPSLA in Amsterdam, NL and IWACO @ ECOOP in Rome IT, Sponsor Co-Chair @ OOPSLA, Workshop PC @ OOPSLA, and 10th Multicore Day in collaboration with SICS/RISE.
  6. [2015] Summer School Co-Organiser: Formal Methods for the Design of Computer, Communication and Software Systems: Multicore Programming in Bertinoro, Italy
  7. [2014] General Chair (main organiser) for ECOOP in Uppsala, Sweden.
  8. [2014] Chair of Student Activities, POPL in San Diego, USA
  9. [2013] Chair of Student Activities, POPL in Rome, Italy
  10. [2012] Chair of Student Activities, POPL in Philadelphia, USA
  11. [2011] Main Organiser of UPMARC Summer School on Concurrent and Parallel Programming
  12. [2011] Workshop organiser STOP @ POPL in Austin, Texas USA
  13. [2009] Workshop organiser STOP @ ECOOP in Genoa, Italy
  14. [2007] Workshop organiser IWACO @ ECOOP in Berlin, Germany

Steering Committees and Other Memberships

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

Contact Info


Email: first.last@it.uu.se

Visiting Address:
Department of Information Technology
Åströmlaboratoriet, Hus 10 (Lägerhyddsvägen 1)
Uppsala