VLDB 2026 Research / reviewers in the wild / expert
Eric Van Wyk
dblp:39/6987
· DBLP profile ↗
40ranked-venue papers
7as first author
5since 2021 · last 2026
0000-0002-5611-8687ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 34 · 6 first-author · 5 since 2021Systems, architecture and hardware · 3Artificial intelligence and machine learning · 2Theory of computation · 2 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Tool Paper: AGTix: Concise Use of Scope Graphs in Reference Attribute GrammarsabstractThis tool paper introduces AGTix, an extension to reference attribute grammars that allows constraints, inspired by Visser et al.'s Statix system, that construct and query scope graphs to be written alongside traditional attribute equations. Previous work has shown that a restricted form of Statix specifications can be translated to an equivalent reference attribute grammar that produces the same results; however, the resulting attribute grammar is quite verbose. In AGTix specifications, the more concise constraints for specifying new scope nodes or edges are translated down to the verbose equations which propagate scope node and edge information up and down the syntax tree. The query constructs for resolving names are translated down to expressions; as in Statix, these include syntax for regular expressions over edge labels that describe the valid paths for a resolution. The scope graphs and query results described by these new constructs can be used in traditional attribute grammar equations for other language processing tasks such as collecting error and warning messages or using variable types to support a translation to another language. AGTix is implemented as an extension to Silver, a full-featured extensible attribute grammar system, and is evaluated by implementing several variations of the LM language introduced by Visser et al. Luke Bessant, Eric Van Wyk |
SLE | 2 |
| 2025 | Scheduling the Construction and Interrogation of Scope Graphs Using Attribute GrammarsabstractRecognizing that name binding is often done in an ad-hoc manner, Visser and his colleagues introduced scope graphs as a uniform representation of a program's static binding structure along with a generic means for interrogating that representation to resolve name references to their declarations. A challenge arises in scheduling the construction and querying actions so that a name resolution is not performed before all requisite information for that resolution is added to the scope graph. Visser et al. introduced a notion of weakly critical edges to constrain the order in which name resolution queries are performed to a correct one, but this has been found to be somewhat restrictive. Luke Bessant, Eric Van Wyk |
SLE | 2 |
| 2025 | A Modular Approach to Metatheoretic Reasoning for Extensible LanguagesabstractThis article concerns the development of metatheory for extensible languages. It starts with the view that programming languages tailored to specific application domains are to be constructed by composing components from an open library of independently-developed extensions to a host language. In this context, static analyses (such as typing) and dynamic semantics (such as evaluation) are described via relations whose specifications are distributed across the host language and extensions and are given in a rule-based fashion. Metatheoretic properties, which ensure that static analyses accurately gauge runtime behavior, are represented by formulas over such relations. These properties may be fundamental to the language or they may pertain to analyses introduced by individual extensions. We consider the problem of modular metatheory , by which we mean that proofs of relevant properties should be constructible by reasoning independently within each component in the library. To solve this problem, we propose the twin ideas of decomposing proofs around language fragments and of reasoning generically about extensions based on broad, a priori constraints imposed on their behavior. We establish the soundness of these styles of reasoning by showing how complete proofs of the properties can be automatically constructed for any language obtained by composing the independent parts. Precision in these arguments results from framing them within a logic that encodes inductive, rule-based specifications via least fixed-point definitions. We have implemented our ideas in a language specification system called Sterling and a proof assistant called Extensibella and have used them to validate the examples that motivate the theoretical discussions. Dawn Michaelson, Gopalan Nadathur, Eric Van Wyk |
ACM Trans. Program. Lang. Syst. | 3 |
| 2023 | Sharing Trees and Contextual Information: Re-imagining Forwarding in Attribute GrammarsabstractIt is not uncommon to design a programming language as a core language with additional features that define some semantic analyses, but delegate others to their translation to the core. Many analyses require contextual information, such as a typing environment. When this is the same for a term under a new feature and under that feature's core translation, then the term (and computations over it) can be shared, with context provided by the translation. This avoids redundant, and sometimes exponential computations. This paper brings sharing of terms and specification of context to forwarding, a language extensibility mechanism in attribute grammars. Here context is defined by equations for inherited attributes that provide (the same) values to shared trees. Applying these techniques to the ableC extensible C compiler replaced around 80% of the cases in which tree sharing was achieved by a crude mechanism that prevented sharing context specifications and limited language extensibility. It also replaced all cases in which this mechanism was used to avoid exponential computations and allowed the removal of many, now unneeded, inherited attribute equations. Lucas Kramer, Eric Van Wyk |
SLE | 2 |
| 2023 | Nanopass Attribute GrammarsabstractCompilers for feature-rich languages are complex; they perform many analyses and optimizations, and often lower complex language constructs into simpler ones. The nanopass compiler architecture manages this complexity by specifying the compiler as a sequence of many small transformations, over slightly different, but clearly defined, versions of the language that each perform a single straightforward action. This avoids errors that arise from attempting to solve multiple problems at once and allows for testing at each step. Nathan Ringo, Lucas Kramer, Eric Van Wyk |
SLE | 3 |
| 2020 | Strategic tree rewriting in attribute grammarsabstractThis paper presents strategy attributes, a seamless integration of strategic term rewriting into attribute grammars. Strategy attributes are specified using rewrite rules with strategies that control their application. The rules can reference contextual information held in attributes on the trees being rewritten. This use of attributes leads to rewriting on decorated trees instead of undecorated terms. During rewriting, attributes are (lazily) computed on new trees to ensure they are correct with respect to their defining equations. Attributes and strategic rewriting can each be used where most appropriate, thus avoiding the cumbersome aspects of each. Lucas Kramer, Eric Van Wyk |
SLE | 2 |
| 2020 | Monadification of attribute grammarsabstractWe describe a monadification process for attribute grammars for more concisely written attribute equations, closer to the style of inference rules used in traditional typing and evaluation specifications. Inference rules specifying, for example, a typing relation typically consider only typable expressions, whereas well-defined attribute grammars explicitly determine attribute values for any term, including untypable ones. The monadification approach lets one represent, for example, types as monadic optional/maybe values, but write non-monadic equations over the value inside the monad that only specify the rules for a correct typing, leading to more concise specifications. The missing failure cases are handled by a rewriting that inserts monadic return, bind, and failure operations to produce a well-defined attribute grammar that handles untypable trees. Thus, one can think in terms of a type T and not the actual monadic type M(T). To formalize this notion, typing and evaluation relations are given for the original and rewritten equations. The rewriting is total, preserves types, and a correctness property relating values of original and rewritten equations is given. A prototype implementation illustrates the benefits with examples such as typing of the simply-typed lambda calculus with Booleans, evaluation of the same, and type inference in Caml Light. Dawn Michaelson, Eric Van Wyk |
SLE | 2 |
| 2020 | The Software Language Extension Problem
Manuel Leduc, Thomas Degueule, Eric Van Wyk, Benoît Combemale |
Softw. Syst. Model. | 3 |
| 2019 | Reflection in attribute grammarsabstractThis paper shows how reflection on (undecorated) syntax trees used in attribute grammars can significantly reduce the amount of boiler-plate specifications that must be written. It is implemented in the Silver attribute grammar system in the form of a reflect function mapping syntax trees and other values into a generic representation and a reify function for the inverse mapping. We demonstrate its usefulness in several ways. The first is in an extension to Silver itself that simplifies writing language extensions for the ableC extensible C specification by allowing language engineers to specify C-language syntax trees using the concrete syntax of C (with typed holes) instead of writing abstract syntax trees. Secondly, a scrap-your-boilerplate style substitution mechanism is described. The third use is in serialization and de-serialization of the interface files Silver generates to support separate compilation; a custom interface language was replaced by a generic reflection-based implementation. Finally, an experimental implementation of staged interpreters for a small staged functional language is discussed. Lucas Kramer, Ted Kaminski, Eric Van Wyk |
GPCE | 3 |
| 2019 | Parallel nondeterministic programming as a language extension to C (short paper)abstractThis paper explores parallel nondeterministic programming as an extension to the C programming language; it provides constructs for specifying code containing ambiguous choice as introduced by McCarthy. A translator to plain C code was implemented as an extension to the ableC language specification. Translation involves a transformation to continuation passing style, providing lazy choice by storing continuation closures in a separate task buffer. This exploration considers various search evaluation approaches and their impact on correctness and performance. Multiple search drivers were implemented, including single-threaded depth-first search, a combined breadth- and depth-first approach, as well as two approaches to parallelism. Several benchmark applications were created using the extension, including n-Queens, SAT, and triangle peg solitaire. The simplest parallel search driver, using independent threads, showed the best performance in most cases, providing a significant speedup over the sequential versions. Adding task sharing between threads showed similar or slightly improved performance. Lucas Kramer, Eric Van Wyk |
GPCE | 2 |
| 2019 | Building parallel programming language constructs in the AbleC extensible C compiler framework: a PPoPP tutorialabstractIn this tutorial participants learn how to build their own parallel programming language features by developing them as language extensions in the ableC [4] extensible C compiler framework. By implementing new parallel programming abstractions as language extensions one can build on an existing host language and thus avoid re-implementing common language features such as the type checking and code generation of arithmetic expressions and control flow statements. Using ableC, one can build expressive language features that fit seamlessly into the C11 host language. Travis Carlson, Eric Van Wyk |
PPoPP | 2 |
| 2017 | Type qualifiers as composable language extensionsabstractThis paper reformulates type qualifiers as language extensions that can be automatically and reliably composed. Type qualifiers annotate type expressions to introduce new subtyping relations and are powerful enough to detect many kinds of errors. Type qualifiers, as illustrated in our ableC extensible language framework for C, can introduce rich forms of concrete syntax, can generate dynamic checks on data when static checks are infeasible or not appropriate, and inject code that affects the program's behavior, for example for conversions of data or logging. Travis Carlson, Eric Van Wyk |
GPCE | 2 |
| 2017 | Ensuring non-interference of composable language extensionsabstractExtensible language frameworks aim to allow independently-developed language extensions to be easily added to a host programming language. It should not require being a compiler expert, and the resulting compiler should "just work" as expected. Previous work has shown how specifications for parsing (based on context free grammars) and for semantic analysis (based on attribute grammars) can be automatically and reliably composed, ensuring that the resulting compiler does not terminate abnormally. Ted Kaminski, Eric Van Wyk |
SLE | 2 |
| 2017 | Reliable and automatic composition of language extensions to C: the ableC extensible language frameworkabstractThis paper describes an extensible language framework, ableC, that allows programmers to import new, domain-specific, independently-developed language features into their programming language, in this case C. Most importantly, this framework ensures that the language extensions will automatically compose to form a working translator that does not terminate abnormally. This is possible due to two modular analyses that extension developers can apply to their language extension to check its composability. Specifically, these ensure that the composed concrete syntax specification is non-ambiguous and the composed attribute grammar specifying the semantics is well-defined. This assurance and the expressiveness of the supported extensions is a distinguishing characteristic of the approach. The paper describes a number of techniques for specifying a host language, in this case C at the C11 standard, to make it more amenable to language extension. These include techniques that make additional extensions pass these modular analyses, refactorings of the host language to support a wider range of extensions, and the addition of semantic extension points to support, for example, operator overloading and non-local code transformations. Ted Kaminski, Lucas Kramer, Travis Carlson, Eric Van Wyk |
Proc. ACM Program. Lang. | 4 |
| 2016 | Embedding attribute grammars and their extensions using functional zippers
Pedro Martins 0001, João Paulo Fernandes, João Saraiva, Eric Van Wyk, Anthony M. Sloane |
Sci. Comput. Program. | 4 |
| 2015 | Special Issue on the 6th and 7th International Conferences on Software Language Engineering (SLE 2013 and SLE 2014)
Benoît Combemale, David J. Pearce 0001, Richard F. Paige, Eric Van Wyk |
Comput. Lang. Syst. Struct. | 4 |
| 2015 | A modular specification of Oberon0 using the Silver attribute grammar system
Ted Kaminski, Eric Van Wyk |
Sci. Comput. Program. | 2 |
| 2014 | A Compiler Extension for Parallel Matrix ProgrammingabstractThis paper describes a compiler extension to our prototype extensible C translator that adds new features for parallel execution of matrix operations and shows their application to problems in spatio-temporal data mining. The extension provides new language features for constructing new matrices, mapping functions over elements of a matrix, and accumulating operations that, for example, can sum values in a matrix. It also provides the appropriate semantic analysis to check for errors before translating the constructs down to parallel C code. The extension also provides features that let the programmer indicate how the extension translates these matrix constructs down to C code. Programmers seeking higher levels of performance can specify how the underlying for-loops are structured so that code using, for example, loop-tiling techniques or vector processors, is generated. In general, compiler extensions supported by our approach allow new domain-specific syntax and semantic analyses to be easily added to the host language. Specifications of the host C language and the extensions are composed to create a custom translator that maps extended C programs down to plain (parallel) C code, checking for domain-specific errors and applying high-level domain-specific optimizations in the process. Matt Le 0001, Ted Kaminski, Eric Van Wyk |
ICPP | 4 |
| 2014 | Generating attribute grammar-based bidirectional transformations from rewrite rulesabstractHigher order attribute grammars provide a convenient means for specifying uni-directional transformations, but they provide no direct support for bidirectional transformations. In this paper we show how rewrite rules (with non-linear right hand sides) that specify a forward/get transformation can be inverted to specify a partial backward/put transformation. These inverted rewrite rules can then be extended with additional rules based on characteristics of the source language grammar and forward transformations to create, under certain circumstances, a total backward transformation. Finally, these rules are used to generate attribute grammar specifications implementing both transformations. Pedro Martins 0001, João Saraiva, João Paulo Fernandes, Eric Van Wyk |
PEPM | 4 |
| 2014 | Origin Tracking in Attribute Grammars
Eric Van Wyk |
SLE | 2 |
| 2014 | Preface to the Special Section on Language Descriptions, Tools, and Applications (LDTA 2011)
Claus Brabrand, Eric Van Wyk |
Sci. Comput. Program. | 2 |
| 2014 | Monolithic and modular termination analyses for higher-order attribute grammars
Lijesh Krishnan, Eric Van Wyk |
Sci. Comput. Program. | 2 |
| 2012 | XRobots: A flexible language for programming mobile robots based on hierarchical state machinesabstractThis paper introduces a domain-specific language for programming mobile robots that is based on hierarchical state machines. Following Brooks, we refer to states as behaviors. A novelty of this language is that behaviors are treated as first class objects in the language and thus they can be passed as arguments to other parameterized behaviors. The language has template behaviors which allow generalized behaviors to be customized and instantiated. This makes the language quite flexible in terms of programming styles. An example of its flexibility are presented, followed by a description of the challenges in the language design. Steve Tousignant, Eric Van Wyk, Maria L. Gini |
ICRA | 2 |
| 2012 | Modular Well-Definedness Analysis for Attribute Grammars
Ted Kaminski, Eric Van Wyk |
SLE | 2 |
| 2012 | Termination Analysis for Higher-Order Attribute Grammars
Lijesh Krishnan, Eric Van Wyk |
SLE | 2 |
| 2011 | Integrating Attribute Grammar and Functional Programming Language Features
Ted Kaminski, Eric Van Wyk |
SLE | 2 |
| 2010 | Silver: An extensible attribute grammar system
Eric Van Wyk, Derek Bodin, Jimin Gao, Lijesh Krishnan |
Sci. Comput. Program. | 1 |
| 2009 | Verifiable composition of deterministic grammarsabstractThere is an increasing interest in extensible languages, August Schwerdfeger, Eric Van Wyk |
PLDI | 2 |
| 2009 | Verifiable Parse Table Composition for Deterministic Parsing
August Schwerdfeger, Eric Van Wyk |
SLE | 2 |
| 2009 | Flexibility in modeling languages and tools: a call to arms
Eric Van Wyk, Mats P. E. Heimdahl |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2007 | Attribute Grammar-Based Language Extensions for Java
Eric Van Wyk, Lijesh Krishnan, Derek Bodin, August Schwerdfeger |
ECOOP | 1 |
| 2007 | Flexible and Extensible Notations for Modeling Languages
Jimin Gao, Mats P. E. Heimdahl, Eric Van Wyk |
FASE | 3 |
| 2007 | Context-aware scanning for parsing extensible languagesabstractThis paper introduces new parsing and context-aware scanning algorithms in which the scanner uses contextual information to disambiguate lexical syntax. The parser uses a slightly modified LR-style algorithm that passes to the scanner the set of valid symbols that the scanner may return at that point in parsing. This set is those terminals whose entries in the parse table for the current parse state are shift, reduce, or accept, but not error. The scanner then only returns tokens in this set. An analysis is given that can statically verify that the scanner will never return more than one token for a single input. Context-aware scanning is especially useful when parsing and scanning extensible languages in which domain specific languages can be embedded. It has been used in extensible versions of Java 1.4 and ANSI C. We illustrate this approach with a declarative specification of a subset of Java and extensions that embed SQL queries and Boolean expression tables into Java. Eric Van Wyk, August Schwerdfeger |
GPCE | 1 |
| 2007 | Implementing aspect-oriented programming constructs as modular language extensions
Eric Van Wyk |
Sci. Comput. Program. | 1 |
| 2006 | Genomic computing networks learn complex POMDPsabstractA genomic computing network is a variant of a neural network for which a genome encodes all aspects, both structural and functional, of the network. The genome is evolved by a genetic algorithm to fit particular tasks and environments. The genome has three portions: one for specifying links and their initial weights, a second for specifying how a node updates its internal state, and a third for specifying how a node updates the weights on its links. Preliminary experiments demonstrate that genomic computing networks can use node internal state to solve POMDPs more complex than those solved previously using neural networks. David J. Montana, Eric Van Wyk, Marshall Brinn, Joshua Montana, Stephen Milligan |
GECCO | 2 |
| 2006 | Preface
Görel Hedin, Eric Van Wyk |
Sci. Comput. Program. | 2 |
| 2003 | Specification languages in algebraic compilers
Eric Van Wyk |
Theor. Comput. Sci. | 1 |
| 2002 | Forwarding in Attribute Grammars for Modular Language Design
Eric Van Wyk, Oege de Moor, Kevin Backhouse, Paul Kwiatkowski |
CC | 1 |
| 2002 | Proving correctness of compiler optimizations by temporal logicabstractMany classical compiler optimizations can be elegantly expressed using rewrite rules of form: I ⇒ I ′ if φ , where I , I ′ are intermediate language instructions and φ is a property expressed in a temporal logic suitable for describing program data flow. Its reading: If the current program π contains an instruction of form I at some control point p , and if flow condition φ is satisfied at p , then replace I by I ′.The purpose of this paper is to show how such transformations may be proven correct. Our methodology is illustrated by three familiar optimizations, dead code elimination, constant folding and code motion. The meaning of correctness is that for any program π, if Rewrite (π, π′, p , I ⇒ I ′ if φ) then [[π]] = [[π′]], i.e. π and π′ have exactly the same semantics. David Lacey, Neil D. Jones, Eric Van Wyk, Carl Christian Frederiksen |
POPL | 3 |
| 2002 | Generating Model Checkers from Algebraic Specifications
Teodor Rus, Eric Van Wyk, Tom Halverson |
Formal Methods Syst. Des. | 2 |