From 4c08af0ab177054ed9a026edca97f53f69772ef6 Mon Sep 17 00:00:00 2001 From: "David A. Madore" 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