The paper describes a systematic approach for the automatic introduction of data redundancy in a safety-critical application. The transformations aim to make the program capable of detecting potential soft errors caused by transient faults that may alter the program's data. The approach is based on an automated system that leverages the polymorphism features offered by the Rust programming language. Rust is focused on speed, safety, and concurrency, and it also provides powerful high-level abstractions at zero cost. The paper proposes a technique for hardening source code by creating redundant code through an automatic data redundancy system, achieved by defining a trait that enables data duplication and the detection of potential errors. The use of a trait allows the compiler to generate optimized code, without introducing abstraction-related overhead and with minimal programmer effort for boilerplate code generation. Preliminary experimental results are presented, showing the fault coverage achieved by the method, as well as some data related to the performance overhead and the increase in code size.

Automatic Data Redundancy in Safety-Critical Applications Using Trait-Based Code Transformation / Amel Solouki, Mohammadreza; De Sio, Corrado; Rebaudengo, Maurizio; Sini, Jacopo. - (2025). ( 38th IEEE International Symposium on Defect and Fault Tolerance in VLSI and Nanotechnology Systems Barcelona (ESP) October 21st - 23th , 2025) [10.1109/DFT66274.2025.11257577].

Automatic Data Redundancy in Safety-Critical Applications Using Trait-Based Code Transformation

Mohammadreza Amel Solouki;Corrado De Sio;Maurizio Rebaudengo;Jacopo Sini
2025

Abstract

The paper describes a systematic approach for the automatic introduction of data redundancy in a safety-critical application. The transformations aim to make the program capable of detecting potential soft errors caused by transient faults that may alter the program's data. The approach is based on an automated system that leverages the polymorphism features offered by the Rust programming language. Rust is focused on speed, safety, and concurrency, and it also provides powerful high-level abstractions at zero cost. The paper proposes a technique for hardening source code by creating redundant code through an automatic data redundancy system, achieved by defining a trait that enables data duplication and the detection of potential errors. The use of a trait allows the compiler to generate optimized code, without introducing abstraction-related overhead and with minimal programmer effort for boilerplate code generation. Preliminary experimental results are presented, showing the fault coverage achieved by the method, as well as some data related to the performance overhead and the increase in code size.
2025
979-8-3315-1489-1
File in questo prodotto:
File Dimensione Formato  
DFTS_25_paper_45.pdf

accesso aperto

Tipologia: 2. Post-print / Author's Accepted Manuscript
Licenza: Pubblico - Tutti i diritti riservati
Dimensione 191.13 kB
Formato Adobe PDF
191.13 kB Adobe PDF Visualizza/Apri
Automatic_Data_Redundancy_in_Safety-Critical_Applications_Using_Trait-Based_Code_Transformation.pdf

accesso riservato

Tipologia: 2a Post-print versione editoriale / Version of Record
Licenza: Non Pubblico - Accesso privato/ristretto
Dimensione 234.3 kB
Formato Adobe PDF
234.3 kB Adobe PDF   Visualizza/Apri   Richiedi una copia
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11583/3002723