Abstract
This paper describes a novel approach to embedded software development. Instead of using a combination of C code and modeling tools, we propose an approach where modeling and programming is unified using projectional language workbenches. These allow the incremental, domain-specific extension of C and a seamless integration between the various concerns of an embedded system. The paper does not propose specific extensions to C in the hope that everybody will use them; rather, the paper illustrates the benefits of domain specific extension using projectional editors. In the paper we describe the problems with the traditional approach to embedded software development and how the proposed approach can solve them. The main part of the paper describes our modular embedded language, a proof-of-concept implementation of the approach based on JetBrains MPS. We implemented a set of language extensions for embedded programming, such as state machines, tasks, type system extensions as well as a domain specific language (DSL) for robot control. The language modules are seamlessly integrated, leading to a very efficient way for implementing embedded software.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
MISRA Group, Misra-C, http://www.misra-c2.com/
Wikipedia, State Machines, http://en.wikipedia.org/wiki/Finite-state_machine
National Instruments, Block Diagram Data Flow, http://zone.ni.com/reference/en-XX/help/371361B-01/lvconcepts/block_diagram_data_flow/
ATESST Consortium, EAST ADL Specification, http://www.atesst.org/home/liblocal/docs/EAST-ADL-2.0-Specification_2008-02-29.pdf
AUTOSAR Partnership, Automotive Open System Architecture, http://www.autosar.org/
Fowler, M.: Language Workbenches: The Killer-App for Domain Specific Languages? http://martinfowler.com/articles/languageWorkbench.html
Wikipedia, View Model, http://en.wikipedia.org/wiki/View_model
Wikipedia, Traceability, http://en.wikipedia.org/wiki/Requirements_traceability
Eisenecker, U., Czarnecki, K.: Generative Programming. Addison-Wesley, Reading (2000)
JetBrains, Meta Programming System, http://jetbrains.com/mps
Voelter, M., Solomatov, K.: Language Modularization and Composition with Projectional Language Workbenches illustrated w/ MPS. In: SLE 2010 (submitted 2010)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)
Lego, Mindstorms, http://mindstorms.lego.com
Sourceforge.net, nxtOSEK, http://lejos-OSEK.sourceforge.net/
Voelter, M.: Product Line Engineering with Projectional Language Workbenches. In: GPCE 2010 (submitted 2010)
Visser, E.: Syntax Definition, http://swerl.tudelft.nl/bin/view/EelcoVisser/SyntaxDefinition
Software Engineering Group at RWTH Aache, Project MontiCore, http://monticore.de/
Open SystemC Initiative, SystemC, http://www.systemc.org/
Modelica Association, Modelica, http://modelica.org/
The MathWorks, Matlab - the language of technical computing, http://www.mathworks.com/products/matlab/
Esterel Technologies, SCADE, http://www.esterel-technologies.com/products/scade-suite/
Gay, D., Levis, P., von Behren, R., Welsh, M., Brewer, E., Culler, D.: The nesC language. ACM SIGPLAN Notices 38(5) (May 2003)
Fowler, M.: Domain Specific Languages, http://www.martinfowler.com/bliki/DomainSpecificLanguage.html
Neema, S., Karsai, G., Vizhanyo, A.: Embedded Control Systems, Language for Distributed Processing (ECSL-DP), http://www.omg.org/news/meetings/workshops/MIC_2004_Manual/06-1_Neema_etal.pdf
Intentional Software, Intentional Domain Workbench, http://intentsoft.com
Kästner, C., Thüm, T., Saake, G., Feigenspan, J., Leich, T., Wielgorz, F., Apel, S.: FeatureIDE: Tool Framework for Feature-Oriented Software Development. In: Proceedings of ICSE 2009 (2009), Formal Demonstration Paper
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Voelter, M. (2010). Embedded Software Development with Projectional Language Workbenches. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds) Model Driven Engineering Languages and Systems. MODELS 2010. Lecture Notes in Computer Science, vol 6395. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16129-2_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-16129-2_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-16128-5
Online ISBN: 978-3-642-16129-2
eBook Packages: Computer ScienceComputer Science (R0)