Updated on August 14, 2017
Reducing Environmental Complexity of External DSLs with Projectional Language Workbenches
As part of my Computer Science PhD, I have written a poster to outline the research area that I’m currently exploring and the possible future directions. If you’d like to ask any questions or would like to discuss the research area, please leave a comment or send an email.
Software engineering is defined as applying the ideologies of engineering to software development. This area of engineering has to take a holistic view of the environmental complexities to avoid expensive software bottlenecking. Where by, the growing demand for more complex software outstrips the developers. (Banker, 1987) To date, various methods have been developed to alleviate this bottleneck. The standard technique is a divide and conquer approach through implementing higher levels of abstraction, such as libraries and OO frameworks (Van Deursen, A., and Klint, P., 2000). Although, a relatively recent approach is to develop domain specific languages (DSLs).
DSLs are smaller languages targeted at a particular domain; they are a way of controlling an abstraction. Fundamentally, DSLs provide a high-level set of features that are closely aligned with the problem domain, allowing an easier mapping of the developers conceptual model to the programming implementation. DSLs fall into two main categories, internal and external. Internal DSLs are built within a general purpose programming language (GPL). While external DSLs are built independently of a GPL. They can offer much more syntactic flexibility than internal DSLs, but at the cost of building a parser, provide a programming environment, maintain the language and repeating functionality of GPLs (Fowler and Parsons, 2010).
A possible solution to the environmental complexities of implementing and supporting external DSLs are projectional language workbenches. These are the set of emerging language creation environments, whereby the user’s actions directly manipulate the abstract syntax tree (AST). (Berger, T., Völter, M., 2016) Therefore, they can avoid the need to utilize parsers to build an AST from a concrete syntax. Previous research (Voelter, M., 2014) (Voelter, M. and Lisson, S., 2014) has shown that modern projectionally edited language workbenches, such as JetBrains MPS, are a promising tool for expressive language creation.
1) Banker, 1987, December. Factors Affecting Software Maintenance Productivity: an Exploratory Studyl. In ICIS (p. 27).
2) Van Deursen, A., Klint, P. and Visser, J., 2000. Domain-specific languages: An annotated bibliography. ACM Sigplan Notices, 35(6), pp.26-36.
3) Fowler, M. and Parsons, R. (2011). Domain-specific languages. Boston, Mass.: Addison-Wesley.
4) Berger, T., Völter, M., 2016, November. Efficiency of projectional editing: A controlled experiment. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (pp. 763-774). ACM.
5) Voelter, M., 2014, September. Towards user-friendly projectional editors. In International Conference on Software Language Engineering (pp. 41-61). Springer, Cham.
6) Voelter, M. and Lisson, S., 2014, September. Supporting Diverse Notations in MPS’Projectional Editor. In GEMOC@ MoDELS (pp. 7-16).
Poster Download: Reducing environmental complexity.pdf