Skip to main navigation Skip to search Skip to main content

Enhancing Semantic Bidirectionalization via Shape Bidirectionalizer Plug-ins

  • Janis Voigtländer
  • , Zhenjiang Hu
  • , Kazutaka Matsuda
  • , Meng Wang

    Research output: Contribution to journalArticle (Academic Journal)peer-review

    16 Citations (Scopus)
    8 Downloads (Pure)

    Abstract

    Matsuda et al. (Matsuda, K., Hu, Z., Nakano, K., Hamana, M. & Takeichi, M. (2007) Bidirectionalization transformation based on automatic derivation of view complement functions. In Proceedings of the International Conference on Functional Programming. ACM Press, pp. 47–58) and Voigtländer (Voigtländer, J. (2009) Bidirectionalization for free! In Proceedings of Principles of Programming Languages. ACM Press, pp. 165–176) have introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Previously, we developed a synthesis of the two techniques, based on a separation of shape and content aspects (Voigtländer, J., Hu, Z., Matsuda, K. & Wang, M. (2010) Combining syntactic and semantic bidirectionalization. In Proceedings of the International Conference on Functional Programming. ACM Press, pp. 181–192). Here we carry that idea further, reworking the technique of Voigtländer such that any shape bidirectionalizer (based on the work of Matsuda et al. (2007) or not) can be used as a plug-in, to good effect. We also provide a data-type-generic account, enabling wider reuse, including the use of pluggable bidirectionalization itself as a plug-in.
    Original languageEnglish
    JournalJournal of Functional Programming
    Volume23
    Issue number5
    DOIs
    Publication statusPublished - 2013

    Research Groups and Themes

    • Programming Languages

    Fingerprint

    Dive into the research topics of 'Enhancing Semantic Bidirectionalization via Shape Bidirectionalizer Plug-ins'. Together they form a unique fingerprint.

    Cite this