Customizing host IDE for non-programming users of pure embedded DSLs

Pure embedding as an implementation strategy of domain-specific languages (DSLs) benefits from low implementation costs. On the other hand, it introduces undesired syntactic noise that impedes involvement of non-programming domain experts. Due to this, pure embedded DSLs are generally not intended for, nor used by, non-programmers. In this work, we try to challenge this state by experimenting with inexpensive customizations of the host IDE (Integrated Development Environment) to reduce the negative impact of syntactic noise. We present several techniques and recommendations based on standard IDE features (e.g., file templates, code folding, etc.) that aim to reduce syntactic noise and generally improve the user experience with pure embedded DSLs. The techniques are presented using a NetBeans IDE case study. The goal of the proposed techniques is to improve the user experience with pure embedded DSLs with a focus on the involvement of non-programming domain experts (or non-programmers in general). The proposed techniques were evaluated using a controlled experiment. The experiment compared a group using Ruby and non-modified RubyMine IDE versus a group using Java and NetBeans IDE customized to use the proposed techniques. Experiment results indicate that even inexpensive host IDE customizations can significantly alleviate issues caused by the syntactic noise: Java with its inflexible syntax performed better than Ruby with its concise syntax. We aim to reduce effects of syntactic noise in pure embedded DSLs.We show five inexpensive techniques how a host IDE can be customization for a pure embedded DSL.The techniques are exemplified by a case study with the NetBeans IDE.A controlled experiment with non-programmers was performed.The results show that IDE support is an important factor to consider when selecting a host language.

[1]  Paul Hudak,et al.  Domain Specific Languages , 1998 .

[2]  Torsten Grust,et al.  A Deep Embedding of Queries into Ruby , 2012, 2012 IEEE 28th International Conference on Data Engineering.

[3]  Benoît Combemale,et al.  Leveraging Software Product Lines Engineering in the development of external DSLs: A systematic literature review , 2016, Comput. Lang. Syst. Struct..

[4]  Debasish Ghosh DSL for the uninitiated , 2011, CACM.

[5]  Ján Kollár,et al.  Extensible Host Language for Domain-Specific Languages , 2016, Comput. Informatics.

[6]  Bernhard Rumpe,et al.  MontiCore: a framework for the development of textual domain specific languages , 2008, ICSE Companion '08.

[7]  Eelco Visser,et al.  MetaBorg in Action: Examples of Domain-Specific Language Embedding and Assimilation Using Stratego/XT , 2005, GTTSE.

[8]  Poul-Henning Kamp The one-second war , 2011, CACM.

[9]  Marjan Mernik,et al.  Towards building a forensics aware language for secure logging , 2014, Comput. Sci. Inf. Syst..

[10]  R. Berger,et al.  P Values Maximized Over a Confidence Set for the Nuisance Parameter , 1994 .

[11]  Borivoj Melichar,et al.  Efficient determinization of visibly and height-deterministic pushdown automata , 2016, Comput. Lang. Syst. Struct..

[12]  Oscar Nierstrasz,et al.  Bounded seas , 2015, Comput. Lang. Syst. Struct..

[13]  Hung Viet Nguyen,et al.  Varis: IDE Support for Embedded Client Code in PHP Web Applications , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[14]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[15]  Markus Völter,et al.  Towards User-Friendly Projectional Editors , 2014, SLE.

[16]  Valentino Vranic,et al.  Animating Organizational Patterns , 2015, 2015 IEEE/ACM 8th International Workshop on Cooperative and Human Aspects of Software Engineering.

[17]  Ulrik Pagh Schultz,et al.  Towards tool support for spreadsheet-based domain-specific languages , 2016 .

[18]  Marjan Mernik,et al.  A preliminary study on various implementation approaches of domain-specific language , 2008, Inf. Softw. Technol..

[19]  Steve Freeman,et al.  Evolving an embedded domain-specific language in Java , 2006, OOPSLA '06.

[20]  H. Conrad Cunningham,et al.  A little language for surveys: constructing an internal DSL in Ruby , 2008, ACM-SE 46.

[21]  Ivan Lukovic,et al.  Generic and standard database constraint meta-models , 2014, Comput. Sci. Inf. Syst..

[22]  Tijs van der Storm,et al.  Extensible language implementation with object algebras (short paper) , 2015 .

[23]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[24]  Shigeru Chiba,et al.  Do we really need to extend syntax for advanced modularity? , 2012, AOSD '12.

[25]  Tore Dybå,et al.  A systematic review of statistical power in software engineering experiments , 2006, Inf. Softw. Technol..

[26]  Martin Fowler,et al.  Domain-Specific Languages , 2010, The Addison-Wesley signature series.

[27]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[28]  Michael Eichberg,et al.  Incremental concrete syntax for embedded languages with support for separate compilation , 2013, Sci. Comput. Program..

[29]  Marjan Mernik,et al.  An object-oriented approach to language compositions for software language engineering , 2013, J. Syst. Softw..

[30]  Emina Torlak,et al.  Growing solver-aided languages with rosette , 2013, Onward!.

[31]  Eelco Visser,et al.  The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge , 2013, SLE.

[32]  Shigeru Chiba,et al.  Almost first-class language embedding: taming staged embedded DSLs , 2016 .

[33]  Matús Sulír,et al.  Language composition using source code annotations , 2016, Comput. Sci. Inf. Syst..

[34]  Eelco Visser,et al.  Growing a language environment with editor libraries , 2011, GPCE '11.

[35]  Jana Schumann,et al.  Confounding parameters on program comprehension: a literature survey , 2015, Empirical Software Engineering.

[36]  Jaroslav Porubän,et al.  XML to annotations mapping definition with patterns , 2014, Comput. Sci. Inf. Syst..

[37]  Marjan Mernik,et al.  Domain-Specific Languages: A Systematic Mapping Study , 2016, Inf. Softw. Technol..

[38]  Marcin Woźniak,et al.  Graphic object feature extraction system based on Cuckoo Search Algorithm , 2016, Expert Syst. Appl..

[39]  Silvio Romero de Lemos Meira,et al.  A Systematic Mapping Study on Domain-Specific Languages , 2012, ICSEA 2012.

[40]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[41]  Matús Sulír,et al.  Recording concerns in source code using annotations , 2016, Comput. Lang. Syst. Struct..

[42]  Diomidis Spinellis,et al.  Notable design patterns for domain-specific languages , 2001, J. Syst. Softw..

[43]  Vadim Zaytsev,et al.  Open and Original Problems in Software Language Engineering 2015 Workshop Report , 2015, SOEN.

[44]  Oscar Nierstrasz,et al.  Embedding Languages without Breaking Tools , 2010, ECOOP.

[45]  Jeffrey C. Carver,et al.  A checklist for integrating student empirical studies with research and teaching goals , 2010, Empirical Software Engineering.

[46]  Jeffrey C. Carver,et al.  Program comprehension of domain-specific and general-purpose languages: comparison using a family of experiments , 2011, Empirical Software Engineering.

[47]  Eelco Visser,et al.  Evaluating and comparing language workbenches: Existing results and benchmarks for the future , 2015, Comput. Lang. Syst. Struct..

[48]  Jaroslav Porubän,et al.  Leveraging Program Comprehension with Concern-oriented Source Code Projections , 2014, SLATE.

[49]  Edoardo Vacchi,et al.  Neverlang: A framework for feature-oriented language development , 2015, Comput. Lang. Syst. Struct..

[50]  Jeffrey C. Carver,et al.  Issues in using students in empirical studies in software engineering education , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).