Show simple item record

Files in this item


Item metadata

dc.contributor.authorRenwick, James
dc.contributor.authorSpink, Tom
dc.contributor.authorFranke, Bjoern
dc.identifier.citationRenwick , J , Spink , T & Franke , B 2019 , Low-cost deterministic C++ exceptions for embedded systems . in Proceedings of the 28th International Conference on Compiler Construction (CC ’19) : February 16–17, 2019, Washington, DC, USA . ACM , Washington, DC, USA , pp. 76–86 , 28th International Conference on Compiler Construction , Washington DC , United States , 16/02/19 .
dc.identifier.otherPURE: 276650457
dc.identifier.otherPURE UUID: 672d51bb-3565-489e-bd5f-bc95bafd12dd
dc.identifier.otherRIS: urn:25C0D16198B4AF22856672ACAE3D4BF1
dc.identifier.otherScopus: 85062281506
dc.identifier.otherORCID: /0000-0002-7662-3146/work/103138182
dc.description.abstractThe C++ programming language offers a strong exception mechanism for error handling at the language level, improving code readability, safety, and maintainability. However, current C++ implementations are targeted at general-purpose systems, often sacrificing code size, memory usage, and resource determinism for the sake of performance. This makes C++ exceptions a particularly undesirable choice for embedded applications where code size and resource determinism are often paramount. Consequently, embedded coding guidelines either forbid the use of C++ exceptions, or embedded C++ tool chains omit exception handling altogether. In this paper, we develop a novel implementation of C++ exceptions that eliminates these issues, and enables their use for embedded systems. We combine existing stack unwinding techniques with a new approach to memory management and run-time type information (RTTI). In doing so we create a compliant C++ exception handling implementation, providing bounded runtime and memory usage, while reducing code size requirements by up to 82%, and incurring only a minimal runtime overhead for the common case of no exceptions.
dc.relation.ispartofProceedings of the 28th International Conference on Compiler Construction (CC ’19)en
dc.rightsCopyright © 2019 Copyright held by the owner/author(s). Publication rights licensed to ACM. This work has been made available online in accordance with publisher policies or with permission. Permission for further reuse of this content should be sought from the publisher or the rights holder. This is the author created accepted manuscript following peer review and may differ slightly from the final published version. The final published version of this work is available at
dc.subjectError handlingen
dc.subjectSoftware performanceen
dc.subjectLanguage featuresen
dc.subjectQA75 Electronic computers. Computer scienceen
dc.titleLow-cost deterministic C++ exceptions for embedded systemsen
dc.typeConference itemen
dc.contributor.institutionUniversity of St Andrews. School of Computer Scienceen

This item appears in the following Collection(s)

Show simple item record