Tobias Wrigstad
Professor at Department of Information Technology; Division of Computing Science
- Telephone:
- +46 18 471 10 72
- Mobile phone:
- +46 73 697 14 19
- E-mail:
- tobias.wrigstad@it.uu.se
- Visiting address:
- Hus 10, Lägerhyddsvägen 1
- Postal address:
- Box 337
751 05 UPPSALA
- ORCID:
- 0000-0002-4269-5408
More information is available to staff who log in.
Short presentation
I'm posting updates on everything exciting at my external page wrigstad.com.
Keywords
- concurrent programs
- memory management
- parallel programming
- programming languages
- software engineering
- type systems
Research
My research started in type systems for ownership and encapsulation, then moved away from types to dynamic programming languages (aka scripting languages), then combined these with types in gradual typing. I started working on actor languages, and then application of several of the results from my earlier type systems and ownership work to concurrency and parallelism in the form of capabilities, which were simpler yet more versatile. The quest for performance led me to garbage collection, memory management, and arrays.
My current research focuses on managed programming languages and their safe and efficient execution, through improved memory management techniques. There are several synergies with past work on capabilities as well as gradual typing which I mean to explore in the near future.
In addition to this, I have been studying scientific computing software from a software engineering perspective, which has led to large-scale analysis of code repositories of data science programs written predominantly in untyped languages, to find errors and support the development of correct, reusable, reproducable scientific computing.
Publications
Recent publications
- Nominal Types for Erlang (2024)
- Dafny vs. Dala (2024)
- Mutator-Driven Object Placement using Load Barriers (2024)
- Reference Counting Deeply Immutable Data Structures with Cycles (2024)
- Scheduling Garbage Collection for Energy Efficiency on Asymmetric Multicore Processors (2024)
All publications
Articles
- Scheduling Garbage Collection for Energy Efficiency on Asymmetric Multicore Processors (2024)
- Reference Capabilities for Flexible Memory Management (2023)
- When Concurrency Matters (2023)
- Deep Dive into ZGC: A Modern Garbage Collector in OpenJDK (2022)
- Jupyter Notebooks on GitHub (2021)
- Reshape your layouts, not your programs (2020)
- Graph-theoretic approaches and tools for quantitatively assessing curricula coherence (2020)
- Quantitative analysis of curricula coherence using directed graphs (2019)
- Bestow and Atomic (2018)
- OOlong (2018)
- Types for CAS (2017)
- Orca (2017)
- Type-assisted automatic garbage collection for lock-free data structures (2017)
- Minimal Ownership for Active Objects (2008)
- Dala
- To Err or Not to Err?
- Monk
- Monk
Books
Chapters
- Encore (2023)
- Vats (2016)
- Beyond the Geneva Convention on the Treatment of Object Aliasing (2013)
- Ownership Types (2013)
- Structured Aliasing (2013)
Conferences
- Nominal Types for Erlang (2024)
- Dafny vs. Dala (2024)
- Mutator-Driven Object Placement using Load Barriers (2024)
- Reference Counting Deeply Immutable Data Structures with Cycles (2024)
- Heap Size Adjustment with CPU Control (2023)
- Compressed Forwarding Tables Reconsidered (2022)
- Analysing and Predicting Energy Consumption of Garbage Collectors in OpenJDK (2022)
- Dala: a simple capability-based dynamic language design for data race-freedom (2021)
- ThinGC (2020)
- Improving Program Locality in the GC using Hotness (2020)
- Run, Actor, Run (2019)
- Godot (2019)
- Courses-Concepts-Graphs as a Tool to Measure the Importance of Concepts in University Programmes (2019)
- Performance of an OO compute kernel on the JVM (2019)
- Progress Report (2019)
- C♭: A New Modular Approach to Implementing Efficient and Tunable Collections (2018)
- Attached and Detached Closures in Actors (2018)
- OOlong (2018)
- Correctness of a concurrent object collector for actor languages (2018)
- Safely Abstracting Memory Layouts (2018)
- Extending SHAPES for SIMD Architectures – (2018)
- Parallel Programming With Arrays in Kappa (2018)
- Spencer (2017)
- Mining for Safety using Interactive Trace Analysis (2017)
- Actors without Borders (2017)
- Relaxed Linear References for Lock-free Data Structures (2017)
- Reference Capabilities for Concurrency & Scalability (2017)
- You can have it all (2017)
- Mastery Learning-Like Teaching with Achievements (2017)
- Kappa (2016)
- Reference Capabilities for Concurrency Control (2016)
- Types for CAS: Relaxed Linearity with Ownership Transfer (2016)
- Towards Enabling Low-Level Memory Optimisations at the High-Level with Ownership Annotations (2016)
- Parallel Objects for Multicores (2015)
- Disjointness Domains for Fine-Grained Aliasing (2015)
- Refined Ownership (2015)
- Measuring Polymorphism in Python Programs (2015)
- Structured Aliasing (2012)
- The Joelle Programming Language (2012)
- Multiple Aggregate Entry Points for Ownership Types (2012)
- Is the World Ready for Ownership Types? Is Ownership Types Ready for the World? (2011)
- Owners as Ombudsmen (2011)
- Regions as Owners (2011)
- Tribal ownership (2010)
- Welterweight Java (2010)
Reports
- Performance of an OO compute kernel on the JVM (2019)
- LOLCAT (2016)
- Reference Capabilities for Trait Based Reuse and Concurrency Control (2016)