Introduction to Bidirectional Transformations

  • Faris Abou-Saleh
  • James Cheney
  • Jeremy Gibbons
  • James McKinna
  • Perdita Stevens
Chapter
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9715)

Abstract

Bidirectional transformations (BX) serve to maintain consistency between different representations of related and often overlapping information, translating changes in one representation to the others. We present a brief introduction to the field, in order to provide some common background to the remainder of this volume, which constitutes the lecture notes from the Summer School on Bidirectional Transformations, held in Oxford in July 2016 as one of the closing activities of the UK EPSRC-funded project A Theory of Least Change for Bidirectional Transformations.

References

  1. 1.
    Abou-Saleh, F., Cheney, J., Gibbons, J., McKinna, J., Stevens, P.: Notions of bidirectional computation and entangled state monads. In: Hinze, R., Voigtländer, J. (eds.) MPC 2015. LNCS, vol. 9129, pp. 187–214. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-19797-5_9CrossRefGoogle Scholar
  2. 2.
    Abou-Saleh, F., Cheney, J., Gibbons, J., McKinna, J., Stevens, P.: Reflections on monadic lenses. In: Lindley, S., McBride, C., Trinder, P., Sannella, D. (eds.) A List of Successes That Can Change the World. LNCS, vol. 9600, pp. 1–31. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-30936-1_1CrossRefGoogle Scholar
  3. 3.
    Abou-Saleh, F., McKinna, J., Gibbons, J.: Coalgebraic aspects of bidirectional computation. In: BX 2015. CEUR-WS, vol. 1396, pp. 15–30 (2015)Google Scholar
  4. 4.
    Abou-Saleh, F., McKinna, J., Gibbons, J.: Coalgebraic aspects of bidirectional computation. J. Object Technol. (2017, in press)Google Scholar
  5. 5.
    Ambler, S.W.: Mapping objects to relational databases: O/R mapping in detail (1998). http://www.agiledata.org/essays/mappingObjects.html
  6. 6.
    Angiuli, C., Morehouse, E., Licata, D.R., Harper, R.: Homotopical patch theory. In: International Conference on Functional Programming, pp. 243–256. ACM (2014)Google Scholar
  7. 7.
    Anjorin, A.: Class diagrams to database schemas v0.1. BX Repository. http://bx-community.wikidot.com/examples:classdiagramstodatabaseschemas. Accessed Jan 2017
  8. 8.
    Bancilhon, F., Spyratos, N.: Update semantics of relational views. ACM Trans. Database Syst. 6(4), 557–575 (1981)CrossRefMATHGoogle Scholar
  9. 9.
    Barbosa, D.M.J., Cretin, J., Foster, N., Greenberg, M., Pierce, B.C.: Matching lenses: alignment and view update. In: Hudak, P., Weirich, S. (eds.) International Conference on Functional Programming, pp. 193–204. ACM, New York (2010)Google Scholar
  10. 10.
    Bénabou, J., Davis, R., Dold, A., Isbell, J., MacLane, S., Oberst, U., Roos, J.-E.: Reports of the Midwest Category Seminar. LNM, vol. 47, pp. 1–77. Springer, Heidelberg (1967).  https://doi.org/10.1007/BFb0074298MATHGoogle Scholar
  11. 11.
    Benton, N., Hughes, J., Moggi, E.: Monads and effects. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, pp. 42–122. Springer, Heidelberg (2002).  https://doi.org/10.1007/3-540-45699-6_2CrossRefGoogle Scholar
  12. 12.
    Bohannon, A., Foster, J.N., Pierce, B.C., Pilkiewicz, A., Schmitt, A.: Boomerang: resourceful lenses for string data. In: Principles of Programming Languages (2008)Google Scholar
  13. 13.
    Bohannon, A., Pierce, B.C., Vaughan, J.A.: Relational lenses: a language for updatable views. In: Principles of Database Systems, pp. 338–347. ACM (2006)Google Scholar
  14. 14.
    Boyer, J.M.: W3C XForms, October 2009. https://www.w3.org/TR/xforms/
  15. 15.
    Brady, E.: Type-Driven Development with Idris. Manning Publications, Shelter Island (2017)Google Scholar
  16. 16.
    Cai, Y., Giarrusso, P.G., Rendel, T., Ostermann, K.: A theory of changes for higher-order languages: incrementalizing \(\lambda \)-calculi by static differentiation. In: Programming Language Design and Implementation, pp. 145–155. ACM (2014)Google Scholar
  17. 17.
    Cheney, J., Gibbons, J., McKinna, J., Stevens, P.: On principles of least change and least surprise for bidirectional transformations. J. Object Technol. (2017, to appear)Google Scholar
  18. 18.
    Cheney, J., McKinna, J., Stevens, P., Gibbons, J.: Towards a repository of BX examples. In: BX Workshop, March 2014Google Scholar
  19. 19.
    Cicchetti, A., Di Ruscio, D., Eramo, R., Pierantonio, A.: JTL: a bidirectional and change propagating transformation language. In: Malloy, B., Staab, S., van den Brand, M. (eds.) SLE 2010. LNCS, vol. 6563, pp. 183–202. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-19440-5_11CrossRefGoogle Scholar
  20. 20.
    Cooper, E., Lindley, S., Wadler, P., Yallop, J.: The essence of form abstraction. In: Ramalingam, G. (ed.) APLAS 2008. LNCS, vol. 5356, pp. 205–220. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-89330-1_15CrossRefGoogle Scholar
  21. 21.
    Czarnecki, K., Foster, J.N., Hu, Z., Lämmel, R., Schürr, A., Terwilliger, J.F.: Bidirectional transformations: a cross-discipline perspective. In: Paige, R.F. (ed.) ICMT 2009. LNCS, vol. 5563, pp. 260–283. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-02408-5_19CrossRefGoogle Scholar
  22. 22.
    Date, C.J.: View Updating and Relational Theory. O’Reilly, Newton (2012)Google Scholar
  23. 23.
    Diskin, Z., Xiong, Y., Czarnecki, K.: From state- to delta-based bidirectional model transformations: the asymmetric case. J. Object Technol. 10(6), 1–25 (2011)Google Scholar
  24. 24.
    Diskin, Z., Xiong, Y., Czarnecki, K., Ehrig, H., Hermann, F., Orejas, F.: From state- to delta-based bidirectional model transformations: the symmetric case. In: Whittle, J., Clark, T., Kühne, T. (eds.) MODELS 2011. LNCS, vol. 6981, pp. 304–318. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-24485-8_22CrossRefGoogle Scholar
  25. 25.
    Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.): Handbook of Graph Grammars and Computing by Graph Transformation. Applications, Languages and Tools, vol. 2. World Scientific, Singapore (1999)MATHGoogle Scholar
  26. 26.
    Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: combinators for bidirectional tree transformations: a linguistic approach to the view update problem. In: Principles of Programming Languages, pp. 233–246. ACM (2005)Google Scholar
  27. 27.
    Foster, N., Matsuda, K., Voigtländer, J.: Three complementary approaches to bidirectional programming. In: Gibbons, J. (ed.) Generic and Indexed Programming. LNCS, vol. 7470, pp. 1–46. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-32202-0_1CrossRefGoogle Scholar
  28. 28.
    Hegner, S.J.: An order-based theory of updates for closed database views. Ann. Math. Artif. Intell. 40(1–2), 63–125 (2004)MathSciNetCrossRefMATHGoogle Scholar
  29. 29.
    Hofmann, M.: Modular edit lenses. In: Gibbons, J., Stevens, P. (eds.) Summer School on Bidirectional Transformations. LNCS, vol. 9715, pp. 73–99. Springer, Cham (2018)CrossRefGoogle Scholar
  30. 30.
    Hofmann, M., Pierce, B.C., Wagner, D.: Symmetric lenses. In: Ball, T., Sagiv, M. (eds.) Principles of Programming Languages, pp. 371–384. ACM, New York (2011)Google Scholar
  31. 31.
    Hofmann, M., Pierce, B.C., Wagner, D.: Edit lenses. In: Field, J., Hicks, M. (eds.) Principles of Programming Languages, pp. 495–508. ACM, New York (2012)Google Scholar
  32. 32.
    Hu, Z., Schürr, A., Stevens, P., Terwilliger, J.F.: Bidirectional transformations “bx” (Dagstuhl Seminar 11031). Dagstuhl Rep. 1(1), 42–67 (2011)Google Scholar
  33. 33.
    Johnson, M., Rosebrugh, R.D.: Lens put-put laws: monotonic and mixed. In: BX Workshop (2012). ECEASST 49Google Scholar
  34. 34.
    Johnson, M., Rosebrugh, R.D.: Spans of lenses. In: Terwilliger, J., Hidaka, S. (eds.) BX Workshop. CEUR Workshop Proceedings, vol. 1133, pp. 112–118 (2014). CEUR-WS.orgGoogle Scholar
  35. 35.
    Johnson, M., Rosebrugh, R.D.: Unifying set-based, delta-based and edit-based lenses. In: Anjorin, A., Gibbons, J. (eds.) BX Workshop. CEUR Workshop Proceedings, vol. 1571, pp. 1–13 (2016). CEUR-WS.orgGoogle Scholar
  36. 36.
    Johnson, M., Rosebrugh, R.D., Wood, R.J.: Lenses, fibrations and universal translations. Math. Struct. Comput. Sci. 22(1), 25–42 (2012)MathSciNetCrossRefMATHGoogle Scholar
  37. 37.
    Peyton Jones, S.L., Wadler, P.: Imperative functional programming. In: Principles of Programming Languages, pp. 71–84 (1993)Google Scholar
  38. 38.
    Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: Principles of Programming Languages, pp. 333–343 (1995)Google Scholar
  39. 39.
    Luo, Z.: Computation and Reasoning: A Type Theory for Computer Science. International Series of Monographs on Computer Science. Oxford University Press, Oxford (1994)MATHGoogle Scholar
  40. 40.
    Macedo, N., Cunha, A.: Least-change bidirectional model transformation with QVT-R and ATL. Softw. Syst. Model. 15(3), 783–810 (2016)CrossRefGoogle Scholar
  41. 41.
    McKinna, J.: Bidirectional transformations are proof-relevant bisimulations. Extended Abstract Presented at ICFP Workshop TyDe, Nara, Japan (2016). https://www.youtube.com/watch?v=33RYwcIQ7UM
  42. 42.
    McKinna, J.: Bidirectional transformations with deltas: a dependently typed approach (talk proposal). In: Bx Workshop, ETAPS (2016). http://ceur-ws.org/Vol-1571/paper_11.pdf
  43. 43.
    McKinna, J.: Complements witness consistency. In: Bx Workshop, ETAPS (2016). http://ceur-ws.org/Vol-1571/paper_10.pdf
  44. 44.
    Meertens, L.: Designing constraint maintainers for user interaction. CWI, Amsterdam, June 1998. http://www.kestrel.edu/home/people/meertens/pub/dcm.ps
  45. 45.
    Meertens, L.: Designing constraint maintainers for user interaction. In: Mu, S.-C. (ed.) Third Workshop on Programmable Structured Documents, pp. 1–3. PSD Laboratory, Tokyo University (2005)Google Scholar
  46. 46.
    Microsoft. Windows Presentation Foundation (2006). https://msdn.microsoft.com/en-us/library/ms754130.aspx
  47. 47.
    Moggi, E.: Notions of computation and monads. Inf. Comput. 93(1), 55–92 (1991)MathSciNetCrossRefMATHGoogle Scholar
  48. 48.
    Neward, T.: The Vietnam of computer science, June 2006. http://blogs.tedneward.com/post/the-vietnam-of-computer-science/
  49. 49.
    Nordström, B., Petersson, K., Smith, J.: Programming in Martin-Löf’s Type Theory: An Introduction. International Series of Monographs on Computer Science, vol. 7. Oxford University Press, Oxford (1990). https://www.cse.chalmers.se/research/group/logic/book/book.pdfMATHGoogle Scholar
  50. 50.
    Norell, U.: Dependently typed programming in agda. In: Koopman, P., Plasmeijer, R., Swierstra, D. (eds.) AFP 2008. LNCS, vol. 5832, pp. 230–266. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-04652-0_5CrossRefGoogle Scholar
  51. 51.
    Pacheco, H., Hu, Z., Fischer, S.: Monadic combinators for “putback” style bidirectional programming. In: Partial Evaluation and Program Manipulation, pp. 39–50. ACM (2014)Google Scholar
  52. 52.
    Plotkin, G., Power, J.: Notions of computation determine monads. In: Nielsen, M., Engberg, U. (eds.) FoSSaCS 2002. LNCS, vol. 2303, pp. 342–356. Springer, Heidelberg (2002).  https://doi.org/10.1007/3-540-45931-6_24CrossRefGoogle Scholar
  53. 53.
    Pratt, T.W.: Pair grammars, graph languages and string-to-graph translations. J. Comput. Syst. Sci. 5(6), 560–595 (1971)MathSciNetCrossRefMATHGoogle Scholar
  54. 54.
    Rozenberg, G. (ed.): Handbook of Graph Grammars and Computing by Graph Transformation. Foundations, vol. 1. World Scientific, Singapore (1997)MATHGoogle Scholar
  55. 55.
    Schürr, A.: Specification of graph translators with triple graph grammars. In: Mayr, E.W., Schmidt, G., Tinhofer, G. (eds.) WG 1994. LNCS, vol. 903, pp. 151–163. Springer, Heidelberg (1995).  https://doi.org/10.1007/3-540-59071-4_45CrossRefGoogle Scholar
  56. 56.
    Schürr, A., Klar, F.: 15 years of triple graph grammars. In: Ehrig, H., Heckel, R., Rozenberg, G., Taentzer, G. (eds.) ICGT 2008. LNCS, vol. 5214, pp. 411–425. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-87405-8_28CrossRefGoogle Scholar
  57. 57.
    Shkaravska, O.: Side-effect monad, its equational theory and applications (2005). http://www.ioc.ee/~tarmo/tsem05/shkaravska1512-slides.pdf
  58. 58.
    Stevens, P.: ModelTests v0.1 in Bx Examples Repository. http://bx-community.wikidot.com/examples:modeltests. Accessed 6 Feb 2017
  59. 59.
    Stevens, P.: Bidirectional model transformations in QVT: semantic issues and open questions. Softw. Syst. Model. 9(1), 7–20 (2010)MathSciNetCrossRefGoogle Scholar
  60. 60.
    Stevens, P.: Observations relating to the equivalences induced on model sets by bidirectional transformations. In: BX Workshop (2012). ECEASST 49Google Scholar
  61. 61.
    Stevens, P., McKinna, J., Cheney, J.: Composers v0.1. BX Repository. http://bx-community.wikidot.com/examples:composers. Accessed Jan 2017
  62. 62.
    Swierstra, W., Löh, A.: The semantics of version control. In: Onward!, pp. 43–54 (2014)Google Scholar
  63. 63.
    Wadler, P.: Monads for functional programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 24–52. Springer, Heidelberg (1995).  https://doi.org/10.1007/3-540-59451-5_2CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of OxfordOxfordUK
  2. 2.School of InformaticsUniversity of EdinburghEdinburghUK

Personalised recommendations