ACM SIGPLAN Notices · 1988 · 587 citations · 15 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesSyntaxFormal Language FoundationsFormal LanguagesSyntactic AnalysisSyntax AnalysisSyntax-semantics InterfaceType SystemsAbstract SemanticsUnification
We describe motivation, design, use, and implementation of higher-order abstract syntax as a central representation for programs, formulas, rules, and other syntactic objects in program manipulation and other formal systems where matching and substitution or unification are central operations. Higher-order abstract syntax incorporates name binding information in a uniform and language generic way. Thus it acts as a powerful link integrating diverse tools in such formal environments. We have implemented higher-order abstract syntax, a supporting matching and unification algorithm, and some clients in Common Lisp in the framework of the Ergo project at Carnegie Mellon University.
15
A formulation of the simple theory of types
Alonzo Church · Journal of Symbolic Logic · 1940 · 1.9K citations
A Transformation System for Developing Recursive Programs
R. M. Burstall, John Darlington · Journal of the ACM · 1977 · 1.3K citations · Full text
A unification algorithm for typed λ-calculus
G. Huet · Theoretical Computer Science · 1975 · 509 citations
Thomas Reps, Tim Teitelbaum · ACM SIGPLAN Notices · 1984 · 371 citations