Apa saja implementasi yang mungkin dari kelas tipe Haskell dan apa kelebihan (dis) mereka?

9

Sejauh yang saya tahu, fungsi Haskell dengan batasan kelas tipe secara internal dikompilasi ke fungsi dengan argumen tambahan yang menerima kamus dengan implementasi yang diperlukan dari setiap kelas tipe tertentu.

  • Apakah ada kemungkinan lain bagaimana mengkompilasi kelas tipe?
  • Jika demikian, apa kelebihan mereka?
  • Dan kompiler apa yang menggunakannya?
Petr Pudlák
sumber
4
Ada cukup banyak literatur tentang masalah ini. Mungkin mulai dengan Menerapkan Tipe Kelas oleh J. Peterson, M. Jones. Anda juga bisa melihat Kelas Tipe sebagai Objek dan Implikasinya oleh Oliveira et al, yang membicarakan hal ini dalam konteks Scala, tetapi memiliki bagian yang cukup besar tentang pekerjaan terkait.
Martin Berger
1
Saya menemukan tautan ke makalah: Menerapkan Kelas Tipe. John Peterson dan Mark P. Jones .
Petr Pudlák
1
@ MartinBerger membuat ini menjadi jawaban?
Suresh Venkat
Yang lain dapat ditemukan di sini .
Martin Berger
@Suresh Venkat, saya tidak ingin membuatnya menjadi jawaban karena saya tidak yakin keduanya adalah yang terbaik, atau bahkan jawaban yang baik. Sudah lama sejak saya melihat implementasi bahasa fungsional. Mungkin beberapa bodi FP penduduk dapat berpadu.
Martin Berger

Jawaban:

8

JHC menggunakan pendekatan yang berbeda. Bahasa perantara compiler adalah lambda-calculus yang diketik secara dependen di mana tidak ada perbedaan antara jenis dan nilai. Oleh karena itu JHC dapat melakukan analisis kasus pada parameter jenis fungsi dan memanggil fungsi kelebihan beban yang benar secara langsung.

Situs web JHC membahas secara mendalam tentang implementasi, serta keuntungannya dibandingkan implementasi kamus yang lulus standar.

Dominic Mulligan
sumber