Blogs (28) >>
ICFP 2017
Sun 3 - Sat 9 September 2017 Oxford, United Kingdom
Tue 5 Sep 2017 17:03 - 17:26 at L1 - Program Construction Chair(s): John Hughes

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 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.

Tue 5 Sep

Displayed time zone: Belfast change

16:40 - 17:50
Program ConstructionResearch Papers at L1
Chair(s): John Hughes Chalmers University of Technology
16:40
23m
Talk
Compiling to Categories
Research Papers
Conal Elliott Target, USA
DOI
17:03
23m
Talk
Visitors Unchained
Research Papers
François Pottier Inria, France
DOI
17:26
23m
Talk
Staged Generic Programming
Research Papers
Jeremy Yallop University of Cambridge, UK
DOI Pre-print