Demo Data from SIGIR 2026 / reviewers in the wild / expert
Robert Grimm 0001
dblp:g/RobertGrimm
· DBLP profile ↗
21ranked-venue papers
7as first author
0since 2021 · last 2016
0000-0002-8300-2153ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 14 · 2 first-authorSystems, architecture and hardware · 3 · 3 first-authorComputer networks · 3 · 1 first-authorSecurity and privacy · 1 · 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
9 papers |
Compilers and program optimization · 29% Program analysis · 22% Programming languages and type systems · 15% | |
| Computer networks
2 papers |
Content delivery and video streaming · 47% Edge and fog computing · 41% Internet of things and sensor networks · 12% | |
| Computer architecture, parallel and distributed computing, and storage systems
4 papers |
Storage systems · 72% Distributed systems · 18% Cloud and datacenter computing · 5% | |
| Network and information security
2 papers |
Authentication and access control · 61% Systems and software security · 39% | |
| Human-computer interaction and pervasive computing
1 paper |
Ubiquitous computing and smart environments · 100% |
Topics — the 20 heaviest of 31, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization
parsing |
0.2 | 2 | 2012 | SuperC: parsing all of C by taming the preprocessor · PLDI 2012 Better extensibility through modular syntax · PLDI 2006 |
Program analysis
source code analysis |
0.1 | 1 | 2012 | SuperC: parsing all of C by taming the preprocessor · PLDI 2012 |
Program analysis
dynamic analysis |
0.1 | 1 | 2010 | Jinn: synthesizing dynamic bug detectors for foreign language interfaces · PLDI 2010 |
Storage systems
distributed storage |
0.1 | 1 | 2009 | PADS: A Policy Architecture for Distributed Storage Systems · NSDI 2009 |
Content delivery and video streaming
peer-to-peer content distribution |
0.1 | 1 | 2007 | Ensuring Content Integrity for Untrusted Peer-to-Peer Content Distribution Networks · NSDI 2007 |
Programming languages and type systems › interoperability
language interoperability |
0.1 | 1 | 2007 | Jeannie: granting java native interface developers their wishes · OOPSLA 2007 |
Edge and fog computing › edge computing systems
edge-assisted computing |
0.1 | 1 | 2006 | Na Kika: Secure Service Execution and Composition in an Open Edge-Side Computing Network · NSDI 2006 |
Compilers and program optimization › parsing
parser generation |
0.1 | 1 | 2006 | Better extensibility through modular syntax · PLDI 2006 |
Operating systems
extensible operating systems |
0.0 | 2 | 2001 | Separating access control policy, enforcement, and functionality in extensible systems · ACM Trans. Comput. Syst. 2001 Access Control for the SPIN Extensible Operating System · S&P 1997 |
Authentication and access control
access control |
0.0 | 1 | 2001 | Separating access control policy, enforcement, and functionality in extensible systems · ACM Trans. Comput. Syst. 2001 |
Systems and software security › operating system security
extensible security architecture |
0.0 | 1 | 2001 | Separating access control policy, enforcement, and functionality in extensible systems · ACM Trans. Comput. Syst. 2001 |
Operating systems › system security › operating system security › protection mechanism
protection domains |
0.0 | 1 | 2001 | Separating access control policy, enforcement, and functionality in extensible systems · ACM Trans. Comput. Syst. 2001 |
Programming languages and type systems
language design |
0.0 | 1 | 2007 | Jeannie: granting java native interface developers their wishes · OOPSLA 2007 |
Internet of things and sensor networks
service composition |
0.0 | 1 | 2006 | Na Kika: Secure Service Execution and Composition in an Open Edge-Side Computing Network · NSDI 2006 |
Authentication and access control › access control models
domain and type enforcement |
0.0 | 1 | 1997 | Access Control for the SPIN Extensible Operating System · S&P 1997 |
Operating systems › system security › operating system security
access control |
0.0 | 1 | 1997 | Access Control for the SPIN Extensible Operating System · S&P 1997 |
Operating systems › resource management
application-level resource management |
0.0 | 1 | 1997 | Application Performance and Flexibility on Exokernel Systems · SOSP 1997 |
Operating systems › extensible operating systems
exokernel |
0.0 | 1 | 1997 | Application Performance and Flexibility on Exokernel Systems · SOSP 1997 |
Programming languages and type systems › type systems
type soundness |
0.0 | 1 | 2001 | Separating access control policy, enforcement, and functionality in extensible systems · ACM Trans. Comput. Syst. 2001 |
Cloud and datacenter computing › cluster resource management and scheduling
cluster resource management |
0.0 | 1 | 1999 | Design and implementation of a distributed virtual machine for networked computers · SOSP 1999 |
Methods — techniques the papers use, named apart from their topics
table-driven parsing · 0.1Fork-Merge LR parsing · 0.1specification inference · 0.1dynamic analysis · 0.1portable debugging · 0.1migration service · 0.1discovery service · 0.1static error detection · 0.1secure computation · 0.1packrat parsing · 0.1module system · 0.1memoization · 0.1access control enforcement · 0.1auditing · 0.0java virtual machine · 0.0distributed service architecture · 0.0domain and type enforcement · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | River: an intermediate language for stream processingabstractThis paper presents both a calculus for stream processing, named Brooklet, and its realization as an intermediate language, named River. Because River is based on Brooklet, it has a formal semantics that enables reasoning about the correctness of source translations and optimizations. River builds on Brooklet by addressing the real-world details that the calculus elides. We evaluated our system by implementing front-ends for three streaming languages, and three important optimizations, and a back-end for the System S distributed streaming runtime. Overall, we significantly lower the barrier to entry for new stream-processing languages and thus grow the ecosystem of this crucial style of programming. Copyright © 2015 John Wiley & Sons, Ltd. Robert Soulé, Martin Hirzel, Bugra Gedik, Robert Grimm 0001 |
Softw. Pract. Exp. | 4 |
| 2015 | Debugging mixed-environment programs with BlinkabstractProgrammers build large-scale systems with multiple languages to leverage legacy code and languages best suited to their problems. For instance, the same program may use Java for ease of programming and C to interface with the operating system. These programs pose significant debugging challenges, because programmers need to understand and control code across languages, which often execute in different environments. Unfortunately, traditional multilingual debuggers require a single execution environment. This paper presents a novel composition approach to building portable mixed-environment debuggers, in which an intermediate agent interposes on language transitions, controlling and reusing single-environment debuggers. We implement debugger composition in Blink, a debugger for Java, C, and the Jeannie programming language. We show that Blink is (i) simple: it requires modest amounts of new code; (ii) portable: it supports multiple Java virtual machines, C compilers, operating systems, and component debuggers; and (iii) powerful: composition eases debugging, while supporting new mixed-language expression evaluation and Java native interface bug diagnostics. To demonstrate the generality of interposition, we build prototypes and demonstrate debugger language transitions with C for five of six other languages (Caml, Common Lisp, C#, Perl 5, Python, and Ruby) without modifications to their debuggers. Using real-world case studies, we show that diagnosing language interface errors require prior single-environment debuggers to restart execution multiple times, whereas Blink directly diagnoses them with one execution. Copyright © 2014 John Wiley & Sons, Ltd. Byeongcheol Lee, Martin Hirzel, Robert Grimm 0001, Kathryn S. McKinley |
Softw. Pract. Exp. | 3 |
| 2012 | Marco: Safe, Expressive Macros for Any Language
Byeongcheol Lee, Robert Grimm 0001, Martin Hirzel, Kathryn S. McKinley |
ECOOP | 2 |
| 2012 | SuperC: parsing all of C by taming the preprocessorabstractC tools, such as source browsers, bug finders, and automated refactorings, need to process two languages: C itself and the preprocessor. The latter improves expressivity through file includes, macros, and static conditionals. But it operates only on tokens, making it hard to even parse both languages. This paper presents a complete, performant solution to this problem. First, a configuration-preserving preprocessor resolves includes and macros yet leaves static conditionals intact, thus preserving a program's variability. To ensure completeness, we analyze all interactions between preprocessor features and identify techniques for correctly handling them. Second, a configuration-preserving parser generates a well-formed AST with static choice nodes for conditionals. It forks new subparsers when encountering static conditionals and merges them again after the conditionals. To ensure performance, we present a simple algorithm for table-driven Fork-Merge LR parsing and four novel optimizations. We demonstrate the effectiveness of our approach on the x86 Linux kernel. Paul Gazzillo, Robert Grimm 0001 |
PLDI | 2 |
| 2010 | A Universal Calculus for Stream Processing Languages
Robert Soulé, Martin Hirzel, Robert Grimm 0001, Bugra Gedik, Henrique Andrade, Vibhore Kumar, Kun-Lung Wu |
ESOP | 3 |
| 2010 | Jinn: synthesizing dynamic bug detectors for foreign language interfacesabstractProgramming language specifications mandate static and dynamic analyses to preclude syntactic and semantic errors. Although individual languages are usually well-specified, composing languages is not, and this poor specification is a source of many errors in multilingual programs. For example, virtually all Java programs compose Java and C using the Java Native Interface (JNI). Since JNI is informally specified, developers have difficulty using it correctly, and current Java compilers and virtual machines (VMs) inconsistently check only a subset of JNI constraints. Byeongcheol Lee, Ben Wiedermann, Martin Hirzel, Robert Grimm 0001, Kathryn S. McKinley |
PLDI | 4 |
| 2009 | PADS: A Policy Architecture for Distributed Storage Systems
Nalini Moti Belaramani, Jiandan Zheng, Amol Nayate, Robert Soulé, Michael Dahlin, Robert Grimm 0001 |
NSDI | 6 |
| 2009 | Debug all your code: portable mixed-environment debuggingabstractProgrammers build large-scale systems with multiple languages to reuse legacy code and leverage languages best suited to their problems. For instance, the same program may use Java for ease-of-programming and C to interface with the operating system. These programs pose significant debugging challenges, because programmers need to understand and control code across languages, which may execute in different environments. Unfortunately, traditional multilingual debuggers require a single execution environment. Byeongcheol Lee, Martin Hirzel, Robert Grimm 0001, Kathryn S. McKinley |
OOPSLA | 3 |
| 2007 | Ensuring Content Integrity for Untrusted Peer-to-Peer Content Distribution Networks
Nikolaos Michalakis, Robert Soulé, Robert Grimm 0001 |
NSDI | 3 |
| 2007 | Jeannie: granting java native interface developers their wishesabstractHigher-level languages interface with lower-level languages such as C to access platform functionality, reuse legacy libraries, or improve performance. This raises the issue of how to best integrate different languages while also reconciling productivity, safety, portability, and efficiency. This paper presents Jeannie, a new language design for integrating Java with C. In Jeannie, both Javaand C code are nested within each other in the same file and compile down to JNI, the Java platform's standard foreign function interface. By combining the two languages' syntax and semantics, Jeannie eliminates verbose boiler-plate code, enables static error detection across the language boundary, and simplifies dynamic resource management. We describe the Jeannie language and its compiler, while also highlighting lessons from composing two mature programming languages. Martin Hirzel, Robert Grimm 0001 |
OOPSLA | 2 |
| 2006 | Linguistic support for modern operating systems workshop on programming languages and operating systems 2006 (PLOS 2006)abstractThis report gives an overview over the Workshop on Programming Languages and Operating Systems (PLOS 2006), which was colocated with ASPLOS XII. It introduces the motivation for the work-shop and gives a summary of the workshop contributions. Christian W. Probst, Andreas Gal, Robert Grimm 0001, Olaf Spinczyk |
PLOS | 3 |
| 2006 | Na Kika: Secure Service Execution and Composition in an Open Edge-Side Computing Network
Robert Grimm 0001, Guy Lichtman, Nikolaos Michalakis, Amos Elliston, Adam Kravetz, Sajid Raza |
NSDI | 1 |
| 2006 | Better extensibility through modular syntaxabstractWe explore how to make the benefits of modularity available for syntactic specifications and present Rats!, a parser generator for Java that supports easily extensible syntax. Our parser generator builds on recent research on parsing expression grammars (PEGs), which, by being closed under composition, prioritizing choices, supporting unlimited lookahead, and integrating lexing and parsing, offer an attractive alternative to context-free grammars. PEGs are implemented by so-called packrat parsers, which are recursive descent parsers that memoize all intermediate results (hence their name). Memoization ensures linear-time performance in the presence of unlimited lookahead, but also results in an essentially lazy, functional parsing technique. In this paper, we explore how to leverage PEGs and packrat parsers as the foundation for extensible syntax. In particular, we show how make packrat parsing more widely applicable by implementing this lazy, functional technique in a strict, imperative language, while also generating better performing parsers through aggressive optimizations. Next, we develop a module system for organizing, modifying, and composing large-scale syntactic specifications. Finally, we describe a new technique for managing (global) parsing state in functional parsers. Our experimental evaluation demonstrates that the resulting parser generator succeeds at providing extensible syntax. In particular, Rats! enables other grammar writers to realize real-world language extensions in little time and code, and it generates parsers that consistently out-perform parsers created by two GLR parser generators. Robert Grimm 0001 |
PLDI | 1 |
| 2005 | Patch (1) Considered Harmful
Marc E. Fiuczynski, Robert Grimm 0001, Yvonne Coady |
HotOS | 2 |
| 2004 | System support for pervasive applicationsabstractPervasive computing provides an attractive vision for the future of computing. Computational power will be available everywhere. Mobile and stationary devices will dynamically connect and coordinate to seamlessly help people in accomplishing their tasks. For this vision to become a reality, developers must build applications that constantly adapt to a highly dynamic computing environment. To make the developers' task feasible, we present a system architecture for pervasive computing, called one.world. Our architecture provides an integrated and comprehensive framework for building pervasive applications. It includes services, such as discovery and migration, that help to build applications and directly simplify the task of coping with constant change. We describe our architecture and its programming model and reflect on our own and others' experiences with using it. Robert Grimm 0001, Janet Davis, Eric Lemar, Adam MacBeth, Steven Swanson, Thomas E. Anderson, Brian N. Bershad, Gaetano Borriello, Steve D. Gribble, David Wetherall |
ACM Trans. Comput. Syst. | 1 |
| 2001 | Systems Directions for Pervasive ComputingabstractPervasive computing, with its focus on users and their tasks rather than on computing devices and technology, provides an attractive vision for the future of computing. But, while hardware and networking infrastructure to realize this vision are becoming a reality, precious few applications run in this infrastructure. We believe that this lack of applications stems largely from the fact that it is currently too hard to design, build, and deploy applications in the pervasive computing space. In this paper, we argue that existing approaches to distributed computing are flawed along three axes when applied to pervasive computing; we sketch out alternatives that are better suited for this space. First, application data and functionality need to be kept separate, so that they can evolve gracefully, in a global computing infrastructure. Second, applications need to be able to acquire any resource they need at any time, so that they can continuously provide their services in a highly dynamic environment. Third, pervasive computing requires a common system platform, allowing applications to be run across the range of devices and to be automatically distributed and installed. Robert Grimm 0001, Janet Davis, Ben Hendrickson, Eric Lemar, Adam MacBeth, Steven Swanson, Thomas E. Anderson, Brian N. Bershad, Gaetano Borriello, Steve D. Gribble, David Wetherall |
HotOS | 1 |
| 2001 | Separating access control policy, enforcement, and functionality in extensible systemsabstractExtensible systems, such as Java or the SPIN extensible operating system, allow for units of code, or extensions, to be added to a running system in almost arbitrary fashion. Extensions closely interact through low-latency but type-safe interfaces to form a tightly integrated system. As extensions can come from arbitrary sources, not all of whom can be trusted to conform to an organization's security policy, such structuring raises the question of how security constraints are enforced in an extensible system. In this paper, we present an access control mechanism for extensible systems to address this problem. Our access control mechanism decomposes access control into a policy-neutral enforcement manager and a security policy manager, and it is transparent to extensions in the absence of security violations. It structures the system into protection domains, enforces protection domains through access control checks, and performs auditing of system operations. The access control mechanism works by inspecting extensions for their types and operations to determine which abstractions require protection and by redirecting procedure or method invocations to inject access control operations into the system. We describe the design of this access control mechanism, present an implementation within the SPIN extensible operating systems, and provide a qualitative as well as quantitative evaluation of the mechanism. Robert Grimm 0001, Brian N. Bershad |
ACM Trans. Comput. Syst. | 1 |
| 1999 | Design and implementation of a distributed virtual machine for networked computersabstractThis paper describes the motivation, architecture and performance of a distributed virtual machine (DVM) for networked computers. DVMs rely on a distributed service architecture to meet the manageability, security and uniformity requirements of large, heterogeneous clusters of networked computers. In a DVM, system services, such as verification, security enforcement, compilation and optimization, are factored out of clients and located on powerful network servers. This partitioning of system functionality reduces resource requirements on network clients, improves site security through physical isolation and increases the manageability of a large and heterogeneous network without sacrificing performance. Our DVM implements the Java virtual machine, runs on x86 and DEC Alpha processors and supports existing Java-enabled clients. Emin Gün Sirer, Robert Grimm 0001, Arthur J. Gregory, Brian N. Bershad |
SOSP | 2 |
| 1997 | Application Performance and Flexibility on Exokernel SystemsabstractThe exokernel operating system architecture safely gives untrusted software efficient control over hardware and software resources by separating management from protection. This paper describes an exokernel system that allows specialized applications to achieve high performance without sacrificing the performance of unmod-ified UNIX programs. It evaluates the exokernel architecture by measuring end-to-end application performance on Xok, an exo-kernel for Intel x86-based computers, and by comparing Xok’s performance to the performance of two widely-used 4.4BSD UNIX systems (FreeBSD and OpenBSD). The results show that common unmodified UNIX applications can enjoy the benefits of exoker-nels: applications either perform comparably on Xok/ExOS and the BSD UNIXes, or perform significantly better. In addition, the results show that customized applications can benefit substantially from control over their resources (e.g., a factor of eight for a Web server). This paper also describes insights about the exokernel ap-proach gained through building three different exokernel systems, and presents novel approaches to resource multiplexing. 1 M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Héctor M. Briceño, Russell Hunt, David Mazières, Thomas Pinckney, Robert Grimm 0001, John Jannotti, Kenneth Mackenzie |
SOSP | 8 |
| 1997 | Access Control for the SPIN Extensible Operating SystemabstractSummary form only given. In the SPIN operating system (B.N. Bershad et al., 1995; Przemyslaw Pardyak and B.N. Bershad, 1996) built at the University of Washington, we are experimenting with a version of domain and type enforcement (DTE) (L. Badger et al., 1995) that has been extended to address the security concerns of extensible systems. The SPIN operating system defines an extension infrastructure, together with a core set of extensible services, that allows for the fine grained and safe composition of extensions within the operating system kernel. Extensions are written in Modula-3, a type-safe programming language, and execute within the same address space. They interact by calling other parts of the system and by extending existing interfaces to provide new services. A central event dispatcher supports both mechanisms: to call on a service, an extension raises an event, and, to extend an existing interface, an extension registers a handler for that event. The invocation mechanism for events is simply a procedure call, and no context switches are required for the interaction between subsystems (since all extensions are co-located in the same address space). Robert Grimm 0001, Brian N. Bershad |
S&P | 1 |
| 1996 | Atomic Recovery Units: Failure Atomicity for Logical DisksabstractAtomic recovery units (ARUs) are a mechanism that allows several logical disk operations to be executed as a single atomic unit with respect to failures. For example, ARUs can be used during file creation to update several pieces of file meta-data atomically. ARUs simplify systems, as they isolate issues of atomicity within the logical disk system, ARUs are designed as part of the Logical Disk (LD), which provides an interface to disk storage that separates file and disk management by using logical block numbers and block lists. This paper discusses the semantics of concurrent ARUs, as well as the concurrency control they require. A prototype implementation in a log-structured logical disk system is presented and evaluated. The performance evaluation shows that the run-time overhead to support concurrent ARUs is negligible for Read and Write operations, and small but pronounced for file creation (4.0%-7.2%) and deletion (17.9%-20.5%) which mainly manipulate meta-data. The low overhead (when averaged over file creation, writing, reading, and deletion) for concurrent ARUs shows that issues of atomicity can be successfully isolated within the disk system. Robert Grimm 0001, Wilson C. Hsieh, Wiebren de Jonge, M. Frans Kaashoek |
ICDCS | 1 |