A Pronominal Approach to Binding and Computation

  • Robert Harper
  • Daniel R. Licata
  • Noam Zeilberger
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5608)


There has been a great deal of research on programming languages for computing with binding and scope (bound variables, α-equivalence, capture-avoiding substitution). These languages are useful for a variety of tasks, such as implementing domain-specific languages and formalizing the metatheory of programming languages. Functional programming with binding and scope involves two different notions of function: functions-as-data and functions-as-computation. Functions-as-data, used to represent abstract syntax with variable binding, have an intensional, syntactic, character, in the sense that they can be inspected in ways other than function application. For example, many algorithms that process abstract syntax recur under binders, treating variables symbolically. On the other hand, functions-as-computation, the usual functions of functional programming, have an extensional character—a function from A to B is a black box that, when given an A, delivers a B.


Programming Language Pattern Match Program Language Abstract Syntax Dependent Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Licata, D.R., Zeilberger, N., Harper, R.: Focusing on binding and computation. In: IEEE Symposium on Logic in Computer Science (2008)Google Scholar
  2. 2.
    Licata, D.R., Harper, R.: A universe of binding and computation (March 2009),
  3. 3.
    Zeilberger, N.: On the unity of duality. Annals of Pure and Applied Logic 153(1–3) (2008); Special issue on Classical Logic and ComputationGoogle Scholar
  4. 4.
    Zeilberger, N.: The logical basis of evaluation order and pattern matching. PhD thesis, Carnegie Mellon University (2009)Google Scholar
  5. 5.
    Zeilberger, N.: Focusing and higher-order abstract syntax. In: ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 359–369 (2008)Google Scholar
  6. 6.
    Zeilberger, N.: Refinement types and computational duality. In: PLPV 2009: Proceedings of the 3rd Workshop on Programming Languages Meets Program Verification, pp. 15–26. ACM Press, New York (2009)Google Scholar
  7. 7.
    Licata, D.R., Harper, R.: Positively dependent types. In: PLPV 2009: Proceedings of the 3rd Workshop on Programming Languages Meets Program Verification, pp. 3–14. ACM, New York (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Robert Harper
    • 1
  • Daniel R. Licata
    • 1
  • Noam Zeilberger
    • 1
  1. 1.Carnegie Mellon UniversityUSA

Personalised recommendations