EMB 91

EMBEDDED 91 • FEBBRAIO • 2024 63 COMPILER LIBRARIES | SOFTWARE Le librerie di runtime del compilatore Per capire perché le librerie di runtime sono consi- derate parte integrante del compilatore, è necessa- rio comprendere che cos’è una “libreria di runtime del compilatore” e perché esistono queste librerie. Supponiamo che l’hardware di destinazione suppor- ti operazioni in virgola mobile (floating point, FP) a 32 bit ma non operazioni in virgola mobile a 64 bit. Ora lo sviluppatore del compilatore necessita di im- plementare operazioni FP a 64 bit usando altre istru- zioni. Le subroutine sviluppate a questo scopo sono memorizzate nella libreria chiamata “di runtime in virgola mobile”. Queste subroutine vengono create dallo sviluppatore del compilatore, sono richiamate solo dal codice generato dal compilatore, non sono specificate nella documentazione dell’utente e non sono mai richiamate direttamente dal software ap- plicativo dell’utente. Pertanto, queste subroutine e la libreria associata sono considerate parte integrante dello strumento di compilazione, di conseguenza si applicano i requisiti di qualifica per lo strumento. Gli enti di valutazione della conformità tendono a segui- re questo ragionamento e ritengono che anche le li- brerie di runtime siano qualificate nel contesto di una qualifica del compilatore. I file di intestazione Si può discutere se i file di intestazione dovrebbero essere considerati parte integrante dello strumento di compilazione o della libreria C. Il contenuto dei file di intestazione, chiamati anche file di inclusione standard, è specificato nella norma ISO C al capitolo Libreria. I file di intestazione contengono prototipi delle funzioni della libreria e macro e definizioni di tipo usati nelle funzioni della libreria. Per questo mo- tivo si dovrebbero applicare i criteri di qualifica per i componenti software. Tuttavia, esistono anche dipendenze fra i file di in- testazione e l’implementazione del compilatore, ad esempio i valori delle macro nel file di intestazione “limits.h” dipendono tutti dall’implementazione del compilatore alla quale devono conformarsi. Per que- sto motivo dovrebbero venire applicati i criteri di qualifica degli strumenti. Gli enti di valutazione della conformità tendono a ri- tenere che se i file di intestazione vengono sviluppati dagli stessi ingegneri che hanno sviluppato il com- pilatore, allora i file di intestazione sono considerati parte dello strumento di compilazione e vengono qua- lificati nel contesto di una qualifica dello strumento. Se un file di intestazione viene modificato nel quadro di una qualifica della libreria, la qualifica dello stru- mento termina e deve essere effettuata nuovamente. Le funzioni della libreria C La libreria C contiene funzioni che eseguono opera- zioni base, come operazioni di memoria, e funzioni matematiche di basso livello come la radice quadrata, funzioni di potenza, funzioni trigonometriche e così via, usate frequentemente nel software automotive. Fig. 1 – Relazioni che intercorrono tra software applicativo, QClib e toolset del compilatore

RkJQdWJsaXNoZXIy Mzg4NjYz