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

16:40 - 17:50: Research Papers - Program Construction at L1
Chair(s): John HughesChalmers University of Technology
icfp-2017-papers150462240000016:40 - 17:03
Conal ElliottTarget, USA
icfp-2017-papers150462380000017:03 - 17:26
icfp-2017-papers150462520000017:26 - 17:50
Jeremy YallopUniversity of Cambridge, UK
DOI Pre-print