Présentation
RÉSUMÉ
Le langage de programmation Rust permet l’écriture de logiciels de haute performance, par une conception proche du matériel et du système d’exploitation, comme le langage C. Il permet aussi la programmation parallèle, distribuée et en style fonctionnel. Rust procure une grande sûreté d’exécution grâce à un modèle de mémoire original et à l’imposition d’un typage fort. Le langage ne comporte pas d’environnement d'exécution(runtime), ce qui contribue à l’efficacité, en comparaison de langages comme Java. Le système de compilation Cargo facilite grandement la construction de logiciels complexes.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l'articleAUTEUR(S)
-
Laurent BLOCH : Chercheur - Institut de l’Iconomie
INTRODUCTION
Le langage de programmation Rust a été conçu en fonction de trois objectifs, qui sont la sécurité, la rapidité, et la programmation concurrente et parallèle :
la sécurité est obtenue par le typage des données, par le modèle de mémoire et par des règles précises de passage de paramètres entre fonctions (modèle par possession et emprunt de données) ;
la rapidité est obtenue par la proximité des objets du langage avec ceux de la machine, et par l’absence d’environnement d’exécution (runtime) à charger au démarrage ;
la programmation concurrente et parallèle est facilitée par des fonctions de traitement asynchrone, de partage de données entre tâches, de passage de messages et de rendez-vous qui permettent de programmer des tâches concurrentes ou parallèles sans utiliser directement les fonctions primitives du système d’exploitation.
La version préliminaire de Rust a été publiée en 2010 par la Fondation Mozilla, qui édite le navigateur Firefox ; initialement c’était un projet personnel (développé en OCaml) de Graydon Hoare, salarié de la fondation ; la première version stable est parue en 2015. C’est un logiciel libre développé avec la participation des utilisateurs. Le compilateur produit une représentation intermédiaire en code LLVM.
On peut présenter ce langage en disant qu’il combine les qualités de C et d’Ada. À C il emprunte l’essentiel de la syntaxe, avec ajout de formes proches de celle d’Ada, par exemple pour écrire (et compiler) séparément la spécification et l’implémentation d’une fonction. Comme C, Rust n’a pas d’environnement d’exécution ( runtime ), en particulier pas de glaneur de cellules ( garbage collector , GC, ramasse-miettes, un système de gestion automatique de la mémoire) ; ses objets élémentaires restent proches de ceux de la machine, ce qui contribue à des performances prévisibles et qui peuvent approcher celles de l’assembleur. Rust procure également des constructions de plus haut niveau, comme des chaînes de caractères UTF-8.
Comme Ada, Rust met en œuvre un typage fort et contraignant, ce qui est parfois exigeant pour le programmeur, mais procure une grande sûreté de fonctionnement du programme une fois qu’il a été compilé avec succès. Comme Ada, Rust procure des fonctions qui permettent de programmer des tâches concurrentes ou parallèles de façon indépendante du système d’exploitation. Le langage procure également les tournures qui permettent l’écriture de code générique et le polymorphisme de données, toujours dans le respect...
Cet article est réservé aux abonnés. Il vous reste 92 % à découvrir.
Déjà abonné ? Se connecter
MOTS-CLÉS
Etat de l'art | programmation des ordinateurs | logiciel système | parallélisme | modularité | possession
VERSIONS
Il existe d'autres versions de cet article :
- Version archivée 1 de févr. 2001 par Patrice BOIZUMAULT
DOI (DIGITAL OBJECT IDENTIFIER)
Rust (langage de programmation)
Sources bibliographiques
- (1) - Async/await on embedded Rust . - Consulté le 17 avril 2022. https://ferrous-systems.com/blog/async-on-embedded/ .
- ...
Cet article est réservé aux abonnés. Il vous reste 92 % à découvrir.
Déjà abonné ? Se connecter
Quiz et tests de validation présents dans cet article
Entraînez-vous autant que vous le voulez avec les quiz d'entraînement.
Article inclus dans l'offre
"Technologies logicielles Architectures des systèmes"
(
408 articles
)
Actualisée et enrichie d’articles validés par nos comités scientifiques.
Quiz, médias, tableaux, formules, vidéos, etc.
Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.
Un ensemble de services exclusifs en complément des ressources.