Quali sono le possibili implementazioni delle classi di tipi di Haskell e quali sono i loro (dis) vantaggi?


9

Per quanto ne so, una funzione di Haskell con vincoli di classi di tipi viene compilata internamente in una funzione con argomenti aggiuntivi che ricevono dizionari con le implementazioni necessarie di ogni particolare classe di tipo.

  • Ci sono altre possibilità come compilare le classi di tipi?
  • In tal caso, quali sono i loro (dis) vantaggi?
  • E quali compilatori li usano?

4
C'è un bel po 'di letteratura sull'argomento. Forse iniziare con l' implementazione delle classi di tipo di J. Peterson, M. Jones. Potresti anche guardare Classi di tipo come oggetti e impliciti di Oliveira et al, che ne parla nel contesto di Scala, ma ha una sezione abbastanza ampia sul lavoro correlato.
Martin Berger,


1
@MartinBerger fai una risposta?
Suresh Venkat,

L'altro può essere trovato qui .
Martin Berger,

@Suresh Venkat, non volevo farne una risposta perché non sono sicuro che queste due siano le risposte migliori o anche buone. È da un po 'che non guardo alle implementazioni dei linguaggi funzionali. Forse alcuni dei corpi di FP residenti possono entrare.
Martin Berger,

Risposte:


8

JHC utilizza un approccio diverso. Il linguaggio intermedio del compilatore è un lambda-calcolo tipicamente dipendente in cui non vi è alcuna distinzione tra tipi e valori. Pertanto JHC può eseguire un'analisi di caso sul parametro type di una funzione e chiamare direttamente la corretta funzione di sovraccarico.

Il sito Web JHC approfondisce l'implementazione, nonché i suoi vantaggi rispetto all'implementazione del dizionario standard che passa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.