TY - GEN
T1 - Toward a General Theory of Names: Binding and Scope
AU - Cheney, James
PY - 2005
Y1 - 2005
N2 - High-level formalisms for reasoning about names and binding such as de Bruijn indices, various flavors of higher-order abstract syntax, the Theory of Contexts, and nominal abstract syntax address only one relatively restrictive form of scoping: namely, unary lexical scoping, in which the scope of a (single) bound name is a subtree of the abstract syntax tree (possibly with other subtrees removed due to shadowing). Many languages exhibit binding or renaming structure that does not fit this mold. Examples include binding transitions in the π-calculus; unique identifiers in contexts, memory heaps, and XML documents; declaration scoping in modules and namespaces; anonymous identifiers in automata, type schemes, and Horn clauses; and pattern matching and mutual recursion constructs in functional languages. In these cases, it appears necessary to either rearrange the abstract syntax so that lexical scoping can be used, or revert to first-order techniques.The purpose of this paper is to catalogue these "exotic" binding, renaming, and structural congruence situations; to argue that lexical scoping-based syntax techniques are sometimes either inappropriate or incapable of assisting in such situations; and to outline techniques for formalizing and proving properties of languages with more general forms of renaming and other structural congruences.
AB - High-level formalisms for reasoning about names and binding such as de Bruijn indices, various flavors of higher-order abstract syntax, the Theory of Contexts, and nominal abstract syntax address only one relatively restrictive form of scoping: namely, unary lexical scoping, in which the scope of a (single) bound name is a subtree of the abstract syntax tree (possibly with other subtrees removed due to shadowing). Many languages exhibit binding or renaming structure that does not fit this mold. Examples include binding transitions in the π-calculus; unique identifiers in contexts, memory heaps, and XML documents; declaration scoping in modules and namespaces; anonymous identifiers in automata, type schemes, and Horn clauses; and pattern matching and mutual recursion constructs in functional languages. In these cases, it appears necessary to either rearrange the abstract syntax so that lexical scoping can be used, or revert to first-order techniques.The purpose of this paper is to catalogue these "exotic" binding, renaming, and structural congruence situations; to argue that lexical scoping-based syntax techniques are sometimes either inappropriate or incapable of assisting in such situations; and to outline techniques for formalizing and proving properties of languages with more general forms of renaming and other structural congruences.
KW - abstract syntax
KW - names
KW - nominal logic
KW - scope
U2 - 10.1145/1088454.1088459
DO - 10.1145/1088454.1088459
M3 - Conference contribution
SN - 1-59593-072-8
T3 - MERLIN '05
SP - 33
EP - 40
BT - Proceedings of the 3rd ACM SIGPLAN Workshop on Mechanized Reasoning About Languages with Variable Binding
PB - ACM
CY - New York, NY, USA
ER -