• Publications
  • Influence
Higher-Order Program Generation
This dissertation addresses the challenges of embedding programming languages, specializing generic programs to specific parameters, and generating specialized instances of programs directly asExpand
  • 7
  • 3
  • Open Access
A unifying approach to goal-directed evaluation
Goal-directed evaluation, as embodied in Icon and Snobol, is built on the notions of backtracking and of generating successive results, and therefore it has always been something of a challenge toExpand
  • 8
  • 2
Normalization by evaluation with typed abstract syntax
In higher-order abstract syntax, the variables and bindings of an object language are represented by variables and bindings of a meta-language. Let us consider the simply typed λ-calculus as objectExpand
  • 22
  • 1
  • Open Access
A foundation for embedded languages
Recent work on embedding object languages into Haskell use "phantom types" (i.e., parameterized types whose parameter does not occur on the right-hand side of the type definition) to ensure that theExpand
  • 27
  • 1
  • Open Access
A Study in Higher-Order Programming Languages
This thesis describes some interplays between the specication and the imple- mentation of higher-order programming languages. We rst investigate a traditional imple- mentation of Scheme (compiler,Expand
  • 12
  • 1
  • Open Access
Staged Computation with Staged Lexical Scope
We present a simple core type system, λ[ ] -- pronounced "lambda open box" -- for a statically typed, hygienic, and multi-stage lambda-calculus supporting evaluation under future-stage binders,Expand
  • 13
  • 1
A Unifying Approach to Goal-Directed Evaluation
Goal-directed evaluation, as embodied in Icon and Snobol, is built on the notions of backtracking and of generating successive results, and therefore it has always been something of a challenge toExpand
  • 8
  • 1
Normalization by Evaluation with Typed Abstract Syntax
We present a simple way to implement typed abstract syntax for the lambda calculus in Haskell, using phantom types, and we specify normalization by evaluation (i.e., type-directed partial evaluation)Expand
  • 10
  • 1
Hygienic quasiquotation in scheme
Quasiquotation in Scheme is nearly ideal for implementing programs that generate other programs. These programs lack only the ability to generate fresh bound identifiers, as required to make suchExpand
  • 3
  • 1
Type-safe pattern combinators
Macros still haven't made their way into typed higher-order programming languages such as Haskell and Standard ML. Therefore, to extend the expressiveness of Haskell or Standard ML, one must expressExpand
  • 15
  • Open Access