Реализация алгоритма вывода типа Damas-Hindley-Milner

Я ищу информацию об известном алгоритме Damas-Hindley-Milner делать вывод типа для функциональных языков, особенно информацию о реализации.

Я уже знаю, как сделать Algorithm W, но я слышал о последних новых алгоритмах, основанных на генераторе/решателе ограничений, а не обычном объединении, Тем не менее, я не могу найти никаких обсуждений о реализации этого нового алгоритма.

Любая идея, где я мог бы найти некоторую частичную информацию о выводах ML?

Ответы

Ответ 1

Если вам нравится код ML, лучший способ найти эти вещи - просто взглянуть на реализации в дикой природе. Хорошая эталонная реализация HaMLet, которая больше похожа на тестовую платформу, а не на производственную реализацию.

Почти все серьезные недавние обсуждения этих вопросов будут проходить в научных центрах. Одна из статей, которая может представлять интерес, - Общие алгоритмы вывода типа Hindley-Milner.

Кроме того, реализации различных типов систем (включая полиморфизм) в Pierce Типы и языки программирования ", а также Appel" Современная реализация компилятора в ML "более точно соответствуют современным подходам к реализации этого, чем ванильное описание алгоритма W.