From 4c08af0ab177054ed9a026edca97f53f69772ef6 Mon Sep 17 00:00:00 2001
From: "David A. Madore" <david+git@madore.org>
Date: Wed, 15 Nov 2023 09:18:40 +0100
Subject: Use of typing systems beyond value control.

---
 transp-inf110-02-typage.tex | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

(limited to 'transp-inf110-02-typage.tex')

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
@@ -295,6 +295,42 @@ fonction du type de son argument (connu à la compilation !).
   polymorphisme, voire la coercion (\textit{cast}).  Les limites de
   ces notions sont floues.\par}
 
+\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}
-- 
cgit v1.2.3

