Précédent Index Suivant



Le typage de CAML XI



Quand et comment généraliser ?

au moment des déclarations
let idf = exp1 in exp2

On modifie donc un peu la règle de typage des déclarations.


Expression expansive:
effectuant des effets de bord pouvant invalider le typage. En CAML, expressions de la forme e1 e2.
  1. Env  |-  exp1 : t1

  2. Si exp1 NON expansive, généraliser t1 en st1 = generaliserEnv(t1), sinon st1 = t1
  3. Ajout du type obtenu à l'environnement
  4. ë (x:st1) <|  Env û  |-  exp2 : ty2
  5. L'environnement global est inchangé
Env  |-  exp1 : t1     ë (idf:st1) <|  Env û  |-  exp2 : t2
Env  |-  let idf = exp1 in exp2 : t2


Précédent Index Suivant