Demo Data from VLDB 2026 / reviewers in the wild / expert
Alessandro Warth
dblp:39/3392
· DBLP profile ↗
7ranked-venue papers
5as first author
0since 2021 · last 2017
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 5 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
2 papers |
Programming languages and type systems · 97% Compilers and program optimization · 3% |
Topics — the 7 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
type systems |
0.2 | 2 | 2009 | Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009 Statically scoped object adaptation with expanders · OOPSLA 2006 |
Programming languages and type systems › method dispatch
dynamic dispatch |
0.1 | 1 | 2009 | Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009 |
Programming languages and type systems › type checking
modular typechecking |
0.1 | 1 | 2009 | Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009 |
Programming languages and type systems › method dispatch
predicate dispatch |
0.1 | 1 | 2009 | Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009 |
Programming languages and type systems
object-oriented programming |
0.1 | 2 | 2009 | Statically scoped object adaptation with expanders · OOPSLA 2006 Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009 |
Programming languages and type systems › type systems
type soundness |
0.1 | 1 | 2006 | Statically scoped object adaptation with expanders · OOPSLA 2006 |
Programming languages and type systems › object-oriented programming
java |
0.0 | 1 | 2009 | Expressive and modular predicate dispatch for Java · ACM Trans. Program. Lang. Syst. 2009 |
Methods — techniques the papers use, named apart from their topics
featherweight java · 0.2decision procedures · 0.1polyglot · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Incremental packrat parsingabstractPackrat parsing is a popular technique for implementing top-down, unlimited-lookahead parsers that operate in guaranteed linear time. In this paper, we describe a method for turning a standard packrat parser into an incremental parser through a simple modification to its memoization strategy. By 'incremental', we mean that the parser can perform syntax analysis without completely reparsing the input after each edit operation. This makes packrat parsing suitable for interactive use in code editors and IDEs - even with large inputs. Our experiments show that with our technique, an incremental packrat parser for JavaScript can outperform even a hand-optimized, non-incremental parser. Patrick Dubroy, Alessandro Warth |
SLE | 2 |
| 2016 | Modular semantic actionsabstractParser generators give programmers a convenient and declarative way to write parsers and other language-processing applications, but their mechanisms for extension and code reuse often leave something to be desired. We introduce Ohm, a parser generator in which both grammars and their interpretations can be extended in safe and modular ways. Unlike many similar tools, Ohm completely separates grammars and semantic actions, avoiding the problems that arise when these two concerns are mixed. This paper describes the particular way in which Ohm achieves this separation, and discusses the resulting benefits to modularity and extensibility. Alessandro Warth, Patrick Dubroy, Tony Garnock-Jones |
DLS | 1 |
| 2011 | Worlds: Controlling the Scope of Side Effects
Alessandro Warth, Yoshiki Ohshima, Ted Kaehler, Alan C. Kay |
ECOOP | 1 |
| 2009 | Expressive and modular predicate dispatch for JavaabstractPredicate dispatch is an object-oriented (OO) language mechanism for determining the method implementation to be invoked upon a message send. With predicate dispatch, each method implementation includes a predicate guard specifying the conditions under which the method should be invoked, and logical implication of predicates determines the method overriding relation. Predicate dispatch naturally unifies and generalizes several common forms of dynamic dispatch, including traditional OO dispatch, multimethod dispatch, and functional-style pattern matching. Unfortunately, prior languages supporting predicate dispatch have had several deficiencies that limit the practical utility of this language feature. We describe JPred, a backward-compatible extension to Java supporting predicate dispatch. While prior languages with predicate dispatch have been extensions to toy or nonmainstream languages, we show how predicate dispatch can be naturally added to a traditional OO language. While prior languages with predicate dispatch have required the whole program to be available for typechecking and compilation, JPred retains Java's modular typechecking and compilation strategies. While prior languages with predicate dispatch have included special-purpose algorithms for reasoning about predicates, JPred employs general-purpose, off-the-shelf decision procedures. As a result, JPred's type system is more flexible, allowing several useful programming idioms that are spuriously rejected by those other languages. After describing the JPred language informally, we present an extension to Featherweight Java that formalizes the language and its modular type system, which we have proven sound. Finally, we discuss two case studies that illustrate the practical utility of JPred, including its use in the detection of several errors. Todd D. Millstein, Christopher Frost 0001, Jason Ryder, Alessandro Warth |
ACM Trans. Program. Lang. Syst. | 4 |
| 2008 | Packrat parsers can support left recursionabstractPackrat parsing offers several advantages over other parsing techniques, such as the guarantee of linear parse times while supporting backtracking and unlimited look-ahead. Unfortunately, the limited support for left recursion in packrat parser implementations makes them difficult to use for a large class of grammars (Java's, for example). This paper presents a modification to the memoization mechanism used by packrat parser implementations that makes it possible for them to support (even indirectly or mutually) left-recursive rules. While it is possible for a packrat parser with our modification to yield super-linear parse times for some left-recursive grammars, our experimentsshow that this is not the case for typical uses of left recursion. Alessandro Warth, James R. Douglass, Todd D. Millstein |
PEPM | 1 |
| 2007 | OMeta: an object-oriented language for pattern matchingabstractThis paper introduces OMeta, a new object-oriented language for pattern matching. OMeta is based on a variant of Parsing Expression Grammars (PEGs) [5]---a recognition-based foundation for describing syntax---which we have extended to handle arbitrary kinds of data. We show that OMeta's general-purpose pattern matching provides a natural and convenient way for programmers to implement tokenizers, parsers, visitors, and tree transformers, all of which can be extended in interesting ways using familiar object-oriented mechanisms. This makes OMeta particularly well-suited as a medium for experimenting with new designs for programming languages and extensions to existing languages. Alessandro Warth, Ian Piumarta |
DLS | 1 |
| 2006 | Statically scoped object adaptation with expandersabstractThis paper introduces the expander, a new object-oriented (OO) programming language construct designed to support object adaptation. Expanders allow existing classes to be noninvasively updated with new methods, fields, and superinterfaces. Each client can customize its view of a class by explicitly importing any number of expanders. This view then applies to all instances of that class, including objects passed to the client from other components. A form of expander overriding allows expanders to interact naturally with OO-style inheritance.We describe the design, implementation, and evaluation of eJava, an extension to Java supporting expanders. We illustrate eJava's syntax and semantics through several examples. The statically scoped nature of expander usage allows for a modular static type system that prevents several important classes of errors. We describe this modular static type system informally, formalize eJava and its type system in an extension to Featherweight Java, and prove a type soundness theorem for the formalization. We also describe a modular compilation strategy for eJava, which we have implemented using the Polyglot extensible compiler framework. Finally, we illustrate the practical benefits of eJava by using this compiler in two experiments. Alessandro Warth, Milan Stanojevic, Todd D. Millstein |
OOPSLA | 1 |