Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Abbott, M., Altenkirch, T., Ghani, N.: Containers: constructing strictly positive types. Theor. Comput. Sci. 342(1), 3–27 (2005)
Verity, D., Joyal, A., Street, R.: Traced monoidal categories. Math. Proc. Camb. Philos. Soc. 3, 447–468 (1996). https://en.wikipedia.org/wiki/Traced_monoidal_category
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)
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). https://doi.org/10.1007/3-540-44881-0_18
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). https://doi.org/10.1007/978-3-540-87875-9_2
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 2011
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), 2005
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)
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 ACM
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)
Hofmann, M., Pierce, B.C., Wagner, D.: Edit languages for information trees. ECEASST 57 (2013). https://doi.org/10.14279/tuj.eceasst.57.872
Johnson, M., Rosebrugh, R., Wood, R.: Lenses, fibrations, and universal translations. Math. Struct. Comput. Sci. 22, 25–42 (2012)
Johnson, M., Rosebrugh, R.D., Wood, R.: Algebras and update strategies. J. Univ. Comput. Sci. 16, 729–748 (2010)
Joyal, A., Street, R.: The geometry of tensor calculus, I. Adv. Math. 88(1), 55–112 (1991)
Joyal, A.: Une théorie combinatoire des séries formelles. Adv. Math. 42, 1–82 (1981). https://en.wikipedia.org/wiki/Combinatorial_species
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)
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)
Meertens, L.: Designing constraint maintainers for user interaction (1998). Manuscript
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). https://doi.org/10.1007/978-3-540-75209-7_1
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)
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)
Wagner, D.: Symmetric edit lenses: a new foundation for bidirectional languages. Ph.D. thesis. University of Pennsylvania (2014)
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). https://doi.org/10.1007/978-3-642-02408-5_15
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this chapter
Cite this chapter
Hofmann, M. (2018). Modular Edit Lenses. In: Gibbons, J., Stevens, P. (eds) Bidirectional Transformations. Lecture Notes in Computer Science(), vol 9715. Springer, Cham. https://doi.org/10.1007/978-3-319-79108-1_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-79108-1_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-79107-4
Online ISBN: 978-3-319-79108-1
eBook Packages: Computer ScienceComputer Science (R0)