White Papers and Technical Notes

White Papers and Technical Notes

This page lists our white papers and technical notes. Make sure to visit this page to stay up to date with our developments and new features.

LEARNING FROM MATH LIBRARY TESTING FOR C

In the process of improving SuperTest, I recently dived into its math library
testing. Turns out there were some interesting observations to make. I have
summarized them here in four lessons. The take-away is that our intuition
about real numbers does not translate directly to floating point
computations. When working with floating point, it is essential to have a
model of its accuracy in mind. This white paper is my attempt to capture
some intuition about floating point computations.
Read the full paper on FP Lessons

THE BENEFITS OF C AND C++ COMPILER QUALIFICATION

In embedded application development, the correct operation of the compilation toolset is critical to the functional safety of the application. Two options are available to build trust in the correct operation of the compiler: either by compiler qualification through testing, or application coverage testing at the machine code level. We argue that the first, compiler qualification, is much more efficient. In addition, separating compiler qualification from application development shortens the critical path to application deployment (time-to-market) because they are then independent of each other. Compiler qualification saves time and money. Read the white paper here.

CG TRAINER – FOR CODE GENERATOR DEVELOPMENT

Developing a C compiler for a new (or old) target processor is one of the greatest and most rewarding software engineering projects imaginable. It is also challenging and daunting. This is where SuperTest’s new Code Generator Trainer suite comes in. Read the full paper on CGtrainer.

AN INTRODUCTION TO THE MISRA C SUITE

The SuperTest MISRA suites are created to verify the conformance of MISRA checking software. The aim of a, so-called, MISRA checker is to check application software for its compliance with the MISRA guidelines. The SuperTest MISRA suites in turn verify that such a MISRA checker generates the right diagnostics and not too many false positives or false negatives. Read the full paper on MISRASuites

CODE GENERATOR DEVELOPMENT AND VALIDATION

Why SuperTest should be your first choice for compiler code generator development and validation.
Read the full paper on Code Generator Development and Validation.

LIBRARY QUALIFICATION

SuperTest is the ideal starting point for standard library qualification, both for C and C++.
Read the full paper on SuperTest for C Library qualification.

COMPILER VALIDATION

Compiler validation is simply highly controlled, repeatable and reproducible testing of a compiler using a recognized set of test programs commonly known as a “validation suite”.
Read the full paper on C Compiler Validation for Embedded Targets.

HOW A ROGUE OPTIMIZATION INTRODUCES DATA RACES

Not all optimizations that work well for sequential applications can be used for multi-threaded applications. This is important in particular since C11 defined C’s memory consistency model. A common optimization that is present in many compilers still used today does not work well with shared memory parallel programming.
Learn more about the details and about memory consistency in our technical note How a Rogue Optimization Breaks C11 Memory Consistency.