GHC Core adalah bahasa System FC ke mana semua Haskell diterjemahkan. Tata bahasa (perkiraan) untuk Core diberikan oleh:
Core terkait erat dengan Sistem F yang lebih sederhana dan lebih dikenal . Semua transformasi yang dilakukan GHC pada level Core adalah refactoring pelestarian tipe representasi Core ini, untuk meningkatkan kinerja. Dan, tidak begitu terkenal, Anda dapat menulis langsung di Core untuk memprogram GHC.
GHC Core cocok dalam pipa penyusun (seperti pada tahun 2002, sans-LLVM dan CMM):
Dokumen utama untuk mempelajari tentang GHC Core adalah:
Materi terkait yang dapat membantu pemahaman:
- The GHC -fext-core keluaran
- Saya menghabiskan banyak waktu mempelajari Core dengan membaca sumber GHC. Beberapa dijelaskan dalam tesis sarjana saya dari tahun 2002, dari halaman 16.
- Dari menggunakan alat ghc-core , untuk menghasilkan Core dalam format yang menurut saya menyenangkan.
Core pada gilirannya diterjemahkan ke dalam kode STG, yang terlihat seperti:
Nama-nama lucu di Core dikodekan dalam "Z-encoding":
Jenis dan jenis GHC Core (dari kertas Tolmach):
Akhirnya, primop GHC muncul secara teratur dalam output GHC Core, ketika Anda telah mengoptimalkan Haskell Anda ke instruksi dasar yang diketahui GHC. Set primop diberikan sebagai seperangkat fungsi Core dalam file pra-diproses.