¿Cuáles son las posibles implementaciones de las clases de tipos de Haskell y cuáles son sus (des) ventajas?


9

Hasta donde sé, una función de Haskell con restricciones de clases de tipo se compila internamente en una función con argumentos adicionales que reciben diccionarios con las implementaciones necesarias de cada clase de tipo en particular.

  • ¿Hay alguna otra posibilidad de cómo compilar clases de tipos?
  • Si es así, ¿cuáles son sus (des) ventajas?
  • ¿Y qué compiladores los usan?

44
Hay bastante literatura sobre el tema. Tal vez comience con la implementación de clases de tipos de J. Peterson, M. Jones. También podría ver las Clases de tipos como objetos e implicidades de Oliveira et al, que habla de esto en el contexto de Scala, pero tiene una sección bastante extensa sobre el trabajo relacionado.
Martin Berger


1
@MartinBerger ¿hacer esto una respuesta?
Suresh Venkat

El otro se puede encontrar aquí .
Martin Berger

@Suresh Venkat, no quería darle una respuesta porque no estoy seguro de que estas dos sean las mejores o incluso buenas respuestas. Ha pasado un tiempo desde que miré las implementaciones de lenguajes funcionales. Tal vez algunos de los cuerpos de FP residentes puedan intervenir.
Martin Berger

Respuestas:


8

JHC utiliza un enfoque diferente. El lenguaje intermedio del compilador es un cálculo lambda de tipo dependiente donde no hay distinción entre tipos y valores. Por lo tanto, JHC puede realizar un análisis de caso sobre el parámetro de tipo de una función y llamar directamente a la función sobrecargada correcta.

El sitio web de JHC profundiza en la implementación, así como sus ventajas sobre la implementación estándar de aprobación de diccionario.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.