diff options
-rw-r--r-- | transp-inf110-02-typage.tex | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/transp-inf110-02-typage.tex b/transp-inf110-02-typage.tex index 688b2c1..17897a0 100644 --- a/transp-inf110-02-typage.tex +++ b/transp-inf110-02-typage.tex @@ -298,6 +298,42 @@ fonction du type de son argument (connu à la compilation !). \end{frame} % \begin{frame} +\frametitle{Utilisations du typage au-delà des valeurs stockées} + +\itempoint Annotation des \textbf{exceptions soulevables} (fréquent, +p.ex. Java). + +\bigskip + +\itempoint Annotation de la \textbf{mutabilité} par le type. +P.ex. $\texttt{Nat}$ = type d'un entier (immuable) mais +$\texttt{Ref~Nat}$ = type d'une \alert{référence} vers un entier +(mutable). + +\bigskip + +\itempoint Annotation des \textbf{effets de bord} par le type. P.ex., +en Haskell, $\texttt{Char}$ = caractère = fonction de zéro argument +renvoyant un caractère (fonction pure : toujours le même retour), mais +$\texttt{IO~Char}$ = \alert{action} avec effets de bord renvoyant un +caractère ($\texttt{IO}$ est un constructeur de type appelé « monade » +I/O). + +\bigskip + +\itempoint Typage \textbf{linéaire} (forme de typage +« sous-structurel ») ou types à unicité : assure qu'une valeur est +utilisée \alert{une et une seule fois} dans un calcul (ni duplication +ni perte sauf manœuvre spéciale). + +\smallskip + +Permet d'optimiser la gestion de la mémoire (Rust) et/ou d'annoter les +effets de bord (Clean). + +\end{frame} +% +\begin{frame} \frametitle{Quelques exemples} {\footnotesize Éviter les termes de typage « faible » et « fort », qui |