Rust (langage de programmation)

Ajouter à la bibliothèque

H3098 V2 Article de référence
Interactif Logo doc&quiz

Rust (langage de programmation)

Auteur(s) : Laurent BLOCH

Relu et validé le 29 février 2024 | Read in english

Ajouter à la bibliothèque Ajouter à la bibliothèque

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter un extrait gratuit

Déjà abonné ?

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'article

AUTEUR(S)

 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
Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés. Il vous reste 92 % à découvrir.

Cet article est réservé aux abonnés Consulter un extrait gratuit

Déjà abonné ?


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 :

DOI (DIGITAL OBJECT IDENTIFIER)

https://doi.org/10.51257/a-v2-h3098

Lecture en cours
Rust (langage de programmation)

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

( 408 articles )

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Services

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir le détail de l'offre

Dans les ressources documentaires

Linux embarqué

Linux est un système d'exploitation multitâche de la famille UNIX. Développé initialement sur processeur ...

Compilateur

Un compilateur est un logiciel permettant de transformer un programme source (écrit dans un langage de pr...

Programmation par aspects

La programmation par aspects (en anglais « aspect-oriented programming ») est un style de dével...

Langage UML : développement de logiciel et modélisation visuelle

Le langage UML (pour Unified Modeling Language) est un langage graphique de modélisation des systèmes log...

Tous les livres blancs
Article Vers un nouveau record des cyberattaques ?
25 septembre 2019
Vers un nouveau record des cyberattaques ?

Année après année, c’est toujours le même constat : peu ou mal protégées, les entreprises et les administrations sont de plus en plus nombreuses à être victimes...

Toutes les actualités

Inscrivez-vous aux newsletters !

Contactez-nous