Skip to main content
Log in

Domain-Specific Language Techniques for Visual Computing: A Comprehensive Study

  • Original Paper
  • Published:
Archives of Computational Methods in Engineering Aims and scope Submit manuscript

Abstract

As a part of domain-specific development, Domain-Specific Language (DSL) is widely used in both the academia and industry to solve different aspects of the problems in engineering. A DSL is a customized language whose expressiveness is tailored to a well-defined application domain, so as to offer an effective interface for the domain experts. To mitigate the programming complexity of the General-Purpose Programming Languages, and meanwhile maintain the precise expression towards some exact engineering domains, DSLs present a higher level of abstraction than low-level interfaces, while providing much more flexibility than high-level interfaces. Nevertheless, it lacks a survey to have a systematic overview of the essential commonalities shared by those works. In this survey, we take a brand-new perspective, to categorize the state-of-the-art works into different categories, tailored to three fundamental implementation concerns of DSLs: abstract syntax, concrete syntax, and semantics. Specifically, they are characterized according to their parsing and mapping strategy (external/internal) between the abstract syntax and concrete syntax, the mapping results (textual/graphical symbols), and also the functions they emphasize (modeling, visualizing, etc.). Integrated with the literature, we finally summarized the research overview of DSLs.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

References

  1. Nardi Bonnie A (1993) A small matter of programming: perspectives on end user computing. MIT Press, Cambridge

    Book  Google Scholar 

  2. Kapre N, Bayliss S (2016) Survey of domain-specific languages for FPGA computing. In: International Conference on Field Programmable Logic and Applications (FPL), pages 1–12. IEEE

  3. Collins C, Penn G, Carpendale S (2009) BubbleSets: Revealing set relations with isocontours over existing visualizations. IEEE Trans Visual Comput Graph 15(6):1009–1016

    Article  Google Scholar 

  4. Jones M, Scaffidi C (2011) Obstacles and opportunities with using visual and domain-specific languages in scientific programming. In: 2011 IEEE symposium on visual languages and human-centric computing (VL/HCC). IEEE, pp 9–16

  5. Portugal I, Alencar P, Cowan D (2016) A Preliminary Survey on Domain-Specific Languages for Machine Learning in Big Data. In: IEEE International Conference on Software Science, Technology and Engineering. IEEE, pp 108–110

  6. Rautek Peter, Bruckner Stefan, Grller Eduard, Hadwiger Markus (2014) Vislang: a system for interpreted domain-specific languages for scientific visualization. IEEE Trans Visual Comput Graph 20(12):2388–2396

    Article  Google Scholar 

  7. Harel D, Rumpe B (2004) Meaningful modeling: what’s the semantics of “semantics”? Computer 37(10):64–72

    Article  Google Scholar 

  8. Méndez-Acuña D, Galindo José A, Degueule T, Combemale B, Baudry B (2016) Leveraging software product lines engineering in the development of external DSLs: a systematic literature review. Comput Lang Syst Struct 46:206–235

    Google Scholar 

  9. Zdun U, Strembeck M (2009) Reusable architectural decisions for DSL design: foundational decisions in DSLs development. In: European Conference on Pattern Languages of Programs. CEUR-WS, pp B6(1–37)

  10. Brown Kevin J , Sujeeth Arvind K , Lee Hyouk J, Rompf T, Chafi H, Odersky M, Olukotun K (2011) A heterogeneous parallel framework for domain-specific languages. In: 2011 International conference on parallel architectures and compilation techniques. IEEE, pp 89–100

  11. Johanson AN, Hasselbring W (2014) Hierarchical combination of internal and external domain-specific languages for scientific computing. In: Proceedings of the 2014 European conference on software architecture workshops, pp 1–8

  12. Mernik M, Heering J, Sloane AM (2005) When and how to develop domain-specific languages. ACM Comput Surv (CSUR) 37(4):316–344

    Article  Google Scholar 

  13. Renggli L, Gîrba T (2009) Why smalltalk wins the host languages shootout. In: Proceedings of the international workshop on smalltalk technologies, pp 107–113

  14. Jézéquel J-M, Méndez-Acuna D, Degueule T, Combemale B, Barais O (2015) When systems engineering meets software language engineering. Complex systems design & management. Springer, New York, pp 1–13

    Google Scholar 

  15. Cosentino V, Tisi M, Izquierdo Javier LC (2015) A model-driven approach to generate external DSLs from object-oriented apis. In: International conference on current trends in theory and practice of informatics. Springer, New York, pp 423–435

  16. Kindlmann Gordon L, Chiw Charisee, Seltzer Nicholas, Samuels Lamont, Reppy John H (2016) Diderot: a domain-specific language for portable parallel scientific visualization and image analysis. IEEE Trans Visual Comput Graph 22(1):867–876

    Article  Google Scholar 

  17. Hong S, Chafi H, Sedlar E, Olukotun K (2012) Green-Marl: a DSL for easy and efficient graph analysis. In: Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems, pp 349–362

  18. Barringer H, Rydeheard D, Havelund K (2008) Rule systems for run-time monitoring: from eagle to ruler. J Log Comput 20(3):675–706

    Article  MathSciNet  Google Scholar 

  19. Barringer H, Groce A, Havelund K, Smith M (2010) Formal analysis of log files. J Aerospace Comput Inform Commun 7(11):365–390

    Article  Google Scholar 

  20. Barringer H, Goldberg A , Havelund K, Sen K (2004) Rule-based runtime verification. In: International workshop on verification, model checking, and abstract interpretation. Springer, New York, pp 44–57

  21. d’Amorim M, Havelund K (2005) Event-based runtime verification of java programs. ACM SIGSOFT Software Eng Notes 30(4):1–7

    Article  Google Scholar 

  22. Barringer H, Havelund K (2011) Internal versus external DSLs for trace analysis. In: International conference on runtime verification. Springer, New York, pp 1–3

  23. Stahl T, Voelter M, Czarnecki K (2006) Model-driven software development: technology, engineering, management. Wiley, Hoboken

  24. Eysholdt M, Behrens H (2010) Xtext: implement your language faster than the quick and dirty way. In: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, pp 307–309

  25. Beyak L, Carette J (2011) SAGA: a DSL for story management. arXiv preprint arXiv:1109.0776

  26. George L, Wider A, Scheidgen M (2012) Type-safe model transformation languages as internal DSLs in scala. In: International conference on theory and practice of model transformations. Springer, New York, pp 160–175

  27. Paul H (1996) Building domain-specific embedded languages. ACM Comput Surv 28(4es):196es

  28. Barringer H, Havelund K (2011) TraceContract: a scala DSL for trace analysis. In: International symposium on formal methods. Springer, New York, pp 57–72

  29. Günther S (2009) Agile DSL-engineering and patterns in ruby. Otto-von-Guericke-Universität Magdeburg, Technical report (Internet) FIN-018-2009

  30. Chafi H, Sujeeth AK, Brown KJ, Lee HJ, Atreya AR, Olukotun K (2011) A domain-specific approach to heterogeneous parallelism. ACM SIGPLAN Notices 46(8):35–46

    Article  Google Scholar 

  31. Choi H, Choi W, Quan TM, Hildebrand D, Pfister H, Jeong WK (2014) Vivaldi: a domain-specific language for volume processing and visualization on distributed heterogeneous systems. IEEE Trans Visual Comput Graph 20(12):2407–2416

    Article  Google Scholar 

  32. Rompf T, Odersky M (2010) Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs. In: Proceedings of the ninth international conference on Generative programming and component engineering, pp 127–136

  33. Ragan-Kelley J, Adams A, Paris S, Levoy M, Amarasinghe SP, Durand F (2012) Decoupling algorithms from schedules for easy optimization of image processing pipelines. ACM Trans Graph 31(4):32:1–32:12

    Article  Google Scholar 

  34. Anderson L, Li T-M, Lehtinen J, Durand F (2017) Aether: an embedded domain specific sampling language for monte carlo rendering. ACM Trans Graph 36(4):99:1–99:16

  35. Karnick P, Jeschke S, Cline D, Razdan A, Wentz E, Wonka P (2009) A shape grammar for developing glyph-based visualizations. Comput Graph Forum 28(8):2176–2188

    Article  Google Scholar 

  36. Günther S, Sunkle S (2009) Feature-oriented programming with ruby. In: Proceedings of the first international workshop on feature-oriented software development, pp 11–18

  37. Duke DJ, Borgo R, Wallace M, Runciman C (2009) Huge data but small programs: visualization design via multiple embedded DSLs. In: Practical aspects of declarative languages, 11th international symposium, PADL 2009, pp 31–45

  38. Thomas D, Hunt A, Fowler C (2005) Programming Ruby: the pragmatic programmers’ guide. Pragmatic Bookshelf, Raleigh

    Google Scholar 

  39. Díaz O, Puente G (2011) a DSL for corporate wiki initialization. In: International conference on advanced information systems engineering. Springer, New York, pp 237–251

  40. Merkle B (2010) Textual modeling tools: overview and comparison of language workbenches. In: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, pp 139–148

  41. Marques E, Balegas V, Barroca BF, Barisic A, Amaral V (2012) The RPG DSL: a case study of language engineering using MDD for generating RPG games for mobile phones. In: Proceedings of the 2012 workshop on domain-specific modeling, pp 13–18

  42. Cook S, Jones G, Kent S, Wills AC (2007) Domain-specific development with visual studio DSL tools. Pearson Education, London

    Google Scholar 

  43. Guerra E, De Lara J (2006) Model view management with triple graph transformation systems. In: International conference on graph transformation. Springer, New York, pp 351–366

  44. Andrés FP, De Lara J, Guerra E (2007) Domain specific languages with graphical and textual views. In: International symposium on applications of graph transformations with industrial relevance. Springer, New York, pp 82–97

  45. Jouault F, Bézivin J, Kurtev I (2006) TCS: a DSL for the specification of textual concrete syntaxes in model engineering. In: Proceedings of the 5th international conference on Generative programming and component engineering, pp 249–254

  46. Fowler M (2005) Language workbenches: The killer-app for domain specific languages. In: Lambda the Ultimate

  47. Pfeiffer M, Pichler J (2008) A comparison of tool support for textual domain-specific languages. In: Proceedings of the 8th OOPSLA workshop on domain-specific modeling, pp 1–7

  48. Charles P, Fuhrer RM, Sutton Jr SM (2007) Imp: a meta-tooling platform for creating language-specific ides in eclipse. In: Proceedings of the twenty-second IEEE/ACM international conference on automated software engineering, pp 485–488

  49. Grönniger H, Krahn H, Rumpe B, Schindler M, Völkel S (2008) Monticore: a framework for the development of textual domain specific languages. In: Companion of the 30th international conference on Software engineering, pp 925–926

  50. Krahn H, Rumpe B, Völkel S (2014) Efficient editor generation for compositional DSLs in eclipse. arXiv preprint arXiv:1409.6625

  51. Friese P, Efftinge S, Köhnlein J (2008) Build your own textual DSL with tools from the eclipse modeling project. In: Eclipse Corner Article

  52. Fowler M (2005) A language workbench in action-mps. Online http://martinfowler.com/articles/mpsAgree.html

  53. Moody D (2009) The “physics” of notations: toward a scientific basis for constructing visual notations in software engineering. IEEE Trans Software Eng 35(6):756–779

  54. Sendall S, Kozaczynski W (2003) Model transformation: the heart and soul of model-driven software development. IEEE Softw 20(5):42–45

    Article  Google Scholar 

  55. Schlee M, Vanderdonckt J (2004) Generative programming of graphical user interfaces. In: Proceedings of the working conference on advanced visual interfaces, pp 403–406

  56. Sleiman HA, Sultán AW, Frantz RZ , Corchuelo R et al (2009) Towards automatic code generation for EAI solutions using DSL tools. In: JISBD, pp 134–145

  57. Silva GC, Rose LM, Calinescu R (2014) Cloud DSL: a language for supporting cloud portability by describing cloud entities. In: CloudMDE@ MoDELS, pp 36–45

  58. Morgan R, Grossmann G, Schrefl M, Stumptner M, Payne T (2018) VizDSL: a visual DSL for interactive information visualization. In: International conference on advanced information systems engineering. Springer, New York, pp 440–455

  59. Petcu D, Macariu G, Panica S, Craciun C (2013) Portable cloud applications from theory to practice. Future Generat Comput Syst 29(6):1417–1430

    Article  Google Scholar 

  60. Liu D, Zic J (2011) Cloud#: a specification language for modeling cloud. In: 2011 IEEE 4th international conference on cloud computing. IEEE, pp 533–540

  61. Cunningham W et al (2002) What is wiki. WikiWikiWeb. http://www.wiki.org/wiki.cgi

  62. Raman M (2006) Wiki technology as a ”free” collaborative tool within an organizational setting. Inf Syst Manag 23(4):59–66

  63. Carlin D (2007) Corporate wikis go viral. Business Week Online, 12

  64. Mueller J et al (2005) Freemind. http://freemind.sourceforge.net. Retrieved the 31st of December

  65. Rodriguez-Gil L, Zubía JG, Orduña P, Villar-Martinez A, López-de-Ipiña D (2019) New approach for conversational agent definition by non-programmers: a visual domain-specific language. IEEE Access 7:5262–5276

    Article  Google Scholar 

  66. Tao J, Wang C, Shene C-K (2014) Flowstring: partial streamline matching using shape invariant similarity measure for exploratory flow visualization. In: IEEE Pacific visualization symposium, pp 9–16

  67. Li Y, Bao F, Zhang E, Kobayashi Y, Wonka P (2011) Geometry synthesis on surfaces using field-guided shape grammars. IEEE Trans Visual Comput Graph 17(2):231–243

    Article  Google Scholar 

  68. Marvie JE, Buron C, Gautron P, Hirtzlin P, Sourimant G (2012) GPU shape grammars. Comput Graph. Forum 31(7–1):2087–2095

    Google Scholar 

  69. Dantra R, Grundy J, Hosking J (2009) A domain-specific visual language for report writing using microsoft dsl tools. In: IEEE symposium on visual languages and human-centric computing

  70. Almorsy M, Grundy J, Sadus R, van Straten W, Barnes DG, Kaluza O (2013) A suite of domain-specific visual languages for scientific software application modelling. In: IEEE symposium on visual languages and human-centric computing

  71. Grundy JC, Hosking J, Li KN, Ali NM, Huh J, Li RL (2013) Generating domain-specific visual language tools from abstract visual specifications. IEEE Trans Software Eng 39(4):487–515

    Article  Google Scholar 

  72. Liu R, Ji G, Su M (2020) Domain-specific visualization system based on automatic multi-seed recommendations: extracting stratigraphic structures. Software: Pract Exp 50(2):98–115

    Google Scholar 

  73. Liu R, Guo H, Yuan X (2014) Seismic structure extraction based on multi-scale sensitivity analysis. J Visual 17(3):157–166

    Article  Google Scholar 

  74. Liu R, Chen S, Ji G, Zhao B, Li Q, Su M (2018) Interactive stratigraphic structure visualization for seismic data. J Visual Lang Comput 48(2018):81–90

    Article  Google Scholar 

  75. Liu R, Shen L, Chen X, Ji G, Zhao B, Tan C, Su M (2019) Sketch-based slice interpretative visualization for stratigraphic data. J Imaging Sci Technol 63(6):60505–1

    Article  Google Scholar 

  76. Rath I, Vago D, Varro D (2008) Design-time simulation of domain-specific models by incremental pattern matching. In: IEEE symposium on visual languages and human-centric computing

  77. Deshayes R (2013) A domain-specific modeling approach for gestural interaction. In: IEEE symposium on visual languages and human-centric computing

  78. Risoldi M, Buchs D (2007) A domain specific language and methodology for control systems gui specification, verification and prototyping. In: IEEE symposium on visual languages and human-centric computing

  79. Schulz HJ, Nocke T, Heitzler M, Schumann H (2013) A design space of visualization tasks. IEEE Trans Visual Comput Graph 19(12):2366–2375

    Article  Google Scholar 

  80. Varró D, Balogh A (2007) The model transformation language of the VIATRA2 framework. Sci Comput Program 68(3):214–234

  81. Lewis GA, Meyers BC, Wallnau K (2006) Workshop on program generation and model-driven architecture. Technical report, Carnegie Mellon University

  82. Giachetti G, Marín B, Pastor O (2009) Using UML as a domain-specific modeling language: A proposal for automatic generation of uml profiles. In: International conference on advanced information systems engineering. Springer, New York, pp 110–124

  83. Frank U (2010) Outline of a method for designing domain-specific modelling languages. Technical report, ICB-research report

    Google Scholar 

  84. Sujeeth AK , Lee HJ, Brown KJ , Rompf T, Chafi H, Wu M, Atreya AR, Odersky M, Olukotun K (2011) OptiML: an implicitly parallel domain-specific language for machine learning. In: International Conference on Machine Learning

  85. Asenov D, Muller P (2013) Customizing the visualization and interaction for embedded domain-specific languages in a structured editor. In: IEEE symposium on visual languages and human-centric computing

  86. Bachrach J, Vo H, Richards B, Lee Y, Waterman A, Avižienis R, Wawrzynek J, Asanović K (2012) Chisel: constructing hardware in a scala embedded language. In: DAC design automation conference 2012. IEEE, pp 1212–1221

  87. Bostock M, Heer J (2009) Protovis: A graphical toolkit for visualization. IEEE Trans Visual Comput Graph 15(6):1121–1128

    Article  Google Scholar 

  88. DeVito Z, Mara M, Zollhöfer M, Bernstein G, Ragan-Kelley J, Theobalt C (2017) Pat Hanrahan, Matthew Fisher, and Matthias Nießner. Opt: A domain specific language for non-linear least squares optimization in graphics and imaging. ACM Trans Graph 36(5):171:1–171:27

  89. Hudak P, Jones MP (1994) Haskell vs. Ada vs. C++ vs. awk vs.... an experiment in software prototyping productivity. Contract 14(92-C):0153

  90. Chandra S, Richards B, Larus JR (1999) Teapot: A domain-specific language for writing cache coherence protocols. IEEE Trans Software Eng 25(3):317–333

    Article  Google Scholar 

  91. Hudak P (1998) Modular domain specific languages and tools. In: Proceedings of fifth international conference on software reuse (Cat. No. 98TB100203). IEEE, pp 134–142

Download references

Acknowledgements

This work was supported by the National Nature Science Foundation of China (NSFC) Grant Nos. 61702271 and 41971343, and Postgraduate Research & Practice Innovation Program of Jiangsu Province (No. SJCX20_0445). The authors would like to thank Ziqi Sha, Sitong Fang, Shunlong Ye, Guang Yang, and Ziyu Yao for their participating in paper collections.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Richen Liu.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Shen, L., Chen, X., Liu, R. et al. Domain-Specific Language Techniques for Visual Computing: A Comprehensive Study. Arch Computat Methods Eng 28, 3113–3134 (2021). https://doi.org/10.1007/s11831-020-09492-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11831-020-09492-4

Navigation