Abstract:We report on an industrial case study on developing the embedded software for a smart meter using the C programming language and domain-specific extensions of C such as components, physical units, state machines, registers and interrupts. We find that the extensions help significantly with managing the complexity of the software. They improve testability mainly by supporting hardware-independent testing, as illustrated by low integration efforts. The extensions also do not incur significant overhead regarding … Show more
“…M-Industries builds their client applications with Alan [11], and whenever they cannot build something they add another sub language to their family of Alan languages. Finally, the use of mbeddr to build a Smart Meter also included creating new language extensions [21]. These are all typical examples of this pattern I observe around me.…”
Our community believes that new domain-specific languages should be as general as possible to increase their impact. However, I argue in this essay that we should stop claiming generality for new domain-specific languages. More general domain-specific languages induce more boilerplate code. Moreover, domain-specific languages are co-developed with their applications in practice, and tend to be specific for these applications. Thus, I argue we should stop claiming generality in favor of documenting how domainspecific language based software development is beneficial to the overall software development process. The acceptance criteria for scientific literature should make the same shift: accepting good domain-specific language engineering practice, instead of the next language to rule them all.
ACM CCS 2012Software and its engineering → Domain specific languages; Software development methods;General and reference → General literature;
“…M-Industries builds their client applications with Alan [11], and whenever they cannot build something they add another sub language to their family of Alan languages. Finally, the use of mbeddr to build a Smart Meter also included creating new language extensions [21]. These are all typical examples of this pattern I observe around me.…”
Our community believes that new domain-specific languages should be as general as possible to increase their impact. However, I argue in this essay that we should stop claiming generality for new domain-specific languages. More general domain-specific languages induce more boilerplate code. Moreover, domain-specific languages are co-developed with their applications in practice, and tend to be specific for these applications. Thus, I argue we should stop claiming generality in favor of documenting how domainspecific language based software development is beneficial to the overall software development process. The acceptance criteria for scientific literature should make the same shift: accepting good domain-specific language engineering practice, instead of the next language to rule them all.
ACM CCS 2012Software and its engineering → Domain specific languages; Software development methods;General and reference → General literature;
“…The case study in [107] demonstrates that mbeddr fulfils its purpose from the perspective of an end user, and illustrates that language engineering can lead to useful results which would be otherwise much more expensive to achieve. In this paper we switch the perspective to language engineering, aiming at evaluating the development of mbeddr itself.…”
Section: Mbeddrmentioning
confidence: 95%
“…It describes the extensions available in mbeddr in some detail, and discusses how they are implemented. At OOPSLA 2015 we published a case study paper that evaluates the use of mbeddr from the perspective of embedded software development [107].…”
Section: Relationship To Earlier Publicationsmentioning
confidence: 99%
“…mbeddr has been (and continues to be) used successfully in a variety of systems with several different users. The case study in [107] reports on an industrial case study on developing the embedded software for a smart meter using mbeddr. It finds that the extensions help significantly with managing the complexity of the developed software.…”
Section: Mbeddrmentioning
confidence: 99%
“…As software is established as the backbone of more and more domains, specialized domain-specific languages (DSLs) are needed to efficiently write this software. Traditional domains for DSLs include language and compiler implementation [37,46], embedded software [13,53,55,56,107] or web applications [94]. More recently, DSLs have been used in domains that are not traditionally associated with formal, executable or analyzable languages.…”
Language workbenches are touted as a promising technology to engineer languages for use in a wide range of domains, from programming to science to business. However, not many real-world case studies exist that evaluate the suitability of language workbench technology for this task. This paper contains such a case study. In particular, we evaluate the development of mbeddr, a collection of integrated languages and language extensions built with the Jetbrains MPS language workbench. mbeddr consists of 81 languages, with their IDE support, 34 of them C extensions. The mbeddr languages use a wide variety of notations-textual, tabular, symbolic and graphical-and the C extensions are modular; new extensions can be added without changing the existing implementation of C. mbeddr's development has spanned 10 person years so far, and the tool is used in practice and continues to be developed. This makes mbeddr a meaningful case study of nontrivial size and complexity. The evaluation is centered around five research questions: language modularity, notational freedom and projectional editing, mechanisms for managing complexity, performance and scalability issues and the consequences for the development process. We draw generally positive conclusions; language engineering with MPS is ready for real-world use. However, we also identify a number of areas for improvement in the state of the art in language engineering in general, and in MPS in particular.
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.