Using C language extensions for developing embedded software: A case study

M Völter, Arie Van Deursen, Bernd Kolb, Stephan Eberle

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

13 Citations (Scopus)
5 Downloads (Pure)

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 memory consumption and performance. Our case study relies on mbeddr, an extensible version of C. mbeddr, in turn, builds on the MPS language workbench which supports modular extension of languages and IDEs.

Original languageEnglish
Title of host publicationOOPSLA 2015 - Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming Systems, Languages, and Applications
PublisherAssociation for Computing Machinery (ACM)
Pages655-674
Number of pages20
ISBN (Electronic)9781450336895
DOIs
Publication statusPublished - 2015
Event2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2015 - Pittsburgh, United States
Duration: 25 Oct 201530 Oct 2015

Conference

Conference2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2015
CountryUnited States
CityPittsburgh
Period25/10/1530/10/15

Keywords

  • Case Study
  • Domain-Specific Language
  • Embedded Software
  • Language Engineering
  • Language Extension

Fingerprint

Dive into the research topics of 'Using C language extensions for developing embedded software: A case study'. Together they form a unique fingerprint.

Cite this