Towards User-Friendly Projectional Editors

  • Markus Voelter
  • Janet Siegmund
  • Thorsten Berger
  • Bernd Kolb
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8706)


Today’s challenges for language development include language extension and composition, as well as the use of diverse notations. A promising approach is projectional editing, a technique to directly manipulate the abstract syntax tree of a program, without relying on parsers. Its potential lies in the ability to combine diverse notational styles – such as text, symbols, tables, and graphics – and the support for a wide range of composition techniques. However, projectional editing is often perceived as problematic for developers. Expressed drawbacks include the unfamiliar editing experience and challenges in the integration with existing infrastructure. In this paper we investigate the usability of projectional editors. We systematically identify usability issues resulting from the architecture. We use JetBrains Meta Programming System (MPS) as a case study. The case study discusses the concepts that MPS incorporates to address the identified issues, evaluates effectiveness of these concepts by surveying professional developers, and reports industrial experiences from realizing large-scale systems. Our results show that the benefits of flexible language composition and diverse notations come at the cost of serious usability issues – which, however, can be effectively mitigated with facilities that emulate editing experience of parser-based editors.


Graphical Editor Usability Issue Concrete Syntax Text String Language Concept 
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.
    Green, T.R.: Cognitive dimensions of notations. People and Computers V, 443–460 (1989)Google Scholar
  2. 2.
    Simonyi, C.: The death of computer languages, the birth of intentional programming. In: NATO Science Committee Conference (1995)Google Scholar
  3. 3.
    Czarnecki, K., Ulrich, E.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)Google Scholar
  4. 4.
    Medina-Mora, R., Feiler, P.H.: An Incremental Programming Environment. IEEE Trans. Software Eng. 7(5) (1981)Google Scholar
  5. 5.
    Notkin, D.: The GANDALF project. Journal of Systems and Software 5(2) (1985)Google Scholar
  6. 6.
    Porter, S.W.: Design of a syntax directed editor for psdl (prototype systems design language). Master’s thesis, Naval Postgraduate School, Monterey, CA, USA (1988)Google Scholar
  7. 7.
    Reps, T.W., Teitelbaum, T.: The Synthesizer Generator. In: First ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments. ACM (1984)Google Scholar
  8. 8.
    Voelter, M.: Language and IDE Modularization and Composition with MPS. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2011. LNCS, vol. 7680, pp. 383–430. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  9. 9.
    Simonyi, C., Christerson, M., Clifford, S.: Intentional Software. In: OOPSLA 2006. ACM (2006)Google Scholar
  10. 10.
    Christerson, M., Kolk, H.: Domain expert DSLs (2009) talk at QCon London 2009 (2009),
  11. 11.
    Diekmann, L., Tratt, L.: Parsing composed grammars with language boxes. In: Workshop on Scalable Language Specifications (2013)Google Scholar
  12. 12.
    Simi, M., Campagne, F.: Composable Languages for Bioinformatics: The NYoSh experiment. PeerJ PrePrints 1:e112v2 (2013)Google Scholar
  13. 13.
    Voelter, M., Ratiu, D., Tomassetti, F.: Requirements as first-class citizens. In: Proceedings of ACES-MB Workshop (2013)Google Scholar
  14. 14.
    Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: eclipse modeling framework. Pearson Education (2008)Google Scholar
  15. 15.
    Voelter, M., Ratiu, D., Kolb, B., Schaetz, B.: mbeddr: instantiating a language workbench in the embedded software domain. Automated Software Engineering 20(3), 1–52 (2013)CrossRefGoogle Scholar
  16. 16.
    Voelter, M.: Preliminary experience of using mbeddr. In: 10th Dagstuhl Workshop on Model-based Development of Embedded Systems, p. 10 (2014)Google Scholar
  17. 17.
    Coplien, J.O.: Multi-paradigm Design for C+. Addison-Wesley (1999)Google Scholar
  18. 18.
    Kats, L.C.L., Visser, E., Wachsmuth, G.: Pure and declarative syntax definition: paradise lost and regained. In: Proceedings of OOPSLA 2010. ACM (2010)Google Scholar
  19. 19.
    Parr, T.J., Quong, R.W.: ANTLR: A Predicated-LL(k) Parser Generator. Software: Practice and Experience 25(7) (1995)Google Scholar
  20. 20.
    Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF - reference manual. SIGPLAN 24(11) (1989)Google Scholar
  21. 21.
    Bravenboer, M., Dolstra, E., Visser, E.: Preventing injection attacks with syntax embeddings. In: GPCE 2007, Salzburg, Austria. ACM (2007)Google Scholar
  22. 22.
    Wyk, E.V., Bodin, D., Gao, J., Krishnan, L.: Silver: an Extensible Attribute Grammar System. ENTCS 203(2) (2008)Google Scholar
  23. 23.
    Lämmel, R., Wachsmuth, G.: Transformation of sdf syntax definitions in the asf+ sdf meta-environment. Electronic Notes in Theoretical Computer Science 44(2), 9–33 (2001)CrossRefGoogle Scholar
  24. 24.
    Anderson, R.: Two-dimensional mathematical notation. In: Fu, K. (ed.) Syntactic Pattern Recognition, Applications. Communication and Cybernetics, vol. 14. Springer (1977)Google Scholar
  25. 25.
    Helm, R., Marriott, K., Odersky, M.: Building visual language parsers. In: Proc. ACM SIGCHI Conf. on Human Factors in Computing Systems, pp. 105–112 (1991)Google Scholar
  26. 26.
    Giammarresi, D., Restivo, A.: Two-dimensional languages. In: Rozenberg, G., Salomaa, A. (eds.) Handbook of Formal Languages. Springer (1997)Google Scholar
  27. 27.
    Pruša, D.: Two-dimensional context-free grammars. In: ITAT 2001, pp. 27–40 (2001)Google Scholar
  28. 28.
    van Rest, O., Wachsmuth, G., Steel, J.R.H., Süß, J.G., Visser, E.: Robust real-time synchronization between textual and graphical editors. In: Duddy, K., Kappel, G. (eds.) ICMB 2013. LNCS, vol. 7909, pp. 92–107. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  29. 29.
    Voelter, M.: Integrating prose as first-class citizens with models and code. In: 7th International Workshop on Multi-Paradigm Modeling, MPM 2013, p. 17 (2013)Google Scholar
  30. 30.
  31. 31.
    Likert, R.: A technique for the measurement of attitudes. Archives of Psychology (1932)Google Scholar
  32. 32.
    Nielsen, J.: Usability Engineering. Morgan Kaufmann Publishers (1994)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Markus Voelter
    • 1
  • Janet Siegmund
    • 2
  • Thorsten Berger
    • 3
  • Bernd Kolb
    • 4
  1. 1.independent/itemisStuttgartGermany
  2. 2.Universität PassauPassauGermany
  3. 3.University of WaterlooWaterlooCanada
  4. 4.itemis AGStuttgartGermany

Personalised recommendations