EDBT 2026 Demo / reviewers in the wild / expert
Geoffrey Washburn
dblp:40/2461
· DBLP profile ↗
9ranked-venue papers
3as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 2 first-authorDatabases, data management, data science and information retrieval · 2Systems, architecture and hardware · 1Theory of computation · 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
3 papers |
Programming languages and type systems · 89% Compilers and program optimization · 11% | |
| Databases, data mining, and information retrieval
2 papers |
Database system architecture and tuning · 87% Data models and query languages · 13% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 10 heaviest of 12, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
aspect-oriented programming |
0.1 | 1 | 2008 | AspectML: A polymorphic aspect-oriented functional programming language · ACM Trans. Program. Lang. Syst. 2008 |
Programming languages and type systems › type inference
hindley-milner type inference |
0.1 | 1 | 2008 | AspectML: A polymorphic aspect-oriented functional programming language · ACM Trans. Program. Lang. Syst. 2008 |
Programming languages and type systems
type inference |
0.1 | 1 | 2008 | AspectML: A polymorphic aspect-oriented functional programming language · ACM Trans. Program. Lang. Syst. 2008 |
Programming languages and type systems
type systems |
0.1 | 1 | 2008 | AspectML: A polymorphic aspect-oriented functional programming language · ACM Trans. Program. Lang. Syst. 2008 |
Compilers and program optimization
incremental compilation |
0.1 | 1 | 2015 | Live Programming in the LogicBlox System: A MetaLogiQL Approach · Proc. VLDB Endow. 2015 |
Systems and software security
information flow control |
0.1 | 1 | 2005 | Generalizing Parametricity Using Information-flow · LICS 2005 |
Programming languages and type systems
information flow control |
0.1 | 1 | 2005 | Generalizing Parametricity Using Information-flow · LICS 2005 |
Programming languages and type systems
parametricity |
0.1 | 1 | 2005 | Generalizing Parametricity Using Information-flow · LICS 2005 |
Programming languages and type systems › type systems › polymorphism
parametric polymorphism |
0.1 | 1 | 2005 | Generalizing Parametricity Using Information-flow · LICS 2005 |
Programming languages and type systems › type systems
type abstraction |
0.1 | 1 | 2005 | Generalizing Parametricity Using Information-flow · LICS 2005 |
Methods — techniques the papers use, named apart from their topics
materialized view maintenance · 0.4declarative meta-rules · 0.4logic programming · 0.2declarative language · 0.2type system annotations · 0.1run-time type analysis · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | A Scheduling Approach to Incremental Maintenance of Datalog ProgramsabstractIn this paper, we study the problem of incremental maintenance of Datalog programs and model it as a scheduling problem on DAGs. We design provably good time- and memory-efficient scheduling algorithms for (re)executing a Datalog program where some (but not necessarily all) of the inputs have changed. We prove that our schedulers, called LevelBased and LevelBased with lookahead, have asymptotically improved running time and space efficiency when compared with benchmark algorithms used in production at LogicBlox.The main result of the paper is a hybrid scheduler, which combines LevelBased with the production LogicBlox scheduler (or any other heuristic scheduler). The hybrid scheduler achieves strong worst-case guarantees and robustness without losing out on the best-case behavior of the production LogicBlox scheduler. Our experiments show that the hybrid scheduler results in similar or improved total execution times compared to LogicBlox scheduler, while consistently reducing the scheduling overhead-by as much as 50% on some datasets. This hybrid scheme requires little to no overhead but provides predictability and reliability, which are crucial in a commercial application such as LogicBlox. Shikha Singh 0002, Sergey Madaminov, Michael A. Bender, Michael Ferdman, Benjamin Moseley, Hung Q. Ngo 0001, Soeren Olesen, R. E. Kurt Stirewalt, Geoffrey Washburn |
IPDPS | 11 |
| 2015 | Design and Implementation of the LogicBlox SystemabstractThe LogicBlox system aims to reduce the complexity of software development for modern applications which enhance and automate decision-making and enable their users to evolve their capabilities via a ``self-service'' model. Our perspective in this area is informed by over twenty years of experience building dozens of mission-critical enterprise applications that are in use by hundreds of large enterprises across industries such as retail, telecommunications, banking, and government. We designed and built LogicBlox to be the system we wished we had when developing those applications. Molham Aref, Balder ten Cate, Todd J. Green, Benny Kimelfeld, Dan Olteanu, Emir Pasalic, Todd L. Veldhuizen, Geoffrey Washburn |
SIGMOD Conference | 8 |
| 2015 | Live Programming in the LogicBlox System: A MetaLogiQL ApproachabstractThe emerging category of self-service enterprise applications motivates support for "live programming" in the database, where the user's iterative data exploration triggers changes to installed application code and its output in real time. This paper discusses the technical challenges in supporting live programming in the database and presents the solution implemented in the LogicBlox commercial system. The workhorse architectural component is a "meta-engine" that incrementally maintains metadata representing application code, guides its compilation into an internal representation in the database kernel, and orchestrates maintenance of materialized views based on those changes. Our approach mirrors LogicBlox's declarative programming model and describes the maintenance of application code using declarative meta-rules; the meta-engine is essentially a "bootstrap" version of the database engine proper. Beyond live programming, the meta-engine turns out effective for a range of static analysis and optimization tasks. Outside of the database context, we speculate that our design may even provide a novel means of building incremental compilers for general-purpose programming languages. Todd J. Green, Dan Olteanu, Geoffrey Washburn |
Proc. VLDB Endow. | 3 |
| 2008 | Boxes go bananas: Encoding higher-order abstract syntax with parametric polymorphismabstractAbstract Higher-order abstract syntax is a simple technique for implementing languages with functional programming. Object variables and binders are implemented by variables and binders in the host language. By using this technique, one can avoid implementing common and tricky routines dealing with variables, such as capture-avoiding substitution. However, despite the advantages this technique provides, it is not commonly used because it is difficult to write sound elimination forms (such as folds or catamorphisms) for higher-order abstract syntax. To fold over such a data type, one must either simultaneously define an inverse operation (which may not exist) or show that all functions embedded in the data type are parametric. In this paper, we show how first-class polymorphism can be used to guarantee the parametricity of functions embedded in higher-order abstract syntax. With this restriction, we implement a library of iteration operators over data structures containing functionals. From this implementation, we derive “fusion laws” that functional programmers may use to reason about the iteration operator. Finally, we show how this use of parametric polymorphism corresponds to the Schürmann, Despeyroux and Pfenning method of enforcing parametricity through modal types. We do so by using this library to give a sound and complete encoding of their calculus into System . This encoding can serve as a starting point for reasoning about higher-order structures in polymorphic languages. Geoffrey Washburn, Stephanie Weirich |
J. Funct. Program. | 1 |
| 2008 | AspectML: A polymorphic aspect-oriented functional programming languageabstractThis article defines AspectML, a typed functional, aspect-oriented programming language. The main contribution of AspectML is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. In particular, AspectML allows programmers to define type-safe polymorphic advice using pointcuts constructed from a collection of polymorphic join points. AspectML also comes equipped with a type inference algorithm that conservatively extends Hindley--Milner type inference. To support first-class polymorphic point-cut designators, a crucial feature for developing aspect-oriented profiling or logging libraries, the algorithm blends the conventional Hindley--Milner type inference algorithm with a simple form of local type inference. We give our language operational meaning via a type-directed translation into an expressive type-safe intermediate language. Many complexities of the source language are eliminated in this translation, leading to a modular specification of its semantics. One of the novelties of the intermediate language is the definition of polymorphic labels for marking control-flow points. When a set of labels is assembled as a pointcut, the type of each label is an instance of the type of the pointcut. Daniel S. Dantas, David Walker 0001, Geoffrey Washburn, Stephanie Weirich |
ACM Trans. Program. Lang. Syst. | 3 |
| 2006 | Simple unification-based type inference for GADTsabstractGeneralized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “first-class phantom types”, are a simple but powerful generalization of the data types of Haskell and ML. Recent works have given compelling examples of the utility of GADTs, although type inference is known to be difficult. Our contribution is to show how to exploit programmer-supplied type annotations to make the type inference task almost embarrassingly easy. Our main technical innovation is wobbly types, which express in a declarative way the uncertainty caused by the incremental nature of typical type-inference algorithms. 1. Simon L. Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, Geoffrey Washburn |
ICFP | 4 |
| 2005 | PolyAML: a polymorphic aspect-oriented functional programming languageabstractThis paper defines PolyAML, a typed functional, aspect-oriented programming language. The main contribution of PolyAML is the seamless integration of polymorphism, run-time type analysis and aspect-oriented programming language features. In particular, PolyAML allows programmers to define type-safe polymorphic advice using pointcuts constructed from a collection of polymorphic join points. PolyAML also comes equipped with a type inference algorithm that conservatively extends Hindley-Milner type inference. To support first-class polymorphic point-cut designators, a crucial feature for developing aspect-oriented profiling or logging libraries, the algorithm blends the conventional Hindley-Milner type inference algorithm with a simple form of local type inference.We give our language operational meaning via a type-directed translation into an expressive type-safe intermediate language. Many complexities of the source language are eliminated in this translation, leading to a modular specification of its semantics. One of the novelties of the intermediate language is the definition of polymorphic labels for marking control-flow points. These labels are organized in a tree structure such that a parent in the tree serves as a representative for all of its children. Type safety requires that the type of each child is less polymorphic than its parent type. Similarly, when a set of labels is assembled as a pointcut, the type of each label is an instance of the type of the pointcut. Daniel S. Dantas, David Walker 0001, Geoffrey Washburn, Stephanie Weirich |
ICFP | 3 |
| 2005 | Generalizing Parametricity Using Information-flowabstractRun-time type analysis allows programmers to easily and concisely define operations based upon type structure, such as serialization, iterators, and structural equality. However, when types can be inspected at run time, nothing is secret. A module writer cannot use type abstraction to hide implementation details from clients: clients can determine the structure of these supposedly "abstract" data types. Furthermore, access control mechanisms do not help isolate the implementation of abstract datatypes from their clients. Buggy or malicious authorized modules may leak type information to unauthorized clients, so module implementors cannot reliably tell which parts of a program rely on their type definitions. Currently, module implementors rely on parametric polymorphism to provide integrity and confidentiality guarantees about their abstract datatypes. However, standard parametricity does not hold for languages with run-time type analysis; this paper shows how to generalize parametricity so that it does. The key is to augment the type system with annotations about information-flow. Implementors can then easily see which parts of a program depend on the chosen implementation by tracking the flow of dynamic type information. Geoffrey Washburn, Stephanie Weirich |
LICS | 1 |
| 2003 | Boxes go bananas: encoding higher-order abstract syntax with parametric polymorphismabstractHigher-order abstract syntax is a simple technique for implementing languages with functional programming. Object variables and binders are implemented by variables and binders in the host language. By using this technique, one can avoid implementing common and tricky routines dealing with variables, such as capture-avoiding substitution. However, despite the advantages this technique provides, it is not commonly used because it is difficult to write sound elimination forms (such as folds or catamorphisms) for higher-order abstract syntax. To fold over such a datatype, one must either simultaneously define an inverse operation (which may not exist) or show that all functions embedded in the datatype are parametri.In this paper, we show how first-class polymorphism can be used to guarantee the parametricity of functions embedded in higher-order abstract syntax. With this restriction, we implement a library of iteration operators over data-structures containing functionals. From this implementation, we derive "fusion laws" that functional programmers may use to reason about the iteration operator. Finally, we show how this use of parametric polymorphism corresponds to the Schürmann, Despeyroux and Pfenning method of enforcing parametricity through modal types. We do so by using this library to give a sound and complete encoding of their calculus into System F?. This encoding can serve as a starting point for reasoning about higher-order structures in polymorphic languages. Geoffrey Washburn, Stephanie Weirich |
ICFP | 1 |