Demo Data from EDBT 2026 / reviewers in the wild / expert
Bjarne Steensgaard
dblp:s/BjarneSteensgaard
· DBLP profile ↗
13ranked-venue papers
4as first author
0since 2021 · last 2009
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 4 first-authorSystems, architecture and hardware · 2
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
6 papers |
Concurrent programming · 52% Runtime systems and virtual machines · 20% Operating systems · 13% | |
| Network and information security
1 paper |
Systems and software security · 100% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Embedded and real-time systems · 48% Distributed systems · 26% Parallel and multicore computing · 26% |
Topics — the 17 heaviest of 19, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming › non-blocking algorithms
lock-freedom |
0.1 | 1 | 2009 | Progress guarantee for parallel programs via bounded lock-freedom · PLDI 2009 |
Concurrent programming › concurrency correctness
progress guarantees |
0.1 | 1 | 2009 | Progress guarantee for parallel programs via bounded lock-freedom · PLDI 2009 |
Concurrent programming › non-blocking algorithms
wait-free synchronization |
0.1 | 1 | 2009 | Progress guarantee for parallel programs via bounded lock-freedom · PLDI 2009 |
Runtime systems and virtual machines
garbage collection |
0.1 | 1 | 2008 | A study of concurrent real-time garbage collectors · PLDI 2008 |
Systems and software security
operating system security |
0.1 | 1 | 2007 | Sealing OS processes to improve dependability and safety · EuroSys 2007 |
Operating systems › system security › operating system security › protection mechanism › isolation
process isolation |
0.1 | 1 | 2007 | Sealing OS processes to improve dependability and safety · EuroSys 2007 |
Embedded and real-time systems
real-time scheduling |
0.0 | 1 | 2008 | A study of concurrent real-time garbage collectors · PLDI 2008 |
Program analysis › flow analysis
flow-insensitive analysis |
0.0 | 1 | 1996 | Points-to Analysis in Almost Linear Time · POPL 1996 |
Program analysis › static analysis
pointer analysis |
0.0 | 1 | 1996 | Points-to Analysis in Almost Linear Time · POPL 1996 |
Distributed systems › distributed system architecture › distributed operating systems
process migration |
0.0 | 1 | 1995 | Object and Native Code Thread Mobility Among Heterogeneous Computers · SOSP 1995 |
Parallel and multicore computing › parallel programming runtimes › thread management
thread migration |
0.0 | 1 | 1995 | Object and Native Code Thread Mobility Among Heterogeneous Computers · SOSP 1995 |
Compilers and program optimization
code motion |
0.0 | 1 | 1994 | Value Dependence Graphs: Representation without Taxation · POPL 1994 |
Compilers and program optimization › compiler optimization › redundancy elimination
partial redundancy elimination |
0.0 | 1 | 1994 | Value Dependence Graphs: Representation without Taxation · POPL 1994 |
Program analysis
program representation |
0.0 | 1 | 1994 | Value Dependence Graphs: Representation without Taxation · POPL 1994 |
Compilers and program optimization
program transformation |
0.0 | 1 | 1994 | Value Dependence Graphs: Representation without Taxation · POPL 1994 |
Programming languages and type systems › type inference
constraint-based type inference |
0.0 | 1 | 1996 | Points-to Analysis in Almost Linear Time · POPL 1996 |
Programming languages and type systems
type inference |
0.0 | 1 | 1996 | Points-to Analysis in Almost Linear Time · POPL 1996 |
Methods — techniques the papers use, named apart from their topics
mark-region collection · 0.2sealing · 0.1bounded lock-freedom analysis · 0.1machine-independent representation · 0.0bus stops · 0.0demand dependence · 0.0data flow analysis · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2009 | Progress guarantee for parallel programs via bounded lock-freedomabstractParallel platforms are becoming ubiquitous with modern computing systems. Many parallel applications attempt to avoid locks in order to achieve high responsiveness, aid scalability, and avoid deadlocks and livelocks. However, avoiding the use of system locks does not guarantee that no locks are actually used, because progress inhibitors may occur in subtle ways through various program structures. Notions of progress guarantee such as lock-freedom, wait-freedom, and obstruction-freedom have been proposed in the literature to provide various levels of progress guarantees. Erez Petrank, Madan Musuvathi, Bjarne Steensgaard |
PLDI | 3 |
| 2009 | A lock-free, concurrent, and incremental stack scanning for garbage collectorsabstractTwo major efficiency parameters for garbage collectors are the throughput overheads and the pause times that they introduce. Highly responsive systems need to use collectors with as short as possible pause times. Pause lengths have decreased significantly during the years, especially through the use of concurrent garbage collectors. For modern concurrent collectors, the longest pause is typically created by the need to atomically scan the runtime stack. All practical concurrent collectors that we are aware of must obtain a snapshot of the pointers on each thread’s runtime stack, in order to reclaim objects correctly. To further reduce the length of the collector pauses, incremental stack scans were proposed. However, previous such methods employ locks to stop the mutator from accessing a stack frame while it is being scanned. Thus, these methods introduce a potential long and unpredictable pauses for a mutator thread. In this work we propose the first concurrent, incremental, and lock-free stack scanning for garbage collectors, allowing high responsiveness and support for programs that employ fine-synchronization to avoid locks. Our solution can be employed by all concurrent collectors that we are aware of, it is lock-free, it imposes a negligible overhead on the program execution, and it supports the special in-stack references existing in languages like C#. Gabriel Kliot, Erez Petrank, Bjarne Steensgaard |
VEE | 3 |
| 2008 | Path specialization: reducing phased execution overheadsabstractAs garbage collected languages become widely used, the quest for reducing collection overheads becomes essential. In this paper, we propose a compiler optimization called path specialization that shrinks the cost of memory barriers for a wide variety of garbage collectors including concurrent, incremental, and real-time collectors. Path specialization provides a non-trivial decrease in write-barrier overheads and a drastic reduction of read-barrier overheads. It is effective when used with collectors that go through various phases each employing a different barrier behavior, and is most effective for collectors that have an idle phase, in which no barrier activity is required. We have implemented path specialization in the Bartok compiler and runtime for C# and tested it with state-of-the-art concurrent and real-time collectors, demonstrating its efficacy. Filip Pizlo, Erez Petrank, Bjarne Steensgaard |
ISMM | 3 |
| 2008 | A study of concurrent real-time garbage collectorsabstractConcurrent garbage collection is highly attractive for real-time systems, because offloading the collection effort from the executing threads allows faster response, allowing for extremely short deadlines at the microseconds level. Concurrent collectors also offer much better scalability over incremental collectors. The main problem with concurrent real-time collectors is their complexity. The first concurrent real-time garbage collector that can support fine synchronization, STOPLESS, has recently been presented by Pizlo et al. In this paper, we propose two additional (and different) algorithms for concurrent real-time garbage collection: CLOVER and CHICKEN. Both collectors obtain reduced complexity over the first collector STOPLESS, but need to trade a benefit for it. We study the algorithmic strengths and weaknesses of CLOVER and CHICKEN and compare them to STOPLESS. Finally, we have implemented all three collectors on the Bartok compiler and runtime for C# and we present measurements to compare their efficiency and responsiveness. Filip Pizlo, Erez Petrank, Bjarne Steensgaard |
PLDI | 3 |
| 2007 | Sealing OS processes to improve dependability and safetyabstractIn most modern operating systems, a process is a hardware-protected abstraction for isolating code and data. This protection, however, is selective. Many common mechanisms---dynamic code loading, run-time code generation, shared memory, and intrusive system APIs---make the barrier between processes very permeable. This paper argues that this traditional open process architecture exacerbates the dependability and security weaknesses of modern systems. Galen C. Hunt, Mark Aiken, Manuel Fähndrich, Chris Hawblitzel, Orion Hodson, James R. Larus, Steven Levi, Bjarne Steensgaard, David Tarditi, Ted Wobber |
EuroSys | 8 |
| 2007 | Stopless: a real-time garbage collector for multiprocessorsabstractWe present Stopless: a concurrent real-time garbage collector suitable for modern multiprocessors running parallel multithreaded applications. Creating a garbage-collected environment that supports real-time on modern platforms is notoriously hard,especially if real-time implies lock-freedom. Known real-time collectors either restrict the real-time guarantees to uniprocessors only, rely on special hardware, or just give up supporting atomic operations (which are crucial for lock-free software). Stopless is the first collector that provides real-time responsiveness while preserving lock-freedom, supporting atomic operations, controlling fragmentation by compaction, and supporting modern parallel platforms. Stopless is adequate for modern languages such as C# or Java. It was implemented on top of the Bartok compiler and runtime for C# and measurements demonstrate high responsiveness (a factor of a 100 better than previously published systems), virtually no pause times, good mutator utilization, and acceptable overheads. Filip Pizlo, Daniel Frampton, Erez Petrank, Bjarne Steensgaard |
ISMM | 4 |
| 2000 | Fast Escape Analysis and Stack Allocation for Object-Based Programs
David Gay, Bjarne Steensgaard |
CC | 2 |
| 2000 | Thread-Specific Heaps for Multi-Threaded ProgramsabstractGarbage collection for a multi-threaded program typically involves either stopping all threads while doing the collection or involves copious amounts of synchronization between threads. However, a lot of data is only ever visible to a single thread, and such data should ideally be collected without involving other threads. Bjarne Steensgaard |
ISMM | 1 |
| 2000 | Marmot: an optimizing compiler for JavaabstractThe Marmot system is a research platform for studying the implementation of high level programming languages. It currently comprises an optimizing native-code compiler, runtime system, and libraries for a large subset of Java. Marmot integrates well-known representation, optimization, code generation, and runtime techniques with a few Java-specific features to achieve competitive performance. This paper contains a description of the Marmot system design, along with highlights of our experience applying and adapting traditional implementation techniques to Java. A detailed performance evaluation assesses both Marmot's overall performance relative to other Java and C++ implementations, and the relative costs of various Java language features in Marmot-compiled code. Our experience with Marmot has demonstrated that well-known compilation techniques can produce very good performance for static Java applications – comparable or superior to other Java systems, and approaching that of C++ in some cases. Copyright © 2000 John Wiley & Sons, Ltd. Robert P. Fitzgerald, Todd B. Knoblock, Erik Ruf, Bjarne Steensgaard, David Tarditi |
Softw. Pract. Exp. | 4 |
| 1996 | Points-to Analysis by Type Inference of Programs with Structures and Unions
Bjarne Steensgaard |
CC | 1 |
| 1996 | Points-to Analysis in Almost Linear TimeabstractWe present an interprocedural flow-insensitive points-to analysis based on type inference methods with an almost linear time cost complexity To our knowledge, this is the asymptotically fastest non-trivial interprocedural points-to analysis algorithm yet described The algorithm is based on a non-standard type system. The type inferred for any variable represents a set of locations and includes a type which in turn represents a set of locations possibly pointed to by the variable. The type inferred for a function variable represents a set of functions It may point to and includes a type signature for these functions The results are equivalent to those of a flow-insensitive alias analysis (and control flow analysis) that assumes alias relations are reflexive and transitive.This work makes three contributions. The first is a type system for describing a universally valid storage shape graph for a program in linear space. The second is a constraint system which often leads to better results than the "obvious" constraint system for the given type system The third is an almost linear time algorithm for points-to analysis by solving a constraint system. Bjarne Steensgaard |
POPL | 1 |
| 1995 | Object and Native Code Thread Mobility Among Heterogeneous ComputersabstractWe present a technique for moving objects and threads among heterogeneous computers at the native code level.To enable mobility of threads running native code, we convert thread states among machine-dependent and machine-independent formats.We introduce the concept of bLts stops, which are machine-independent representations of program points as represented by program counter values, The concept of bus stops can be used also for other purposes, <~.g., to aid inspecting and debugging optimized code, garbage collection e~c.We also discuss techniques for thread mobility among processors executing differently optimized codes.We demonsti-ate the viabi lily of our ideas by providing a prototype implementation ot' object and thread mobility among hetero-gWCOUS computers,The prototype uses the Emerald distributed progt-amming language without modification; we have merely extended the Emerald runtime system and the code generator of the Emerald compiler.Our extensions allow object and thread mobility among VAX, Sun-3, HP9000/300, and Sun SPARC workstations.The excellent intra-node performance of the original homogeneous Emerald is retained: migrated threads run at native code speed bet'ore and after migration; the same speed as on homogeneous Emeralci and close to C code performance.Our implementation of mobility hm not been optimized:thread mobility and trans-architecture invocations take about 60% longer than in lhe homogeneous implementation.We believe this is the first implementation of full object and [hrcad mobility among heterogeneous computers with threads execu(ing native code. 1 Bjarne Steensgaard, Eric Jul |
SOSP | 1 |
| 1994 | Value Dependence Graphs: Representation without TaxationabstractThe value dependence graph (VDG) is a sparse dataflow-like representation that simplifies program analysis and transformation. It is a functional representation that represents control flow as data flow and makes explicit all machine quantities, such as stores and I/O channels. We are developing a compiler that builds a VDG representing a program, analyzes and transforms the VDG, then produces a control flow graph (CFG) [ASU86] from the optimized VDG. This framework simplifies transformations and improves upon several published results. For example, it enables more powerful code motion than [CLZ86, FOW87], eliminates as many redundancies as [AWZ88, RWZ88] (except for redundant loops), and provides important information to the code scheduler [BR91]. We exhibit a fast, one-pass method for elimination of partial redundancies that never performs redundant code motion [KFS92, DS93] and is simpler than the classical [MR79, Dha91] or SSA [RWZ88] methods. These results accrue from eliminating the CFG from the analysis/transformation phases and using demand dependences in preference to control dependences. Daniel Weise, Roger F. Crew, Michael D. Ernst, Bjarne Steensgaard |
POPL | 4 |