Latest from Embedded

ID 82601491 © Vladimir Timofeev | Dreamstime.com
storage_dreamstime_l_82601491
Dreamstime_Josepalbert13_200048283
dreamstime_data__josepalbert13_200048283
ID 107786319 © Pakphipat Charoenrach - Dreamstime.com
id_107786319__pakphipat_charoenrach__dreamstime
ID 318454663 © BiancoBlue - Dreamstime.com
Fighter airplane
ID 86392130 © Belish - Dreamstime.com
promo__id_86392130__belish__dreamstime
ID 124110546 © Maciek905 | Dreamstime.com
code_dreamstime_l_124110546
Ivan Karpov | Dreamstime.com
Software Updates Promo 60c8ce8ce05e5

How to Use Ada to Insulate Software from Hardware Updates (.PDF Download)

June 15, 2021

Read this article online.

Hopefully, the software you pour your time and effort into will be around to make the world a better place for a long time. But will today’s hardware be sufficient to support future features and requirements? The breakneck pace at which new hardware, with increased resources, comes to market provides some relief for worries. But what if it also results in the obsolescence of your existing hardware? Can your codebase gracefully migrate to new hardware (i.e., can you recompile the source code and expect the correct behavior) when the time for an update arrives?

One issue that arises is the explicit use of non-portable constructs in your programming language; for example, features that are implementation-dependent or have unspecified or undefined behavior. This is a well-studied area, and the standards for languages like C, C++, and Ada identify and characterize all of the features whose semantics can exhibit such behavior.