VLDB 2026 Research / reviewers in the wild / expert
Karl Naden
dblp:40/9656
· DBLP profile ↗
5ranked-venue papers
1as first author
0since 2021 · last 2014
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
5 papers |
Programming languages and type systems · 81% Concurrent programming · 16% Runtime systems and virtual machines · 3% |
Topics — the 8 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
type systems |
0.5 | 3 | 2014 | Æminium: A Permission-Based Concurrent-by-Default Programming Language Approach · ACM Trans. Program. Lang. Syst. 2014 A type system for borrowing permissions · POPL 2012 Permission-based programming languages · ICSE 2011 |
Programming languages and type systems › language-based security
fractional permissions |
0.1 | 1 | 2012 | A type system for borrowing permissions · POPL 2012 |
Programming languages and type systems
language design |
0.1 | 1 | 2011 | First-class state change in plaid · OOPSLA 2011 |
Programming languages and type systems
language semantics |
0.1 | 1 | 2011 | First-class state change in plaid · OOPSLA 2011 |
Programming languages and type systems › language semantics › formal semantics › operational semantics
state transition semantics |
0.1 | 1 | 2011 | First-class state change in plaid · OOPSLA 2011 |
Runtime systems and virtual machines
concurrent runtime systems |
0.1 | 1 | 2014 | Æminium: a permission based concurrent-by-default programming language approach · PLDI 2014 |
Concurrent programming
concurrency correctness |
0.0 | 1 | 2012 | A type system for borrowing permissions · POPL 2012 |
Concurrent programming
synchronization |
0.0 | 1 | 2011 | Permission-based programming languages · ICSE 2011 |
Methods — techniques the papers use, named apart from their topics
unique permissions · 0.1shared permissions · 0.1local permissions · 0.1immutable permissions · 0.1change permissions · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Æminium: a permission based concurrent-by-default programming language approachabstractThe aim of ÆMINIUM is to study the implications of having a concurrent-by-default programming language. This includes language design, runtime system, performance and software engineering considerations. Sven Stork, Karl Naden, Joshua Sunshine, Manuel Mohr, Alcides Fonseca, Jonathan Aldrich |
PLDI | 2 |
| 2014 | Æminium: A Permission-Based Concurrent-by-Default Programming Language ApproachabstractWriting concurrent applications is extremely challenging, not only in terms of producing bug-free and maintainable software, but also for enabling developer productivity. In this article we present the Æminium concurrent-by-default programming language. Using Æminium programmers express data dependencies rather than control flow between instructions. Dependencies are expressed using permissions, which are used by the type system to automatically parallelize the application. The Æminium approach provides a modular and composable mechanism for writing concurrent applications, preventing data races in a provable way. This allows programmers to shift their attention from low-level, error-prone reasoning about thread interleaving and synchronization to focus on the core functionality of their applications. We study the semantics of Æminium through μ Æminium, a sound core calculus that leverages permission flow to enable concurrent-by-default execution. After discussing our prototype implementation we present several case studies of our system. Our case studies show up to 6.5X speedup on an eight-core machine when leveraging data group permissions to manage access to shared state, and more than 70% higher throughput in a Web server application. Sven Stork, Karl Naden, Joshua Sunshine, Manuel Mohr, Alcides Fonseca, Jonathan Aldrich |
ACM Trans. Program. Lang. Syst. | 2 |
| 2012 | A type system for borrowing permissionsabstractIn object-oriented programming, unique permissions to object references are useful for checking correctness properties such as consistency of typestate and noninterference of concurrency. To be usable, unique permissions must be borrowed --- for example, one must be able to read a unique reference out of a field, use it for something, and put it back. While one can null out the field and later reassign it, this paradigm is ungainly and requires unnecessary writes, potentially hurting cache performance. Therefore, in practice borrowing must occur in the type system, without requiring memory updates. Previous systems support borrowing with external alias analysis and/or explicit programmer management of fractional permissions. While these approaches are powerful, they are also awkward and difficult for programmers to understand. We present an integrated language and type system with unique, immutable, and shared permissions, together with new local permissions that say that a reference may not be stored to the heap. Our system also includes change permissions such as unique>>unique and unique>>none that describe how permissions flow in and out of method formal parameters. Together, these features support common patterns of borrowing, including borrowing multiple local permissions from a unique reference and recovering the unique reference when the local permissions go out of scope, without any explicit management of fractions in the source language. All accounting of fractional permissions is done by the type system "under the hood." We present the syntax and static and dynamic semantics of a formal core language and state soundness results. We also illustrate the utility and practicality of our design by using it to express several realistic examples. Karl Naden, Robert Bocchino, Jonathan Aldrich, Kevin Bierhoff |
POPL | 1 |
| 2011 | Permission-based programming languagesabstractLinear permissions have been proposed as a lightweight way to specify how an object may be aliased, and whether those aliases allow mutation. Prior work has demonstrated the value of permissions for addressing many software engineering concerns, including information hiding, protocol checking, concurrency, security, and memory management. Jonathan Aldrich, Ronald Garcia, Mark Hahnenberg, Manuel Mohr, Karl Naden, Darpan Saini, Sven Stork, Joshua Sunshine, Éric Tanter, Roger Wolff |
ICSE | 5 |
| 2011 | First-class state change in plaidabstractObjects model the world, and state is fundamental to a faithful modeling. Engineers use state machines to understand and reason about state transitions, but programming languages provide little support for building software based on state abstractions. We propose Plaid, a language in which objects are modeled not just in terms of classes, but in terms of changing abstract states. Each state may have its own representation, as well as methods that may transition the object into a new state. A formal model precisely defines the semantics of core Plaid constructs such as state transition and trait-like state composition. We evaluate Plaid through a series of examples taken from the Plaid compiler and the standard libraries of Smalltalk and Java. These examples show how Plaid can more closely model state-based designs, enhancing understandability, enhancing dynamic error checking, and providing reuse benefits. Joshua Sunshine, Karl Naden, Sven Stork, Jonathan Aldrich, Éric Tanter |
OOPSLA | 2 |