Invertible syntax descriptions: unifying parsing and pretty printing

  • Authors:
  • Tillmann Rendel;Klaus Ostermann

  • Affiliations:
  • University of Marburg, Marburg, Germany;University of Marburg, Marburg, Germany

  • Venue:
  • Proceedings of the third ACM Haskell symposium on Haskell
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Parsers and pretty-printers for a language are often quite similar, yet both are typically implemented separately, leading to redundancy and potential inconsistency. We propose a new interface of syntactic descriptions, with which both parser and pretty-printer can be described as a single program. Whether a syntactic description is used as a parser or as a pretty-printer is determined by the implementation of the interface. Syntactic descriptions enable programmers to describe the connection between concrete and abstract syntax once and for all, and use these descriptions for parsing or pretty-printing as needed. We also discuss the generalization of our programming technique towards an algebra of partial isomorphisms.