• Publications
  • Influence
A framework for defining logics
The Edinburgh Logical Framework provides a means to define (or present) logics through a general treatment of syntax, rules, and proofs by means of a typed λ-calculus with dependent types, whereby each judgment is identified with the type of its proofs. Expand
Definition of standard ML
This book provides a formal definition of Standard ML for the benefit of all concerned with the language, including users and implementers, and the authors have defined their semantic objects in mathematical notation that is completely independent of StandardML. Expand
A type-theoretic approach to higher-order modules with sharing
These problems are addressed from a type-theoretic viewpoint by considering a calculus based on Girard's system Fω that provides complete control over the propagation of compile-time information between program units and is sufficient to encode in a straightforward way most users of type sharing specifications in Standard ML. Expand
Compiling polymorphism using intensional type analysis
This paper examines an alternative approach for compiling polymorphism where types are passed as arguments to polymorphic routines in order to determine the representation of an object, and shows how to translate an ML-like language into the target language so that primitive operators can analyze types to produce efficient representations. Expand
The Definition of Standard ML (Revised)
Part 1 Syntax of the core: reserved words special constants comments identifiers lexical analysis infixed operators derived forms grammar syntactic restrictions. Part 2 Syntax of modules: reservedExpand
Practical Foundations for Programming Languages
Professor Harper's presentation is simultaneously rigorous and intuitive, relying on only elementary mathematics, and the framework he outlines scales easily to a rich variety of language concepts and is directly applicable to their implementation. Expand
What is a recursive module?
A type-theoretic analysis of the notion of a recursive module in the context of a "phase-distinction" formalism for higher-order module systems and a new form of signature, called a recursively dependent signature, to support the definition of recursive modules. Expand
On equivalence and canonical forms in the LF type theory
A new, type-directed equivalence algorithm for the LF type theory that overcomes the weaknesses of previous approaches, is presented, and yields a new notion of canonical form sufficient for adequate encodings of logical systems. Expand
Typed closure conversion
This work presents closure conversion as a type-directed, and type-preserving translation for both the simply-typed and the polymorphic ¿-calculus, and exploits a variant of the Harper-Lillibridge "translucent type" formalism to characterize the types of polymorphic closures. Expand
Generational stack collection and profile-driven pretenuring
This paper presents two techniques for improving garbage collection performance: generational stack collection and profile-driven pretenuring. The first is applicable to stack-based implementationsExpand