Files in this item
Low-cost deterministic C++ exceptions for embedded systems
Item metadata
dc.contributor.author | Renwick, James | |
dc.contributor.author | Spink, Tom | |
dc.contributor.author | Franke, Bjoern | |
dc.date.accessioned | 2021-11-11T17:30:15Z | |
dc.date.available | 2021-11-11T17:30:15Z | |
dc.date.issued | 2019-02-16 | |
dc.identifier | 276650457 | |
dc.identifier | 672d51bb-3565-489e-bd5f-bc95bafd12dd | |
dc.identifier | 85062281506 | |
dc.identifier.citation | Renwick , 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 . https://doi.org/10.1145/3302516.3307346 | en |
dc.identifier.citation | conference | en |
dc.identifier.isbn | 9781450362771 | |
dc.identifier.other | RIS: urn:25C0D16198B4AF22856672ACAE3D4BF1 | |
dc.identifier.other | ORCID: /0000-0002-7662-3146/work/103138182 | |
dc.identifier.uri | https://hdl.handle.net/10023/24323 | |
dc.description.abstract | The 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.format.extent | 11 | |
dc.format.extent | 814956 | |
dc.language.iso | eng | |
dc.publisher | ACM | |
dc.relation.ispartof | Proceedings of the 28th International Conference on Compiler Construction (CC ’19) | en |
dc.subject | C++ | en |
dc.subject | Exceptions | en |
dc.subject | Error handling | en |
dc.subject | Software performance | en |
dc.subject | Language features | en |
dc.subject | QA75 Electronic computers. Computer science | en |
dc.subject | NDAS | en |
dc.subject.lcc | QA75 | en |
dc.title | Low-cost deterministic C++ exceptions for embedded systems | en |
dc.type | Conference item | en |
dc.contributor.institution | University of St Andrews. School of Computer Science | en |
dc.identifier.doi | https://doi.org/10.1145/3302516.3307346 |
This item appears in the following Collection(s)
Items in the St Andrews Research Repository are protected by copyright, with all rights reserved, unless otherwise indicated.