Writing code is hard. Reimplementing common tasks is prone to error. That’s why software developers rely heavily on the functions in the standard library. It makes the job easier for developers, and the generated code more reliable. But are you aware that compilers also use a library to simplify their work? It’s called the runtime library.
This hidden library provides functions such as interfacing with the OS at startup, initialization of the hardware, implementing operations that don’t exist on the target, and many other target-related tasks. There is, however, one notable thing about the runtime library – it is hidden. It is not intended for use by the application developer, and it is not directly visible in the language standard. It is also hard to identify its requirements in ISO 26262 or other functional safety standards. Yet, the runtime library is a critical part of the implementation.
The function of the runtime library is to implement parts of the behavior of the language definition. The SuperTest validation suite excels in the verification of the language definition. That is how SuperTest verifies the correct behavior of the runtime library. It verifies those behaviors such as program startup and termination, and the correct implementation of all arithmetic operations including those that do not exist as target instructions. It does a complete verification of the language specification and so it also verifies the runtime library.
Don’t confuse this runtime library with the standard library. Application developers use the standard library to get well-defined and well-known functionalities, instead of implementing that code manually. Doing so not only saves time, it also shortens the code and makes it more robust.
In another blog we will dive into the details of the standard library and the qualification of libraries.
If you can’t wait for this blog, reach out to us for a preview.
By Dr. Marcel Beemster, CTOContact
Subscribe to our monthly blog!