algorithm type-inference hindley-milner

algorithm - Implementación del algoritmo de inferencia tipo Damas-Hindley-Milner.



type-inference (1)

Estoy buscando información sobre el conocido algoritmo Damas-Hindley-Milner para hacer inferencia de tipos para lenguajes funcionales, especialmente información sobre la implementación.

Ya sé cómo hacer el algoritmo W , pero escuché acerca de nuevos algoritmos recientes basados ​​en el generador / solucionador de restricciones en lugar de la unificación habitual. Sin embargo, no logro encontrar ninguna discusión sobre la implementación de esos nuevos algoritmos.

¿Alguna idea de dónde podría encontrar alguna información parcial sobre la inferencia de ML?


Si te sientes cómodo con el código ML, la mejor manera de encontrar estas cosas es simplemente mirar las implementaciones en la naturaleza. Una buena implementación de referencia es HaMLet , que está diseñada más como una plataforma de prueba en lugar de una implementación de producción.

Casi todas las discusiones recientes y serias sobre estos temas se llevarán a cabo en lugares académicos. Un artículo que podría ser de interés es el de los algoritmos de inferencia de tipo Generalising Hindley-Milner .

Además, las implementaciones de varios sistemas de tipo (incluido el polimorfismo de let) en los " Tipos y lenguajes de programación " de Pierce, así como la " Implementación del compilador moderno en ML " de Appel se corresponden más con los enfoques modernos para implementar esto que con la descripción original del algoritmo W.