diff options
| -rw-r--r-- | transp-inf110-02-typage.tex | 35 | 
1 files changed, 32 insertions, 3 deletions
| diff --git a/transp-inf110-02-typage.tex b/transp-inf110-02-typage.tex index c9269d5..af96c40 100644 --- a/transp-inf110-02-typage.tex +++ b/transp-inf110-02-typage.tex @@ -117,8 +117,8 @@ Il y a autant de systèmes de typage que de langages de programmation !  \itempoint Typage \textbf{statique} (à compilation) vs  \textbf{dynamique} (à exécution) ou mixte. -{\footnotesize En général on préfère : erreur à la compilation $>$ -  erreur à l'exécution $>$ plantage.\par} +{\footnotesize Mixte = « graduel ».  On préfère : erreur de +  compilation $>$ erreur à l'exécution $>$ plantage.\par}  \medskip @@ -200,7 +200,8 @@ Somme vide = type inhabité (impossible : aucune valeur).  \bigskip  \itempoint Types \textbf{fonctions} (= exponentielles). -P.ex. $\texttt{Nat} \rightarrow \texttt{Bool}$. +P.ex. $\texttt{Nat} \rightarrow \texttt{Bool}$ (f\textsuperscript{n} +de $\texttt{Nat}$ vers $\texttt{Bool}$).  \bigskip @@ -468,6 +469,34 @@ linéarité.  \end{frame}  %  \begin{frame} +\frametitle{Quelques curiosités} + +\itempoint En F\#, les unités de mesure sont intégrées au système de +typage, qui peut donc vérifier l'homogénéité physique. + +\bigskip + +\itempoint En Rust, le système de typage évite non seulement les +fuites de mémoire mais aussi certains problèmes de concurrence +(absence de \textit{race condition} sur les données). + +\bigskip + +\itempoint Certains langages spécialisés assurent, éventuellement en +lien avec leur système de typage, des propriétés diverses de leurs +programmes : terminaison garantie en temps polynomial (Bellantoni \& +Cook 1992), voire constant (langage Usuba), validation XML (langage +CDuce), absence de fuite d'information (langage Flow Caml), etc. + +\bigskip + +\itempoint En Idris, le système de typage est aussi un système de +preuve (cf. Curry-Howard après) et permet de certifier des invariants +quelconques d'un programme (p.ex., correction d'un algorithme de tri). + +\end{frame} +% +\begin{frame}  \label{typing-and-termination}  \frametitle{Typage et terminaison} | 
