Un interprete astratto per l’inferenza dei tipi Contenuti l’inferenza dei tipi come interprete astratto denotazionale


Verso il dominio astratto type evalt = Notype



Scaricare 487 b.
Pagina7/12
29.03.2019
Dimensione del file487 b.
1   2   3   4   5   6   7   8   9   ...   12

Verso il dominio astratto

  • type evalt = Notype

    • | Vvar of string
    • | Intero
    • | Booleano
    • | Mkarrow of evalt * evalt
  • l’ordinamento parziale

    • t1  t2 , se t2 è una istanza di t1
    • Notype è l’elemento massimo
  • glb di evalt:

    • lcg (minima comune generalizzazione), calcolata con l’algoritmo di anti-unificazione
  • lub di evalt:

  • anche se evalt non è il vero dominio astratto, lo mettiamo in relazione con il dominio concreto



Concretizzazione

  • dominio concreto: (P(ceval), , , ceval, , )

  • dominio astratto: (evalt, , Vvar(_), Notype, gci, lcg)

  • t(x) =

    • ceval, se x = Notype
    • { y | z. y = Int(z)}, se x = Intero
    • { y | z. y = Bool(z)}, se x = Booleano
    • , se x = Vvar(_)
    • {Funval(f) |d t() f(d) t()},
      • se x = Mkarrow(, ), con , senza variabili
    • t(), per  istanza senza variabili di x, 





Condividi con i tuoi amici:
1   2   3   4   5   6   7   8   9   ...   12


©astratto.info 2019
invia messaggio

    Pagina principale