VLDB 2026 Research / reviewers in the wild / expert
Vilhelm Sjöberg
dblp:72/7563
· DBLP profile ↗
9ranked-venue papers
2as first author
1since 2021 · last 2024
0009-0000-7371-4969ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 2 first-author · 1 since 2021Systems, architecture and hardware · 1 · 1 since 2021Security and privacy · 1
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
8 papers |
Programming languages and type systems · 41% Program verification · 36% Operating systems · 12% | |
| Network and information security
2 papers |
Hardware security and side channels · 80% Systems and software security · 20% |
Topics — the 21 heaviest of 22, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Hardware security and side channels
trusted execution environments |
0.8 | 1 | 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024 |
Program verification › system verification › systems code verification
hypervisor verification |
0.8 | 1 | 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024 |
Program verification
abstraction refinement |
0.7 | 2 | 2019 | DeepSEA: a language for certified system software · Proc. ACM Program. Lang. 2019 Certified concurrent abstraction layers · PLDI 2018 |
Programming languages and type systems › type theory
dependent types |
0.5 | 3 | 2015 | Programming up to Congruence · POPL 2015 Combining proofs and programs in a dependently typed language · POPL 2014 Dependent types and program equivalence · POPL 2010 |
Operating systems
kernel |
0.4 | 1 | 2019 | DeepSEA: a language for certified system software · Proc. ACM Program. Lang. 2019 |
Compilers and program optimization
verified compilation |
0.4 | 1 | 2019 | DeepSEA: a language for certified system software · Proc. ACM Program. Lang. 2019 |
Program verification
concurrent program verification |
0.3 | 1 | 2018 | Certified concurrent abstraction layers · PLDI 2018 |
Operating systems › kernel
kernel design |
0.2 | 1 | 2016 | CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels · OSDI 2016 |
Programming languages and type systems › language-based security
memory safety |
0.2 | 1 | 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024 |
Programming languages and type systems
rust |
0.2 | 1 | 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024 |
Programming languages and type systems
type systems |
0.2 | 1 | 2015 | Programming up to Congruence · POPL 2015 |
Programming languages and type systems › type systems
type soundness |
0.2 | 1 | 2014 | Combining proofs and programs in a dependently typed language · POPL 2014 |
Programming languages and type systems › metatheory
decidability |
0.1 | 1 | 2010 | Dependent types and program equivalence · POPL 2010 |
Programming languages and type systems
type checking |
0.1 | 1 | 2010 | Dependent types and program equivalence · POPL 2010 |
Programming languages and type systems › type checking
type equivalence |
0.1 | 1 | 2010 | Dependent types and program equivalence · POPL 2010 |
Concurrent programming
concurrency verification |
0.1 | 1 | 2018 | Certified concurrent abstraction layers · PLDI 2018 |
Systems and software security
information flow control |
0.1 | 1 | 2009 | Reactive noninterference · CCS 2009 |
Systems and software security › information flow control
noninterference |
0.1 | 1 | 2009 | Reactive noninterference · CCS 2009 |
Concurrent programming
concurrency bugs |
0.1 | 1 | 2016 | CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels · OSDI 2016 |
Program verification › correctness proof
total correctness |
0.1 | 1 | 2014 | Combining proofs and programs in a dependently typed language · POPL 2014 |
Programming languages and type systems
language-based security |
0.0 | 1 | 2009 | Reactive noninterference · CCS 2009 |
Methods — techniques the papers use, named apart from their topics
formal verification · 2.1rust · 1.5equational reasoning · 0.4effect encapsulation · 0.4coq · 0.4compcert · 0.4layer-based verification · 0.3certified programming · 0.2congruence closure · 0.2temporal logic · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave HypervisorabstractAs trusted execution environments (TEE) have become the corner stone for secure cloud computing, it is critical that they are reliable and enforce proper isolation, of which a key ingredient is spatial isolation. Many TEEs are implemented in software such as hypervisors for flexibility, and in a memory-safe language, namely Rust to alleviate potential memory bugs. Still, even if memory bugs are absent from the TEE, it may contain semantic errors such as mis-configurations in its memory subsystem which breaks spatial isolation. Zhenyang Dai, Vilhelm Sjöberg, Xupeng Li, Yu Chen 0004, Wenhao Wang 0001, Yuekai Jia, Sean Noble Anderson, Laila Elbeheiry, Shubham Sondhi, Yu Zhang 0313, Zhaozhong Ni, Shoumeng Yan, Ronghui Gu, Zhengyu He |
ASPLOS (2) | 3 |
| 2019 | DeepSEA: a language for certified system softwareabstractWriting certifiably correct system software is still very labor-intensive, and current programming languages are not well suited for the task. Proof assistants work best on programs written in a high-level functional style, while operating systems need low-level control over the hardware. We present DeepSEA, a language which provides support for layered specification and abstraction refinement, effect encapsulation and composition, and full equational reasoning. A single DeepSEA program is automatically compiled into a certified ``layer'' consisting of a C program (which is then compiled into assembly by CompCert), a low-level functional Coq specification, and a formal (Coq) proof that the C program satisfies the specification. Multiple layers can be composed and interleaved with manual proofs to ascribe a high-level specification to a program by stepwise refinement. We evaluate the language by using it to reimplement two existing verified programs: a SHA-256 hash function and an OS kernel page table manager. This new style of programming language design can directly support the development of correct-by-construction system software. Vilhelm Sjöberg, Yuyang Sang, Shu-Chun Weng, Zhong Shao 0001 |
Proc. ACM Program. Lang. | 1 |
| 2018 | Certified concurrent abstraction layersabstractConcurrent abstraction layers are ubiquitous in modern computer systems because of the pervasiveness of multithreaded programming and multicore hardware. Abstraction layers are used to hide the implementation details (e.g., fine-grained synchronization) and reduce the complex dependencies among components at different levels of abstraction. Despite their obvious importance, concurrent abstraction layers have not been treated formally. This severely limits the applicability of layer-based techniques and makes it difficult to scale verification across multiple concurrent layers. Ronghui Gu, Zhong Shao 0001, Jieung Kim, Xiongnan (Newman) Wu, Jérémie Koenig, Vilhelm Sjöberg, Hao Chen 0023, David Costanzo, Tahina Ramananandro |
PLDI | 6 |
| 2017 | Safety and Liveness of MCS Lock - Layer by Layer
Jieung Kim, Vilhelm Sjöberg, Ronghui Gu, Zhong Shao 0001 |
APLAS | 2 |
| 2016 | CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels
Ronghui Gu, Zhong Shao 0001, Hao Chen 0023, Xiongnan (Newman) Wu, Jieung Kim, Vilhelm Sjöberg, David Costanzo |
OSDI | 6 |
| 2015 | Programming up to CongruenceabstractThis paper presents the design of Zombie, a dependently-typed programming language that uses an adaptation of a congruence closure algorithm for proof and type inference. This algorithm allows the type checker to automatically use equality assumptions from the context when reasoning about equality. Most dependently-typed languages automatically use equalities that follow from beta-reduction during type checking; however, such reasoning is incompatible with congruence closure. In contrast, Zombie does not use automatic beta-reduction because types may contain potentially diverging terms. Therefore Zombie provides a unique opportunity to explore an alternative definition of equivalence in dependently-typed language design. Vilhelm Sjöberg, Stephanie Weirich |
POPL | 1 |
| 2014 | Combining proofs and programs in a dependently typed languageabstractMost dependently-typed programming languages either require that all expressions terminate (e.g. Coq, Agda, and Epigram), or allow infinite loops but are inconsistent when viewed as logics (e.g. Haskell, ATS, Ωmega. Here, we combine these two approaches into a single dependently-typed core language. The language is composed of two fragments that share a common syntax and overlapping semantics: a logic that guarantees total correctness, and a call-by-value programming language that guarantees type safety but not termination. The two fragments may interact: logical expressions may be used as programs; the logic may soundly reason about potentially nonterminating programs; programs can require logical proofs as arguments; and "mobile" program values, including proofs computed at runtime, may be used as evidence by the logic. This language allows programmers to work with total and partial functions uniformly, providing a smooth path from functional programming to dependently-typed programming. Chris Casinghino, Vilhelm Sjöberg, Stephanie Weirich |
POPL | 2 |
| 2010 | Dependent types and program equivalenceabstractThe definition of type equivalence is one of the most important design issues for any typed language. In dependently typed languages, because terms appear in types, this definition must rely on a definition of term equivalence. In that case, decidability of type checking requires decidability for the term equivalence relation. Limin Jia 0001, Jianzhou Zhao, Vilhelm Sjöberg, Stephanie Weirich |
POPL | 3 |
| 2009 | Reactive noninterferenceabstractMany programs operate reactively--patiently waiting for user input, running for a while producing output, and eventually returning to a state where they are ready to accept another input (or occasionally diverging). When a reactive program communicates with multiple parties, we would like to be sure that it can be given secret information by one without leaking it to others. Aaron Bohannon, Benjamin C. Pierce, Vilhelm Sjöberg, Stephanie Weirich, Steve Zdancewic |
CCS | 3 |