41 votes

Pourquoi les classes de types sont-elles difficiles à implémenter?

Sur la diapositive 30/78 de cette présentation, Simon suggère que la mise en œuvre de classes de types était un "désespoir" au début. Est-ce que quelqu'un sait pourquoi c'était?

77voto

augustss Points 15750

Je suppose que je suis une des rares personnes qui ont une expérience de première main de pourquoi c'était difficile, car j'ai mis en place dans hbc quand il n'y avait pas de l'art antérieur.

Donc, ce qui est clair, à partir de la Wadler&Blott papier était que le type de la vérification était une extension de Hindley-Milner vérification du type et qu'au moment de l'exécution, vous devriez être en train de passer les dictionnaires autour. À partir d'une mise en œuvre réelle est plutôt une grosse étape. Une bonne façon de comprendre la difficulté est de les mettre en œuvre dès les Wadler-Blott papier.

Tout d'abord, vous devez venir avec l'idée d'un vérificateur de types qui non seulement vérifier les types, mais transforme également le programme; l'insertion d'éléments de preuve (dictionnaires), tandis que la vérification de type. Vous avez aussi besoin de comprendre comment construire de nouveaux dictionnaires à partir de vieux à l'aide de l'exemple des déclarations comme un système d'inférence.

Il pourrait sembler évident, rétrospectivement, mais rappelez-vous que, depuis lors, un grand nombre de papiers avec des explications ont été écrites. La compréhension de la façon de faire quelque chose à partir d'un document est très différente de venir avec elle en premier lieu.

En outre, vous voulez des classes de type à être raisonnablement efficace qui mène à son propre ensemble de problèmes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X