“…While this improves usability, it destroys many of the advantages of projectional editing in the first place, because language composition at the expression level is limited. In fact, extension of expressions is particularly important to tightly integrate an embedded language with its host language [8].…”
Section: Related Work In Projectional Editingmentioning
confidence: 99%
“…It is a comprehensive environment for language engineering, supporting language aspects such as concrete and abstract syntax, type systems and transformations, as well as IDE aspects, such as syntax highlighting, code-completion, find-usages, diff and merge, refactoring, and debugging. It also supports language modularization and composition [8].…”
Section: Case Study: Mps and Mbeddrmentioning
confidence: 99%
“…The details depend on the grammar class used by the parser, and various disambiguation approaches are used to address the issue. We mention two examples below; an extensive discussion can be found in [8]. Formalisms that implement full context-free grammars compose much better, depending on the modularity of the grammar language [18].…”
“…SDF2 performs disambiguation via quotations, and SILVER/COPPER [22] uses disambiguation functions. In ProjEs, since no grammars are used, language composition is unlimited (discussed systematically in [8]). Situations which would lead to an ambiguity in ParEs are resolved by asking the user to manually disambiguate (EE.1) at the time of entering the potentially ambiguous code.…”
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.
“…While this improves usability, it destroys many of the advantages of projectional editing in the first place, because language composition at the expression level is limited. In fact, extension of expressions is particularly important to tightly integrate an embedded language with its host language [8].…”
Section: Related Work In Projectional Editingmentioning
confidence: 99%
“…It is a comprehensive environment for language engineering, supporting language aspects such as concrete and abstract syntax, type systems and transformations, as well as IDE aspects, such as syntax highlighting, code-completion, find-usages, diff and merge, refactoring, and debugging. It also supports language modularization and composition [8].…”
Section: Case Study: Mps and Mbeddrmentioning
confidence: 99%
“…The details depend on the grammar class used by the parser, and various disambiguation approaches are used to address the issue. We mention two examples below; an extensive discussion can be found in [8]. Formalisms that implement full context-free grammars compose much better, depending on the modularity of the grammar language [18].…”
“…SDF2 performs disambiguation via quotations, and SILVER/COPPER [22] uses disambiguation functions. In ProjEs, since no grammars are used, language composition is unlimited (discussed systematically in [8]). Situations which would lead to an ambiguity in ParEs are resolved by asking the user to manually disambiguate (EE.1) at the time of entering the potentially ambiguous code.…”
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.
“…The idea is to leverage previous engineering efforts and minimize implementation from scratch. In particular, there are approaches that take ideas from Component-Based Software Engineering [4] in the construction of DSLs (e.g., [17,24]). Language constructs are grouped into interdependent language modules that can be later integrated as part of the specification of future DSLs.…”
Abstract. The use of domain-specific languages (DSLs) has become a successful technique in the development of complex systems. Nevertheless, the construction of this type of languages is time-consuming and requires highly-specialized knowledge and skills. An emerging practice to facilitate this task is to enable reuse through the definition of lan-guage modules which can be later put together to build up new DSLs. Still, the identification and definition of language modules are complex and errorprone activities, thus hindering the reuse exploitation when developing DSLs. In this paper, we propose a computer-aided approach to (i) identify potential reuse in a set of legacy DSLs; and (ii) capitalize such potential reuse by extracting a set of reusable language modules with well defined interfaces that facilitate their assembly. We validate our approach by using realistic DSLs coming out from industrial case studies and obtained from public GitHub repositories.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.