Core est un langage intermédiaire typé, donc pour pouvoir produire une représentation Core il faut construire une dérivation de typage qui montre que ton programme intermédiaire vérifie les règles de typage de Core. C'est très difficile voire impossible en pratique (sans sacrifier les performances), ce qui rend la représentation Malfunction, non typée, plus agréable comme cible.
(C'est un point de détail intéressant qui m'a été rappelé par Sam Lindley, un des implémenteurs de Links et donc une des cibles pour Malfunction. À l'inverse, avoir une représentation intermédiaire typée a aussi des avantages quand on développe un compilateur (par exemple pour débugger, et pour mieux comprendre le typage du langage de surface ou la sémantique des optimisations effectuées), donc ce n'est pas un mauvais choix de la part de GHC.)
[^] # Re: Représentations intermédiaires du compilateur OCaml
Posté par gasche . En réponse au journal Malfunction: réutiliser la représentation intermédiaire du compilateur OCaml. Évalué à 3.
Core est un langage intermédiaire typé, donc pour pouvoir produire une représentation Core il faut construire une dérivation de typage qui montre que ton programme intermédiaire vérifie les règles de typage de Core. C'est très difficile voire impossible en pratique (sans sacrifier les performances), ce qui rend la représentation Malfunction, non typée, plus agréable comme cible.
(C'est un point de détail intéressant qui m'a été rappelé par Sam Lindley, un des implémenteurs de Links et donc une des cibles pour Malfunction. À l'inverse, avoir une représentation intermédiaire typée a aussi des avantages quand on développe un compilateur (par exemple pour débugger, et pour mieux comprendre le typage du langage de surface ou la sémantique des optimisations effectuées), donc ce n'est pas un mauvais choix de la part de GHC.)