Bidirectional Transformations pp 1-28 | Cite as
Introduction to Bidirectional Transformations
Chapter
First Online:
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.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.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.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.Abou-Saleh, F., McKinna, J., Gibbons, J.: Coalgebraic aspects of bidirectional computation. J. Object Technol. (2017, in press)Google Scholar
- 5.Ambler, S.W.: Mapping objects to relational databases: O/R mapping in detail (1998). http://www.agiledata.org/essays/mappingObjects.html
- 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.Anjorin, A.: Class diagrams to database schemas v0.1. BX Repository. http://bx-community.wikidot.com/examples:classdiagramstodatabaseschemas. Accessed Jan 2017
- 8.Bancilhon, F., Spyratos, N.: Update semantics of relational views. ACM Trans. Database Syst. 6(4), 557–575 (1981)CrossRefMATHGoogle Scholar
- 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.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.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.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.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.Boyer, J.M.: W3C XForms, October 2009. https://www.w3.org/TR/xforms/
- 15.Brady, E.: Type-Driven Development with Idris. Manning Publications, Shelter Island (2017)Google Scholar
- 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.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.Cheney, J., McKinna, J., Stevens, P., Gibbons, J.: Towards a repository of BX examples. In: BX Workshop, March 2014Google Scholar
- 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.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.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.Date, C.J.: View Updating and Relational Theory. O’Reilly, Newton (2012)Google Scholar
- 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.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.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.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.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.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.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.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.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.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.Johnson, M., Rosebrugh, R.D.: Lens put-put laws: monotonic and mixed. In: BX Workshop (2012). ECEASST 49Google Scholar
- 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.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.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.Peyton Jones, S.L., Wadler, P.: Imperative functional programming. In: Principles of Programming Languages, pp. 71–84 (1993)Google Scholar
- 38.Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: Principles of Programming Languages, pp. 333–343 (1995)Google Scholar
- 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.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.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.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.McKinna, J.: Complements witness consistency. In: Bx Workshop, ETAPS (2016). http://ceur-ws.org/Vol-1571/paper_10.pdf
- 44.Meertens, L.: Designing constraint maintainers for user interaction. CWI, Amsterdam, June 1998. http://www.kestrel.edu/home/people/meertens/pub/dcm.ps
- 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.Microsoft. Windows Presentation Foundation (2006). https://msdn.microsoft.com/en-us/library/ms754130.aspx
- 47.Moggi, E.: Notions of computation and monads. Inf. Comput. 93(1), 55–92 (1991)MathSciNetCrossRefMATHGoogle Scholar
- 48.Neward, T.: The Vietnam of computer science, June 2006. http://blogs.tedneward.com/post/the-vietnam-of-computer-science/
- 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.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.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.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.Pratt, T.W.: Pair grammars, graph languages and string-to-graph translations. J. Comput. Syst. Sci. 5(6), 560–595 (1971)MathSciNetCrossRefMATHGoogle Scholar
- 54.Rozenberg, G. (ed.): Handbook of Graph Grammars and Computing by Graph Transformation. Foundations, vol. 1. World Scientific, Singapore (1997)MATHGoogle Scholar
- 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.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.Shkaravska, O.: Side-effect monad, its equational theory and applications (2005). http://www.ioc.ee/~tarmo/tsem05/shkaravska1512-slides.pdf
- 58.Stevens, P.: ModelTests v0.1 in Bx Examples Repository. http://bx-community.wikidot.com/examples:modeltests. Accessed 6 Feb 2017
- 59.Stevens, P.: Bidirectional model transformations in QVT: semantic issues and open questions. Softw. Syst. Model. 9(1), 7–20 (2010)MathSciNetCrossRefGoogle Scholar
- 60.Stevens, P.: Observations relating to the equivalences induced on model sets by bidirectional transformations. In: BX Workshop (2012). ECEASST 49Google Scholar
- 61.Stevens, P., McKinna, J., Cheney, J.: Composers v0.1. BX Repository. http://bx-community.wikidot.com/examples:composers. Accessed Jan 2017
- 62.Swierstra, W., Löh, A.: The semantics of version control. In: Onward!, pp. 43–54 (2014)Google Scholar
- 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