EMB_90

EMBEDDED 90 • NOVEMBRE • 2023 55 I l compilatore è uno strumento critico nella catena di sviluppo del software. A causa della sua complessi- tà, il compilatore è per certi versi uno strumento “mi- sterioso”. Lo sviluppatore deve riporre grande fiducia nella con- versione dal codice sorgente, leggibile dallo sviluppa- tore, al codice oggetto eseguibile dalla macchina. Il compilatore, a causa di suoi errori che non possono essere esclusi a priori, può introdurre un comporta- mento non conforme nel programma. Tale comporta- mento erroneo potrebbe diventare evidente solo dopo che il software è stato rilasciato e distribuito. Ciò chiaramente non è accettabile quando si sviluppa software safety-critical. Gli standard che riguardano la sicurezza funzionale (functional-safety) come IEC 61508, per le applicazioni industriali, e ISO 26262, in vigore nel settore automobilistico, richiedono che il compilatore sia esplicitamente qualificato per il caso d’uso dell’applicazione previsto. Il caso d’uso è impor- tante perché il compilatore deve essere configurato “ad hoc”; le opzioni specificate cambiano il codice og- getto generato. Gli standard di sicurezza richiedono che il compilatore venga verificato con la stessa confi- gurazione usata per lo sviluppo dell’applicazione. Le caratteristiche costruttive dei compilatori rendono necessario presupporre che qualsiasi modifica al caso d’uso cambi il comportamento del compilatore, invali- dando quindi la qualifica. Diminuire i rischi dell’analisi del caso d’uso per la qualifica di compilatori e librerie di applicazioni “functional safety” L’analisi automatizzata dei casi d’uso potrebbe avere un impatto significativo sullo sviluppo del software functionally safe e diminuire notevolmente i rischi di errore e i relativi costi che è necessario sostenere per risolverli Marcel Beemster CTO Solid Sands In questo diagramma viene mostrata la trasformazione di un loop in codice sorgente per differenti livelli di ottimizzazione del compilatore. La test suite per l’ottimizzazione del loop di SuperTest assicura il mantenimento sia dell’efficienza del codice, sia del corretto comportamento (Fonte: Solid Sands) COMPILERS | SOFTWARE

RkJQdWJsaXNoZXIy Mzg4NjYz