Vous pouvez vous abonner à nos annonces de séminaires http://gallium.inria.fr/seminaires/ S E M I N A I R E __ / _` _ / / o / ) __) / / / / / /\/| (___/ (_/ (_ (_ / (__/ / | I N R I A - Paris 2 rue Simone Iff (ou: 41 rue du Charolais) Salle Lions 1, bâtiment C Lundi 22 mai, 10h30 ---------------- François Pottier ---------------- Inria Paris ================== Visitors Unchained ================== Traversing and transforming abstract syntax trees is difficult to do in a correct, concise, modular, customizable manner -- especially when binding is involved. In the setting of OCaml, I suggest using *visitor classes* as partial, composable descriptions of the operations that one wishes to perform on abstract syntax trees. I will present the *visitors* package, a simple type-directed facility for generating visitor classes. Even though the visitors package has no knowledge of binding, it can be used to traverse abstract syntax trees that contain variables and binders. I will present *alphaLib*, a library of small hand-written 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.