Robust Real-Time Synchronization between Textual and Graphical Editors

  • Oskar van Rest
  • Guido Wachsmuth
  • Jim R. H. Steel
  • Jörn Guy Süß
  • Eelco Visser
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7909)


In modern Integrated Development Environments (IDEs), textual editors are interactive and can handle intermediate, incomplete, or otherwise erroneous texts while still providing editor services such as syntax highlighting, error marking, outline views, and hover help. In this paper, we present an approach for the robust synchronization of interactive textual and graphical editors. The approach recovers from errors during parsing and text-to-model synchronization, preserves textual and graphical layout in the presence of erroneous texts and models, and provides synchronized editor services such as selection sharing and navigation between editors. It was implemented for synchronizing textual editors generated by the Spoofax language workbench and graphical editors generated by the Graphical Modeling Framework.


Behavior Tree Error Recovery Graphical Editor Concrete Syntax Graphical Layout 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bravenboer, M., Kalleberg, K.T., Vermaas, R., Visser, E.: Stratego/XT 0.17. A language and toolset for program transformation. SCP 72(1-2), 52–70 (2008)MathSciNetGoogle Scholar
  2. 2.
    Brun, C., Pierantonio, A.: Model differences in the Eclipse Modeling Framework. In: UPGRADE, IX (April 2008)Google Scholar
  3. 3.
    Colvin, R., Hayes, I.J.: A semantics for Behavior Trees using CSP with specification commands. SCP 76(10), 891–914 (2011)zbMATHGoogle Scholar
  4. 4.
    de Jonge, M., Nilsson-Nyman, E., Kats, L.C.L., Visser, E.: Natural and flexible error recovery for generated parsers. In: van den Brand, M., Gašević, D., Gray, J. (eds.) SLE 2009. LNCS, vol. 5969, pp. 204–223. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  5. 5.
    de Jonge, M., Visser, E.: An algorithm for layout preservation in refactoring transformations. In: Sloane, A., Aßmann, U. (eds.) SLE 2011. LNCS, vol. 6940, pp. 40–59. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  6. 6.
    Dmitriev, S.: Language oriented programming: The next programming paradigm (2004)Google Scholar
  7. 7.
    Dromey, R.G.: From requirements to design: Formalizing the key steps. In: SEFM, pp. 2–11 (2003)Google Scholar
  8. 8.
    Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: OOPSLA, pp. 307–309 (2010)Google Scholar
  9. 9.
    Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF - reference manual. SIGPLAN 24(11), 43–75 (1989)CrossRefGoogle Scholar
  10. 10.
    Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and refinement of textual syntax for models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  11. 11.
    Hemel, Z., Kats, L.C.L., Groenewegen, D.M., Visser, E.: Code generation by model transformation: a case study in transformation modularity. SoSyM 9(3), 375–402 (2010)CrossRefGoogle Scholar
  12. 12.
    Jouault, F., Bézivin, J., Kurtev, I.: TCS: a DSL for the specification of textual concrete syntaxes in model engineering. In: GPCE, pp. 249–254 (2006)Google Scholar
  13. 13.
    Kats, L.C.L., Visser, E.: The Spoofax language workbench: rules for declarative specification of languages and IDEs. In: OOPSLA, pp. 444–463 (2010)Google Scholar
  14. 14.
    Konat, G., Kats, L., Wachsmuth, G., Visser, E.: Declarative name binding and scope rules. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 311–331. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  15. 15.
    Krahn, H., Rumpe, B., Völkel, S.: Integrated definition of abstract and concrete syntax for textual languages. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 286–300. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  16. 16.
    Mülder, A., Nyßen, A.: TMF meets GMF. Kombination textueller und grafischer Editoren. Eclipse Magazin 3, 74–78 (2011) (in German)Google Scholar
  17. 17.
    Myers, T.: TextBE: A textual editor for behavior engineering. In: ISSEC (2011)Google Scholar
  18. 18.
    Object Management Group. Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification. Version 1.1 (January 2011)Google Scholar
  19. 19.
    Scheidgen, M.: Integrating content assist into textual modelling editors. In: Modellierung, pp. 121–131 (2008)Google Scholar
  20. 20.
    Scheidgen, M.: Textual modelling embedded into graphical modelling. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 153–168. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  21. 21.
    Simonyi, C.: The death of computer languages, the birth of intentional programming. In: NATO Science Committee Conference (1995)Google Scholar
  22. 22.
    Smith, C., Winter, K., Hayes, I.J., Dromey, R.G., Lindsay, P.A., Carrington, D.A.: An environment for building a system out of its requirements. In: ASE, pp. 398–399 (2004)Google Scholar
  23. 23.
    Steel, J., Raymond, K.: Generating human-usable textual notations for information models. In: EDOC, pp. 250–261 (2001)Google Scholar
  24. 24.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework, 2nd edn. Addison-Wesley (2009)Google Scholar
  25. 25.
    van der Storm, T., Cook, W.R., Loh, A.: Object grammars: Compositional & bidirectional mapping between text and graphs. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 4–23. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  26. 26.
    Visser, E.: A family of syntax definition formalisms. Technical Report P9706, Programming Research Group, University of Amsterdam (August 1997)Google Scholar
  27. 27.
    Wen, L., Colvin, R., Lin, K., Seagrott, J., Yatapanage, N., Dromey, R.G.: “Integrare”, a collaborative environment for behavior-oriented design. In: Luo, Y. (ed.) CDVE 2007. LNCS, vol. 4674, pp. 122–131. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  28. 28.
    Xing, Z., Stroulia, E.: UMLDiff: an algorithm for object-oriented design differencing. In: ASE, pp. 54–65 (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Oskar van Rest
    • 1
    • 2
  • Guido Wachsmuth
    • 1
    • 3
  • Jim R. H. Steel
    • 2
  • Jörn Guy Süß
    • 2
  • Eelco Visser
    • 1
  1. 1.Delft University of TechnologyThe Netherlands
  2. 2.The University of QueenslandAustralia
  3. 3.Oracle LabsRedwood ShoresUSA

Personalised recommendations