L’organisme de certification allemand TÜV SÜD vient de délivrer le premier certificat de qualification pour un compilateur du langage Rust (*) destiné au développement d'applications logicielles dans l’automobile et répondant aux exigences les plus élevées de la norme ISO 26262, au niveau Asil D. Cette qualification a été obtenue dans le cadre d'un partenariat avec AdaCore, éditeur franco-américain d’outils de développement et de vérification de logiciels pour applications critiques, qui possède une expérience forte dans la qualification de chaînes d'outils à utiliser dans des contextes de certification. Cette qualification du compilateur Rust marque, selon la société, la 17e qualification de chaîne d'outils complétée avec succès, une opération qui nécessite une documentation justificative importante.
« Cette qualification du compilateur Rust marque l'aboutissement de plus de deux années d'efforts, commente Hristian Kirtchev, responsable technique en charge de l'outil GNAT Pro pour Rust chez AdaCore. Ce compilateur Rust qualifié est fondé sur la version 1.68 de rustc, le compilateur Rust développé par la communauté des développeurs. Pour obtenir cette qualification, nous avons d'abord identifié un sous-ensemble pris en charge par le langage de programmation Rust, développé une spécification rigoureuse des fonctionnalités du langage, puis remonté les tests en amont jusqu'à la spécification, pour enfin développer des tests supplémentaires et effectuer des tests formels du compilateur. Le résultat est l’obtention d’une plus grande certitude que le compilateur générera un code correct pour les applications certifiables de l’utilisateur final. »
AdaCore va donc s'appuyer sur les leçons tirées de la qualification de compilateur pour proposer aux utilisateurs du langage Rust et de la solution GNAT Pro pour Rust une chaîne d'outils complète qui peut être qualifiée et fournie avec des bibliothèques d'exécution certifiées et des outils de support qualifiés. AdaCore prévoit ainsi que les développeurs pourront profiter des riches fonctionnalités du langage Rust, dont beaucoup nécessitent la prise en charge de bibliothèques d'exécution de Rust.
« L'utilisation d'un langage de programmation dans un contexte de certification nécessite trois choses : une chaîne d'outils qualifiée, des bibliothèques d'exécution certifiées et des outils de support qualifiés, précise Tony Aiello, chef de produit pour GNAT Pro pour Rust chez AdaCore. La qualification de la chaîne d'outils est la première étape vers la couverture des besoins de certification des utilisateurs, et à ce niveau GNAT Pro for Rust leur fournira une solution complète pour une utilisation certifiable du langage Rust, y compris le support d’activités complémentaires qui nécessitent des outils qualifiés pour être menées à grande échelle, telles que la couverture du code et la démonstration du respect des normes de codage. »
(*) Rust est un langage de développement initié par les ingénieurs de Mozilla dès 2006 qui se présente comme plus performant que les langages de programmation classiques comme le C et le C++ en évitant notamment les problèmes de sécurité mémoire qui affligent ces langages. Et ce sans recourir à la complexité de Java (pas de mécanismes de type ramasse-miettes dans Rust). Selon ses promoteurs, le langage Rust est idéal pour fonctionner sur du matériel à faible empreinte mémoire, peu gourmand en énergie, et a été spécialement conçu dès le départ en mettant l'accent sur la sécurité mémoire et la sécurité des threads.