Visitors unchained - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Journal Articles Proceedings of the ACM on Programming Languages Year : 2017

Visitors unchained


Traversing and transforming abstract syntax trees that involve name binding is notoriously difficult to do in a correct, concise, modular, customizable manner. We address this problem in the setting of OCaml, a functional programming language equipped with powerful object-oriented features. We use visitor classes as partial, composable descriptions of the operations that we wish to perform on abstract syntax trees. We introduce visitors, a simple type-directed facility for generating visitor classes that have no knowledge of binding. Separately, we present alphaLib, a library of small handwritten visitor classes, each of which knows about a specific binding construct, a specific representation of names, and/or a specific operation on abstract syntax trees. By combining these components, a wide range of operations can be defined. Multiple representations of names can be supported, as well as conversions between representations. Binding structure can be described either in a programmatic style, by writing visitor methods, or in a declarative style, via preprogrammed binding combinators.
Fichier principal
Vignette du fichier
fpottier-visitors-unchained.pdf (673.22 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-01670735 , version 1 (21-12-2017)



François Pottier. Visitors unchained. Proceedings of the ACM on Programming Languages, 2017, 1 (ICFP), pp.1 - 28. ⟨10.1145/3110272⟩. ⟨hal-01670735⟩
128 View
467 Download



Gmail Facebook X LinkedIn More