VLDB 2026 Research / reviewers in the wild / expert
Martin Bravenboer
dblp:b/MartinBravenboer
· DBLP profile ↗
16ranked-venue papers
12as first author
0since 2021 · last 2015
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 13 · 10 first-authorTheory of computation · 2 · 2 first-authorDatabases, data management, data science and information retrieval · 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
6 papers |
Program analysis · 59% Programming languages and type systems · 27% Compilers and program optimization · 14% | |
| Databases, data mining, and information retrieval
1 paper |
Distributed and cloud data management · 77% Data models and query languages · 23% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 17 heaviest of 20, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
pointer analysis |
0.3 | 3 | 2011 | Pick your contexts well: understanding object-sensitivity · POPL 2011 Strictly declarative specification of sophisticated points-to analyses · OOPSLA 2009 Exception analysis and points-to analysis: better together · ISSTA 2009 |
Program analysis
static analysis |
0.2 | 2 | 2009 | Strictly declarative specification of sophisticated points-to analyses · OOPSLA 2009 Exception analysis and points-to analysis: better together · ISSTA 2009 |
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis |
0.1 | 1 | 2011 | Pick your contexts well: understanding object-sensitivity · POPL 2011 |
Program analysis › static analysis › pointer analysis
object sensitivity |
0.1 | 1 | 2011 | Pick your contexts well: understanding object-sensitivity · POPL 2011 |
Distributed and cloud data management
distributed query processing |
0.1 | 1 | 2010 | SecureBlox: customizable secure distributed data processing · SIGMOD Conference 2010 |
Program analysis › static analysis
datalog-based analysis |
0.1 | 1 | 2009 | Strictly declarative specification of sophisticated points-to analyses · OOPSLA 2009 |
Programming languages and type systems
language design |
0.1 | 2 | 2008 | Declarative, formal, and extensible syntax definition for aspectJ · OOPSLA 2006 Mixing source and bytecode: a case for compilation by normalization · OOPSLA 2008 |
Programming languages and type systems › language design
language extension |
0.1 | 1 | 2008 | Mixing source and bytecode: a case for compilation by normalization · OOPSLA 2008 |
Compilers and program optimization › parsing
generalized LR parsing |
0.1 | 1 | 2006 | Declarative, formal, and extensible syntax definition for aspectJ · OOPSLA 2006 |
Compilers and program optimization
parsing |
0.1 | 1 | 2006 | Declarative, formal, and extensible syntax definition for aspectJ · OOPSLA 2006 |
Programming languages and type systems › syntax
syntax definition |
0.1 | 1 | 2006 | Declarative, formal, and extensible syntax definition for aspectJ · OOPSLA 2006 |
Programming languages and type systems › syntax
concrete syntax |
0.0 | 1 | 2004 | Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions · OOPSLA 2004 |
Programming languages and type systems
domain-specific languages |
0.0 | 1 | 2004 | Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions · OOPSLA 2004 |
Programming languages and type systems › metaprogramming
language embedding |
0.0 | 1 | 2004 | Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions · OOPSLA 2004 |
Data models and query languages
datalog |
0.0 | 1 | 2010 | SecureBlox: customizable secure distributed data processing · SIGMOD Conference 2010 |
Program analysis › flow analysis
exception analysis |
0.0 | 1 | 2009 | Exception analysis and points-to analysis: better together · ISSTA 2009 |
Programming languages and type systems › object-oriented programming
traits |
0.0 | 1 | 2008 | Mixing source and bytecode: a case for compilation by normalization · OOPSLA 2008 |
Methods — techniques the papers use, named apart from their topics
static metaprogramming · 0.2compile-time code generation · 0.2declarative specification · 0.1datalog · 0.1context-sensitive analysis · 0.1normalization · 0.1core language translation · 0.1program transformation · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2015 | More Sound Static Handling of Java Reflection
Yannis Smaragdakis, George Balatsouras, George Kastrinis, Martin Bravenboer |
APLAS | 4 |
| 2011 | Pick your contexts well: understanding object-sensitivityabstractObject-sensitivity has emerged as an excellent context abstraction for points-to analysis in object-oriented languages. Despite its practical success, however, object-sensitivity is poorly understood. For instance, for a context depth of 2 or higher, past scalable implementations deviate significantly from the original definition of an object-sensitive analysis. The reason is that the analysis has many degrees of freedom, relating to which context elements are picked at every method call and object creation. We offer a clean model for the analysis design space, and discuss a formal and informal understanding of object-sensitivity and of how to create good object-sensitive analyses. The results are surprising in their extent. We find that past implementations have made a sub-optimal choice of contexts, to the severe detriment of precision and performance. We define a "full-object-sensitive" analysis that results in significantly higher precision, and often performance, for the exact same context depth. We also introduce "type-sensitivity" as an explicit approximation of object-sensitivity that preserves high context quality at substantially reduced cost. A type-sensitive points-to analysis makes an unconventional use of types as context: the context types are not dynamic types of objects involved in the analysis, but instead upper bounds on the dynamic types of their allocator objects. Our results expose the influence of context choice on the quality of points-to analysis and demonstrate type-sensitivity to be an idea with major impact: It decisively advances the state-of-the-art with a spectrum of analyses that simultaneously enjoy speed (several times faster than an analogous object-sensitive analysis), scalability (comparable to analyses with much less context-sensitivity), and precision (comparable to the best object-sensitive analysis with the same context depth). Yannis Smaragdakis, Martin Bravenboer, Ondrej Lhoták |
POPL | 2 |
| 2010 | SecureBlox: customizable secure distributed data processingabstractWe present SecureBlox, a declarative system that unifies a distributed query processor with a security policy framework. SecureBlox decouples security concerns from system specification, allowing easy reconfiguration of a system's security properties to suit a given execution environment. Our implementation of SecureBlox is a series of extensions to LogicBlox, an emerging commercial Datalog-based platform for enterprise software systems. SecureBlox enhances LogicBlox to enable distribution and static meta-programmability, and makes novel use of existing LogicBlox features such as integrity constraints. SecureBlox allows meta-programmability via BloxGenerics - a language extension for compile-time code generation based on the security requirements and trust policies of the deployed environment. We present and evaluate detailed use-cases in which SecureBlox enables diverse applications, including an authenticated declarative routing protocol with encrypted advertisements and an authenticated and encrypted parallel hash join operation. Our results demonstrate SecureBlox's abilities to specify and implement a wide range of different security constructs for distributed systems as well as to enable tradeoffs between performance and security. William R. Marczak, Shan Shan Huang, Martin Bravenboer, Micah Sherr, Boon Thau Loo, Molham Aref |
SIGMOD Conference | 3 |
| 2010 | Preventing injection attacks with syntax embeddings
Martin Bravenboer, Eelco Dolstra, Eelco Visser |
Sci. Comput. Program. | 1 |
| 2009 | Exception analysis and points-to analysis: better togetherabstractException analysis and points-to analysis are typically done in complete separation. Past algorithms for precise exception analysis (e.g., pairing throw clauses with catch statements) use pre-computed points-to information. Past points-to analyses either unsoundly ignore exceptions, or conservatively compute a crude approximation of exception throwing (e.g., considering an exception throw as an assignment to a global variable, accessible from any catch clause). We show that this separation results in significant slowdowns or vast imprecision. The two kinds of analyses are interdependent: neither can be performed accurately without the other. The interdependency leads us to propose a joint handling for performance and precision. We show that our exception analysis is expressible highly elegantly in a declarative form, and can apply to points-to analyses of varying precision. In fact, our specification of exception analysis is "fully precise", as it models closely the Java exception handling semantics. The necessary approximation is provided only through whichever abstractions are used for contexts and objects in the base points-to analysis. Our combined approach achieves similar precision relative to exceptions (exception-catch links) as the best past precise exception analysis, with a runtime of seconds instead of tens of minutes. At the same time, our analysis achieves much higher precision of points-to information (an average of half as many values for each reachable variable for most of the DaCapo benchmarks) than points-to analyses that treat exceptions conservatively, all at a fraction of the execution time. Martin Bravenboer, Yannis Smaragdakis |
ISSTA | 1 |
| 2009 | Strictly declarative specification of sophisticated points-to analysesabstractWe present the DOOP framework for points-to analysis of Java programs. DOOP builds on the idea of specifying pointer analysis algorithms declaratively, using Datalog: a logic-based language for defining (recursive) relations. We carry the declarative approach further than past work by describing the full end-to-end analysis in Datalog and optimizing aggressively using a novel technique specifically targeting highly recursive Datalog programs. Martin Bravenboer, Yannis Smaragdakis |
OOPSLA | 1 |
| 2008 | Mixing source and bytecode: a case for compilation by normalizationabstractLanguage extensions increase programmer productivity by providing concise, often domain-specific syntax, and support for static verification of correctness, security, and style constraints. Language extensions can often be realized through translation to the base language, supported by preprocessors and extensible compilers. However, various kinds of extensions require further adaptation of a base compiler's internal stages and components, for example to support separate compilation or to make use of low-level primitives of the platform (e.g., jump instructions or unbalanced synchronization). To allow for a more loosely coupled approach, we propose an open compiler model based on normalization steps from a high-level language to a subset of it, the core language. We developed such a compiler for a mixed Java and (core) bytecode language, and evaluate its effectiveness for composition mechanisms such as traits, as well as statement-level and expression-level language extensions. Lennart C. L. Kats, Martin Bravenboer, Eelco Visser |
OOPSLA | 2 |
| 2008 | Parse Table Composition
Martin Bravenboer, Eelco Visser |
SLE | 1 |
| 2008 | Stratego/XT 0.17. A language and toolset for program transformation
Martin Bravenboer, Karl Trygve Kalleberg, Rob Vermaas, Eelco Visser |
Sci. Comput. Program. | 1 |
| 2007 | Preventing injection attacks with syntax embeddingsabstractSoftware written in one language often needs to construct sentences in another language, such as SQL queries, XML output, or shell command invocations. This is almost always done using unhygienic string manipulation, the concatenation of constants and client-supplied strings. A client can then supply specially crafted input that causes the constructed sentence to be interpreted in an unintended way, leading to an injection attack. We describe a more natural style of programming that yields code that is impervious to injections by construction. Our approach embeds the grammars of the guest languages (e.g., SQL) into that of the host language (e.g., Java) and automatically generates code that maps the embedded language to constructs in the host language that reconstruct the embedded sentences, adding escaping functions where appropriate. This approach is generic, meaning that it can be applied with relative ease to any combination of host and guest languages. Martin Bravenboer, Eelco Dolstra, Eelco Visser |
GPCE | 1 |
| 2006 | Declarative, formal, and extensible syntax definition for aspectJabstractA Case for Scannerless Generalized-LR Parsing Aspect-Oriented Programming (AOP) is attracting attention from both research and industry, as illustrated by the ever-growing popularity of AspectJ, the de facto standard AOP extension of Java. From a compiler construction perspective, AspectJ is interesting as it is a typical example of a compositional language, i.e. a language composed of a number of separate languages with different syntactical styles: in addition to plain Java, AspectJ includes a language for defining pointcuts and one for defining advices. Language composition represents a non-trivial challenge for conventional parsing techniques. First, combining several languages with different lexical syntax leads to considerable complexity in the lexical states to be processed. Second, as new language features for AOP are being explored, many research proposals are concerned with further extending the AspectJ language, resulting in a need for an extensible syntax definition. This paper shows how scannerless parsing elegantly addresses the issues encountered by conventional techniques when parsing AspectJ. We present the design of a modular, extensible, and formal definition of the lexical and context-free aspects of the AspectJ syntax in the Syntax Definition Formalism SDF, which is implemented by a scannerless, generalized-LR parser (SGLR). We introduce grammar mixins as a novel application of SDF’s modularity features, which allows the declarative definition of different keyword policies and combination of extensions. We illustrate the modular extensibility of our definition with syntax extensions taken from current research on aspect languages. Finally, benchmarks show the reasonable performance of scannerless generalized-LR parsing for this grammar. Martin Bravenboer, Éric Tanter, Eelco Visser |
OOPSLA | 1 |
| 2006 | Stratego/XT 0.16: components for transformation systemsabstractStratego/XT is a language and toolset for program transformation. The Stratego language provides rewrite rules for expressing basic transformations, programmable rewriting strategies for controlling the application of rules, concrete syntax for expressing the patterns of rules in the syntax of the object language, and dynamic rewrite rules for expressing context-sensitive transformations, thus supporting the development of transformation components at a high level of abstraction. The XT toolset offers a collection of flexible, reusable transformation components, as well as declarative languages for deriving new components. Complete program transformation systems are composed from these components. In this paper we give an overview of Stratego/XT 0.16. Martin Bravenboer, Karl Trygve Kalleberg, Rob Vermaas, Eelco Visser |
PEPM | 1 |
| 2006 | Program Transformation with Scoped Dynamic Rewrite Rules
Martin Bravenboer, Arthur van Dam, Karina Olmos, Eelco Visser |
Fundam. Informaticae | 1 |
| 2005 | Generalized Type-Based Disambiguation of Meta Programs with Concrete Object Syntax
Martin Bravenboer, Rob Vermaas, Jurgen J. Vinju, Eelco Visser |
GPCE | 1 |
| 2004 | Concrete syntax for objects: domain-specific language embedding and assimilation without restrictionsabstractApplication programmer's interfaces give access to domain knowledge encapsulated in class libraries without providing the appropriate notation for expressing domain composition. Since object-oriented languages are designed for extensibility and reuse, the language constructs are often sufficient for expressing domain abstractions at the semantic level. However, they do not provide the right abstractions at the syntactic level. In this paper we describe MetaBorg, a method for providing concrete syntax for domain abstractions to application programmers. The method consists of embedding domain-specific languages in a general purpose host language and assimilating the embedded domain code into the surrounding host code. Instead of extending the implementation of the host language, the assimilation phase implements domain abstractions in terms of existing APIs leaving the host language undisturbed. Indeed, MetaBorg can be considered a method for promoting APIs to the language level. The method is supported by proven and available technology, i.e. the syntax definition formalism SDF and the program transformation language and toolset Stratego/XT. We illustrate the method with applications in three domains: code generation, XML generation, and user-interface construction. Martin Bravenboer, Eelco Visser |
OOPSLA | 1 |
| 2002 | Rewriting Strategies for Instruction Selection
Martin Bravenboer, Eelco Visser |
RTA | 1 |