15 citations · 49 across the 13 of their papers we have counts for
14 papers
Floating-Point Usage on GitHub: A Large-Scale Study of Statically Typed Languages
Andrea Gilot, Tobias Wrigstad, Eva Darulova
Reasoning about floating-point arithmetic is notoriously hard. While static and dynamic analysis techniques or program repair have made significant progress, more work is still nee…
Monk: Opportunistic Scheduling to Delay Horizontal Scaling
Marina Shimchenko, Erik Österlund, Tobias Wrigstad
In modern server computing, efficient CPU resource usage is often traded for latency. Garbage collection is a key aspect of memory management in programming languages like Java, bu…
Scheduling Garbage Collection for Energy Efficiency on Asymmetric Multicore Processors
Marina Shimchenko, Erik Österlund, Tobias Wrigstad
The growing concern for energy efficiency in the Information and Communication Technology (ICT) sector has prompted the exploration of resource management techniques. While hardwar…
Reference Capabilities for Flexible Memory Management: Extended Version
Ellen Arvidsson, Elias Castegren, Sylvan Clebsch +4
Verona is a concurrent object-oriented programming language that organises all the objects in a program into a forest of isolated regions. Memory is managed locally for each region…
Rusty Links in Local Chains
James Noble, Julian Mackay, Tobias Wrigstad
Rust successfully applies ownership types to control memory allocation. This restricts the programs' topologies to the point where doubly-linked lists cannot be programmed in Safe…
Dala: A Simple Capability-Based Dynamic Language Design For Data Race-Freedom
Kiko Fernandez-Reyes, Isaac Oscar Gariano, James Noble +3
Dynamic languages like Erlang, Clojure, JavaScript, and E adopted data-race freedom by design. To enforce data-race freedom, these languages either deep copy objects during actor (…
Jupyter Notebooks on GitHub: Characteristics and Code Clones
Malin Källén, Tobias Wrigstad
Jupyter notebooks has emerged as a standard tool for data science programming. Programs in Jupyter notebooks are different from typical programs as they are constructed by a collec…
Towards Gradual Checking of Reference Capabilities
Kiko Fernandez-Reyes, Isaac Oscar Gariano, James Noble +1
Concurrent and parallel programming is difficult due to the presence of memory side-effects, which may introduce data races. Type qualifiers, such as reference capabilities, can re…
Mastery Learning-Like Teaching with Achievements
Tobias Wrigstad, Elias Castegren
This paper describes the design of a second-year, 20 ECTS credit course on imperative and object-oriented programming. The key design rhetoric is encouraging students to assume res…
Reference Capabilities for Safe Parallel Array Programming
Beatrice à kerblom, Elias Castegren, Tobias Wrigstad
The array is a fundamental data structure that provides an efficient way to store and retrieve non-sparse data contiguous in memory. Arrays are important for the performance of man…
Safely Abstracting Memory Layouts
Juliana Franco, Alexandros Tasos, Sophia Drossopoulou +2
Modern architectures require applications to make effective use of caches to achieve high performance and hide memory latency. This in turn requires careful consideration of placem…
Bestow and Atomic: Concurrent Programming using Isolation, Delegation and Grouping
Elias Castegren, Joel Wallin, Tobias Wrigstad
Any non-trivial concurrent system warrants synchronisation, regardless of the concurrency model. Actor-based concurrency serialises all computations in an actor through asynchronou…
Actors without Borders: Amnesty for Imprisoned State
Elias Castegren, Tobias Wrigstad
In concurrent systems, some form of synchronisation is typically needed to achieve data-race freedom, which is important for correctness and safety. In actor-based systems, message…
Spencer: Interactive Heap Analysis for the Masses
Stephan Brandauer, Tobias Wrigstad
Programming language-design and run-time-implementation require detailed knowledge about the programs that users want to implement. Acquiring this knowledge is hard, and there is l…