Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Green, T.R.: Cognitive dimensions of notations. People and Computers V, 443–460 (1989)
Simonyi, C.: The death of computer languages, the birth of intentional programming. In: NATO Science Committee Conference (1995)
Czarnecki, K., Ulrich, E.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)
Medina-Mora, R., Feiler, P.H.: An Incremental Programming Environment. IEEE Trans. Software Eng. 7(5) (1981)
Notkin, D.: The GANDALF project. Journal of Systems and Software 5(2) (1985)
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)
Reps, T.W., Teitelbaum, T.: The Synthesizer Generator. In: First ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments. ACM (1984)
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)
Simonyi, C., Christerson, M., Clifford, S.: Intentional Software. In: OOPSLA 2006. ACM (2006)
Christerson, M., Kolk, H.: Domain expert DSLs (2009) talk at QCon London 2009 (2009), http://www.infoq.com/presentations/DSL-Magnus-Christerson-Henk-Kolk
Diekmann, L., Tratt, L.: Parsing composed grammars with language boxes. In: Workshop on Scalable Language Specifications (2013)
Simi, M., Campagne, F.: Composable Languages for Bioinformatics: The NYoSh experiment. PeerJ PrePrints 1:e112v2 (2013)
Voelter, M., Ratiu, D., Tomassetti, F.: Requirements as first-class citizens. In: Proceedings of ACES-MB Workshop (2013)
Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: eclipse modeling framework. Pearson Education (2008)
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)
Voelter, M.: Preliminary experience of using mbeddr. In: 10th Dagstuhl Workshop on Model-based Development of Embedded Systems, p. 10 (2014)
Coplien, J.O.: Multi-paradigm Design for C+. Addison-Wesley (1999)
Kats, L.C.L., Visser, E., Wachsmuth, G.: Pure and declarative syntax definition: paradise lost and regained. In: Proceedings of OOPSLA 2010. ACM (2010)
Parr, T.J., Quong, R.W.: ANTLR: A Predicated-LL(k) Parser Generator. Software: Practice and Experience 25(7) (1995)
Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF - reference manual. SIGPLAN 24(11) (1989)
Bravenboer, M., Dolstra, E., Visser, E.: Preventing injection attacks with syntax embeddings. In: GPCE 2007, Salzburg, Austria. ACM (2007)
Wyk, E.V., Bodin, D., Gao, J., Krishnan, L.: Silver: an Extensible Attribute Grammar System. ENTCS 203(2) (2008)
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)
Anderson, R.: Two-dimensional mathematical notation. In: Fu, K. (ed.) Syntactic Pattern Recognition, Applications. Communication and Cybernetics, vol. 14. Springer (1977)
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)
Giammarresi, D., Restivo, A.: Two-dimensional languages. In: Rozenberg, G., Salomaa, A. (eds.) Handbook of Formal Languages. Springer (1997)
Pruša, D.: Two-dimensional context-free grammars. In: ITAT 2001, pp. 27–40 (2001)
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)
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)
Online Appendix, http://gsd.uwaterloo.ca/projectional-workbenches
Likert, R.: A technique for the measurement of attitudes. Archives of Psychology (1932)
Nielsen, J.: Usability Engineering. Morgan Kaufmann Publishers (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Voelter, M., Siegmund, J., Berger, T., Kolb, B. (2014). Towards User-Friendly Projectional Editors. In: Combemale, B., Pearce, D.J., Barais, O., Vinju, J.J. (eds) Software Language Engineering. SLE 2014. Lecture Notes in Computer Science, vol 8706. Springer, Cham. https://doi.org/10.1007/978-3-319-11245-9_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-11245-9_3
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-11244-2
Online ISBN: 978-3-319-11245-9
eBook Packages: Computer ScienceComputer Science (R0)