Skip to search boxSkip to navigationSkip to main content

Programming macro tree transducers

  • University of Copenhagen
    ,
  • University of Nottingham
Research Output:
Conference Article in Proceeding or Book/Report chapter
Book chapter
Peer-review

Open access

Publication Information

Output type

Research Output:
Conference Article in Proceeding or Book/Report chapter
Book chapter
Peer-review

Original language

Undefined/Unknown

Pages from-to (Number of pages)

Pages 61-72 (12 pages)

Publication milestones

  • Published - 01/09/2013

Publication status

Published - 01/09/2013

Place of publication

New York, NY, USA

Publisher

Association for Computing Machinery, United States
978-1-4503-2389-5

Publication IDs

  • Scopus: 84887216048

Host publication title

Proceedings of the 9th ACM SIGPLAN Workshop on Generic Programming

Abstract

A tree transducer is a set of mutually recursive functions transforming an input tree into an output tree. Macro tree transducers extend this recursion scheme by allowing each function to be defined in terms of an arbitrary number of accumulation parameters. In this paper, we show how macro tree transducers can be concisely represented in Haskell, and demonstrate the benefits of utilising such an approach with a number of examples. In particular, tree transducers afford a modular programming style as they can be easily composed and manipulated. Our Haskell representation generalises the original definition of (macro) tree transducers, abolishing a restriction on finite state spaces. However, as we demonstrate, this generalisation does not affect compositionality.

Publication metrics

PlumX, opens in new tab

Captures
13
Citations
5