diff options
author | David A. Madore <david+git@madore.org> | 2023-11-15 09:18:40 +0100 |
---|---|---|
committer | David A. Madore <david+git@madore.org> | 2023-11-15 09:18:40 +0100 |
commit | 4c08af0ab177054ed9a026edca97f53f69772ef6 (patch) | |
tree | faa4edbcbebd3ea8fe3fda5d4bb66910b5e4a416 | |
parent | f4581bfe1ddd67b446a25e0ce08d723e7c35a9b6 (diff) | |
download | inf110-lfi-4c08af0ab177054ed9a026edca97f53f69772ef6.tar.gz inf110-lfi-4c08af0ab177054ed9a026edca97f53f69772ef6.tar.bz2 inf110-lfi-4c08af0ab177054ed9a026edca97f53f69772ef6.zip |
Use of typing systems beyond value control.
-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 |