Esperanza (lenguaje de programación)

Hope es un pequeño lenguaje de programación funcional desarrollado en la década de 1970 en la Universidad de Edimburgo . [1] [2] Es anterior a Miranda y Haskell y es contemporáneo de ML , también desarrollado en la Universidad. Hope se derivó de NPL , [3] un lenguaje funcional simple desarrollado por Rod Burstall y John Darlington en su trabajo sobre transformación de programas. [4] NPL y Hope son notables por ser los primeros lenguajes con evaluación de llamada por patrón y tipos de datos algebraicos . [5]

Hope debe su nombre a Sir Thomas Hope (c. 1681-1771), un reformador agrícola escocés, en cuyo honor también se bautizó Hope Park Square en Edimburgo, la ubicación del Departamento de Inteligencia Artificial en el momento del desarrollo de Hope.

Detalles del idioma

Un programa factorial en Hope es:

dec hecho: num -> num;--- hecho 0 <= 1;--- hecho n <= n*hecho(n-1);

Cambiar el orden de las cláusulas no cambia el significado del programa, porque la comparación de patrones de Hope siempre favorece los patrones más específicos en lugar de los menos específicos. En Hope, se requieren declaraciones de tipos explícitas; no existe la opción de usar un algoritmo de inferencia de tipos en Hope.

Hope proporciona dos estructuras de datos integradas: tuplas y listas. [6]

Implementaciones

La primera implementación de Hope fue strict , pero desde entonces ha habido versiones lazy y versiones strict con constructores lazy. British Telecom se embarcó en un proyecto con Imperial College para implementar una versión strict. La primera versión fue codificada por Thanos Vassilakis en 1986. Las versiones posteriores fueron codificadas por Mark Tasng de British Telecom. Un lenguaje sucesor, Hope+ (desarrollado conjuntamente entre Imperial College e International Computers Limited (ICL), agregó anotaciones para dictar la evaluación strict o lazy. [7]

El tutorial Hope de Roger Bailey en la edición de agosto de 1985 de BYTE hace referencia a un intérprete para IBM PC DOS 2.0. [6]

Referencias

  1. ^ Burstall RM , MacQueen DB, Sannella DT (1980) Hope: An Experimental Applicative Language . Acta de la Conferencia LISP de 1980, Universidad de Stanford, págs. 136-143.
  2. ^ Bailey, Roger (1 de abril de 1990). Programación funcional con esperanza . Serie de Ellis Horwood sobre computadoras y sus aplicaciones. Ellis Horwood Ltd.
  3. ^ RM Burstall. Consideraciones de diseño para un lenguaje de programación funcional. Ponencia invitada, Proc. Infotech State of the Art Conf. “La revolución del software”, Copenhague, 45–57 (1977)
  4. ^ RM Burstall y J. Darlington. Un sistema de transformación para desarrollar programas recursivos. Journal of the Association for Computing Machinery, 24(1):44–67 (1977)
  5. ^ Hudak, Paul; Hughes, John; Peyton Jones, Simon; Wadler, Philip (9 de junio de 2007). Una historia de Haskell: ser perezoso con la clase . ACM. pp. 12-1. doi :10.1145/1238844.1238856. ISBN . 9781595937667. Número de identificación del sujeto  52847907.
  6. ^ ab Bailey, Roger (agosto de 1985). "A Hope Tutorial". BYTE . Vol. 10, núm. 8 . Consultado el 1 de abril de 2015 .
  7. ^ John Kewley y Kevin Glynn. Anotaciones de evaluación para Hope+. En Kei Davis y RJM Hughes, editores, Functional Programming: Proceedings of the 1989 Glasgow Workshop, Workshops in Computing, páginas 329-337, Londres, Reino Unido, 1990. Springer-Verlag.
  • Intérprete Hope para Windows
  • Entrada para Hope en el Diccionario en línea de lenguajes de programación
Obtenido de "https://es.wikipedia.org/w/index.php?title=Hope_(lenguaje_de_programación)&oldid=1179362339"