Modular Edit Lenses

  • Martin Hofmann
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9715)


This article is a reading guide to the theory of symmetric edit lenses by Pierce, Wagner, and the author, which form a general framework for the modular construction of bidirectional synchronizers and which generalize the popular lenses framework by Foster and Pierce to a truly symmetric, bidirectional setting.

The article describes both the state-based and the edit-based version, as well as an extended example instantiation involving tree-structured data. The main focus is on edit lenses and the categorical combinators which allow for their modular construction. The article is based on three original research papers [9, 10, 11, 22] and summarises these in a concise form but does not contain new scientific material.


  1. 1.
    Abbott, M., Altenkirch, T., Ghani, N.: Containers: constructing strictly positive types. Theor. Comput. Sci. 342(1), 3–27 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Verity, D., Joyal, A., Street, R.: Traced monoidal categories. Math. Proc. Camb. Philos. Soc. 3, 447–468 (1996). Scholar
  3. 3.
    Balegas, V., Li, C., Najafzadeh, M., Porto, D., Clement, A., Duarte, S., Ferreira, C., Gehrke, J., Leitão, J., Preguiça, N.M., Rodrigues, R., Shapiro, M., Vafeiadis, V.: Geo-replication: fast if possible, consistent if necessary. IEEE Data Eng. Bull. 39(1), 81–92 (2016)Google Scholar
  4. 4.
    Dal Zilio, S., Lugiez, D.: XML schema, tree logic and sheaves automata. In: Nieuwenhuis, R. (ed.) RTA 2003. LNCS, vol. 2706, pp. 246–263. Springer, Heidelberg (2003). Scholar
  5. 5.
    Diskin, Z.: Algebraic models for bidirectional model synchronization. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 21–36. Springer, Heidelberg (2008). Scholar
  6. 6.
    Diskin, Z., Xiong, Y., Czarnecki, K., Ehrig, H., Hermann, F., Orejas, F.: From state- to delta-based bidirectional model transformations: the symmetric case. Technical report GSDLAB-TR 2011–05-03. University of Waterloo, May 2011Google Scholar
  7. 7.
    Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bi-directional tree transformations: a linguistic approach to the view update problem. ACM Trans. Program. Lang. Syst. 29(3), 17 (2007). Extended abstract in Principles of Programming Languages (POPL), 2005CrossRefzbMATHGoogle Scholar
  8. 8.
    Foster, J.N., Pierce, B.C., Schmitt, A.: A logic your typechecker can count on: unordered tree types in practice. In: PLAN-X 2007, Programming Language Technologies for XML, an ACM SIGPLAN Workshop Colocated with POPL 2007, Nice, France, 20 January 2007, pp. 80–90 (2007)Google Scholar
  9. 9.
    Hofmann, M., Pierce, B.C., Wagner, D.: Symmetric lenses. In: ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), Austin, Texas, January 2011. Full version to appear in the Journal of the ACMGoogle Scholar
  10. 10.
    Hofmann, M., Pierce, B.C., Wagner, D.: Edit lenses. In: Field, J., Hicks, M. (eds.) Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2012, Philadelphia, Pennsylvania, USA, 22–28 January 2012, pp. 495–508. ACM (2012)Google Scholar
  11. 11.
    Hofmann, M., Pierce, B.C., Wagner, D.: Edit languages for information trees. ECEASST 57 (2013).
  12. 12.
    Johnson, M., Rosebrugh, R., Wood, R.: Lenses, fibrations, and universal translations. Math. Struct. Comput. Sci. 22, 25–42 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Johnson, M., Rosebrugh, R.D., Wood, R.: Algebras and update strategies. J. Univ. Comput. Sci. 16, 729–748 (2010)MathSciNetzbMATHGoogle Scholar
  14. 14.
    Joyal, A., Street, R.: The geometry of tensor calculus, I. Adv. Math. 88(1), 55–112 (1991)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Joyal, A.: Une théorie combinatoire des séries formelles. Adv. Math. 42, 1–82 (1981). Scholar
  16. 16.
    Ko, H.-S., Zan, T., Hu, Z.: BiGUL: a formally verified core language for putback-based bidirectional programming. In: Erwig, M., Rompf, T. (eds.) Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2016, St. Petersburg, FL, USA, 20–22 January 2016, pp. 61–72. ACM (2016)Google Scholar
  17. 17.
    Matsuda, K., Wang, M.: Applicative bidirectional programming with lenses. In: Fisher, K., Reppy, J.H. (eds.) Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, ICFP 2015, Vancouver, BC, Canada, 1–3 September 2015, pp. 62–74. ACM (2015)Google Scholar
  18. 18.
    Meertens, L.: Designing constraint maintainers for user interaction (1998). ManuscriptGoogle Scholar
  19. 19.
    Stevens, P.: Bidirectional model transformations in QVT: semantic issues and open questions. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 1–15. Springer, Heidelberg (2007). Scholar
  20. 20.
    Voigtländer, J.: Bidirectionalization for free! (pearl). In: Shao, Z., Pierce, B.C. (eds.) Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2009, Savannah, GA, USA, 21–23 January 2009, pp. 165–176. ACM (2009)Google Scholar
  21. 21.
    Voigtländer, J., Hu, Z., Matsuda, K., Wang, M.: Combining syntactic and semantic bidirectionalization. In: Hudak, P., Weirich, S. (eds.) ICFP, pp. 181–192. ACM (2010)Google Scholar
  22. 22.
    Wagner, D.: Symmetric edit lenses: a new foundation for bidirectional languages. Ph.D. thesis. University of Pennsylvania (2014)Google Scholar
  23. 23.
    Xiong, Y., Song, H., Hu, Z., Takeichi, M.: Supporting parallel updates with bidirectional model transformations. In: Paige, R.F. (ed.) ICMT 2009. LNCS, vol. 5563, pp. 213–228. Springer, Heidelberg (2009). Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Martin Hofmann
    • 1
  1. 1.LMU MunichMunichGermany

Personalised recommendations