Resume-aware faculty matching

Find professors who actually fit you

Upload your resume. Four AI agents analyze your background, rank the faculty who fit, inspect their recent research, and help you draft outreach — grounded in their actual work, not templates.

Free to startNo credit cardCancel anytime
Top matches Balanced preset
Dr. Sarah Chen
Stanford · Interpretability · NLP
91
Dr. Marcus Holloway
MIT · Robotics · RL
84
Dr. Aisha Okonkwo
CMU · Fairness · HCI
82
Nova · Professor Researcher · re-ranking top 20…
Eric Van Wyk

Eric Van Wyk

Verified

University of Minnesota · Computer Science and Engineering

Active 1995–2025

h-index14
Citations1.1k
Papers897 last 5y
Funding$1.9M
See your match with Eric Van Wyk — sign in to PhdFit.Sign in

About

Eric Van Wyk is a professor in the Department of Computer Science & Engineering at the University of Minnesota. His research interests are in programming languages, especially extensible languages. His team has developed techniques and supporting tools for the specification of languages and extensions that add new syntax and semantics to a host language. Of particular interest are mechanisms to guarantee that independently-developed (domain-specific) extensions can be automatically composed to form a well-defined language, enabling non-expert programmers to easily construct their own languages. Van Wyk joined the Department of Computer Science & Engineering in 2002 as an assistant professor and was later promoted to a full professor. He received his M.S. and Ph.D. in computer science from the University of Iowa and was a post-doctoral researcher at the University of Oxford Computing Laboratory before joining the University of Minnesota. His notable contributions include receiving the National Science Foundation’s CAREER Award in 2004, being named a McKnight Land-Grant Professor in 2005, and receiving the Charles E. Bowers Faculty Teaching Award in 2017. His work is associated with the Minnesota Extensible Language Tools Group, and his research has contributed significantly to the field of programming languages and language extension mechanisms.

Research topics

  • Computer Science
  • Artificial Intelligence
  • Programming language
  • Theoretical computer science
  • Mathematics
  • Natural Language Processing
  • Linguistics
  • Discrete mathematics

Selected publications

  • Scheduling the Construction and Interrogation of Scope Graphs Using Attribute Grammars

    2025-06-12

    articleSenior author

    Recognizing 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.

  • A Modular Approach to Metatheoretic Reasoning for Extensible Languages

    ACM Transactions on Programming Languages and Systems · 2025-05-07

    articleSenior author

    This 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.

  • A Modular Approach to Metatheoretic Reasoning for Extensible Languages

    arXiv (Cornell University) · 2023-12-22 · 1 citations

    preprintOpen accessSenior author

    This paper concerns the development of metatheory for extensible languages. It uses as its starting point a 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 the elaboration of this perspective, 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 in this context by formulas over such relations. These properties may be fundamental to the language, introduced by the host language, or they may pertain to analyses introduced by individual extensions. We expose the problem of modular metatheory, i.e., the notion that proofs of relevant properties can be constructed 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. Mathematical precision is given to our discussions by framing them within a logic that encodes inductive rule-based specifications via least fixed-point definitions. We also sketch the structure of a practical system for metatheoretic reasoning for extensible languages based on the ideas developed.

  • Sharing Trees and Contextual Information: Re-imagining Forwarding in Attribute Grammars

    2023-10-19

    articleSenior author

    It 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.

  • Nanopass Attribute Grammars

    2023-10-19

    articleSenior author

    Compilers 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.

  • Reflection of terms in attribute grammars: Design and applications

    Journal of Computer Languages · 2021 · 4 citations

    Senior authorCorresponding
    • Computer Science
    • Computer Science
    • Programming language
  • Strategic tree rewriting in attribute grammars

    2020 · 7 citations

    Senior authorCorresponding
    • Computer Science
    • Computer Science
    • Artificial Intelligence

    This 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.

  • Monadification of attribute grammars

    2020

    Senior authorCorresponding
    • Computer Science
    • Computer Science
    • Artificial Intelligence

    We 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.

  • A Silver implementation of Caml Light

    University of Minnesota Digital Conservancy (University of Minnesota) · 2020-10-08

    articleOpen accessSenior author

    This is an implementation of the Caml Light programming language using the Silver attribute grammar system.

  • An implementation of the lambda calculus in Silver

    University of Minnesota Digital Conservancy (University of Minnesota) · 2020-04-02

    datasetOpen accessSenior author

    This repository contains an implementation of the lambda calculus that uses the reflection-based term-rewriting extension to Silver. There may be newer, unarchived versions of this software at http://melt.cs.umn.edu.

Recent grants

Frequent coauthors

  • Lucas Kramer

    University of Minnesota

    15 shared
  • Ted Kaminski

    University of Minnesota

    15 shared
  • Benoît Combemale

    Institut de Recherche en Informatique de Toulouse

    12 shared
  • Travis Carlson

    University of Minnesota System

    9 shared
  • Lijesh Krishnan

    University of Minnesota

    9 shared
  • Teodor Rus

    University of Iowa

    7 shared
  • Derek Bodin

    University of Minnesota

    7 shared
  • August Schwerdfeger

    Galois (United States)

    5 shared

Labs

  • Minnesota Extensible Language Tools GroupPI

Education

  • Ph.D., Computer Science

    University of Iowa

    2001

Awards & honors

  • Charles E. Bowers Faculty Teaching Award (2017)
  • McKnight Land-Grant Professorship (2005)
  • National Science Foundation Faculty Early Career Development…
  • Resume-aware match score
  • Save to shortlist
  • AI-drafted outreach

See your match with Eric Van Wyk

PhdFit ranks faculty by your research interests, methods, and publications — grounded in their actual work, not templates.

  • Free to start
  • No credit card
  • 30-second signup