Programmation avancée
Projet final :
- À rendre pour le 10 janvier (30-40h de travail)
Si sujet proposé :
- Sujet conçu par le prof
- qualité du code exigeant
Sujet “libre”
- Écrire votre sujet
Programming Contest
- 3 exercism dur (en Rust)
- 2 AdventOfCode (en Rust)
Contribution libre
- 2 contributions en Rust sur des projets libre
Récapitulatif
- boucle :
- for
- while
- loop <- boucle infini
- if / else if / else -> expressionnel
- match
- Types : (
const
est un peu plus complexe dans la vraie vie)
| C | Rust |
|:———––:|:–––––:|
|const int
|i32
|
|int
|mut i32
|
|const * int
|&i32
|
|* int
|&mut i32
|
Valeurs
Explication d’une pile :
- Schéma d’un pc basique (avec un gros zoom sur la RAM) :
Liste chaînée impérative
Liste<Var> | Nombre entiers |
---|---|
N_i liste vide | 0 |
Val collé à N_i | 0 + 1 |
Val collé à (Val collé à N_i) | 0 + 1 + 1 |
Tas / Heap
En C :
Calloc
/Malloc
->mmap()
,sbrk()
En Rust :
String
Vec
Hashmap
Box
Pile / Stack
En Rust : (* = peut être dans le registre (peut être optimisé))
c32
-> tout les entiers *f32
eta *- pointeurs et références *
- contexte d’une fonction lors d’un appel