Les laboratoires de la première moitié de semestre vous ont permis de découvrir
les principaux concepts de la programmation orientée objet et d'observer comment
C# les met en œuvre.
La seconde moitié du semestre a pour objectif de consolider ces acquis en les
réinvestissant dans un autre langage, Rust, avec un accompagnement progressivement
allégé afin de vous amener à les maîtriser de manière autonome.
Rust est un langage particulièrement adapté à cet apprentissage, car il oblige le
programmeur à exprimer explicitement ses intentions.
Les laboratoires s'appuient sur un projet graphique développé progressivement.
Ils permettent de découvrir comment Rust exprime les notions de classes, composition,
polymorphisme et interfaces, tout en introduisant les mécanismes spécifiques du
langage, tels que l'
ownership, le
borrowing et l'
interior mutability.
L'accent est mis sur la conception logicielle autant que sur l'écriture d'un code sûr.
Rust est un langage assez récent, la première version stable est apparue
en 2015.
Le langage Rust se caractérise notamment par :
- une programmation système moderne ;
- des performances proches du C/C++ ;
- une sécurité mémoire garantie à la compilation ;
- une approche multiparadigme.
L'
ownership et le
borrowing permettent d'exprimer explicitement les
relations entre les objets.
Ils renforcent ainsi les concepts de composition, d'association et de partage
étudiés en programmation orientée objet.
Pour en savoir plus :
https://web.enib.fr/~harrouet/rust/rust_00_main.html#why.
À l'issue de cet enseignement, vous devrez être capable de :
- interpréter un diagramme UML représentant une architecture objet simple ;
- implémenter cette architecture en Rust ;
- choisir entre composition, association et polymorphisme selon le problème posé ;
- utiliser les mécanismes d'ownership et de borrowing, ainsi que l'interior
mutability pour les étudiants qui souhaitent aller plus loin ;
- produire un code clair, sûr et correctement encapsulé.