Reactive C: an extension of C to program reactive systems
Software—Practice & Experience
A meta-environment for generating programming environments
ACM Transactions on Software Engineering and Methodology (TOSEM)
ParC—an extension of C for shared memory parallel processing
Software—Practice & Experience
Patterns in property specifications for finite-state verification
Proceedings of the 21st international conference on Software engineering
Higher-Order and Symbolic Computation
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
OpenJava: A Class-Based Macro System for Java
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A C Language Extension for Programming Real-Time Applications
RTCSA '99 Proceedings of the Sixth International Conference on Real-Time Computing Systems and Applications
Modular Domain Specific Languages and Tools
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Hume: a domain-specific language for real-time embedded systems
Proceedings of the 2nd international conference on Generative programming and component engineering
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Weaving a debugging aspect into domain-specific language grammars
Proceedings of the 2005 ACM symposium on Applied computing
Model Checking C Programs Using F-SOFT
ICCD '05 Proceedings of the 2005 International Conference on Computer Design
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Expressive programs through presentation extension
Proceedings of the 6th international conference on Aspect-oriented software development
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Xoc, an extension-oriented compiler for systems programming
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Model driven middleware: A new paradigm for developing distributed real-time and embedded systems
Science of Computer Programming
Designing Syntax Embeddings and Assimilations for Language Libraries
Models in Software Engineering
Embedding languages without breaking tools
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Incremental concrete syntax for embedded languages
Proceedings of the 2011 ACM Symposium on Applied Computing
Static analysis of run-time errors in embedded critical parallel C programs
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Declaratively defining domain-specific language debuggers
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Cedalion: a language for language oriented programming
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Implementing modular domain specific languages and analyses
Proceedings of the Workshop on Model-Driven Engineering, Verification and Validation
JetBrains MPS as a tool for extending Java
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
Hi-index | 0.00 |
While the C programming language provides good support for writing efficient, low-level code, it is not adequate for defining higher-level abstractions relevant to embedded software. In this paper we present the mbeddr technology stack that supports extension of C with constructs adequate for embedded systems. In mbeddr, efficient low-level programs can be written using the well-known concepts from C. Higher-level domain-specific abstractions can be seamlessly integrated into C by means of modular language extension regarding syntax, type system, semantics and IDE. In the paper we show how language extension can address the challenges of embedded software development and report on our experience in building these extensions. We show that language workbenches deliver on the promise of significantly reducing the effort of language engineering and the construction of corresponding IDEs. mbeddr is built on top of the JetBrains MPS language workbench. Both MPS and mbeddr are open source software.