Articulo de referencia

Esperanza (lenguaje de programación)

D. B. MacQueen [[Don Sannella]]"},"developer":{"wt":"[[University of Edinburgh]]"},"released":{"wt":"{{Start date and age|1980}}"},"latest release version":{"wt":""},"latest rel...

Hope es un lenguaje de programación basado en 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 por patrón y tipos de datos algebraicos . [ 5 ]

Hope recibió su nombre en honor a Sir Thomas Hope (c. 1681–1771), un reformador agrícola escocés , de quien también se nombró Hope Park Square en Edimburgo , donde se ubicaba el departamento de inteligencia artificial en el momento del desarrollo de Hope.

La primera implementación de Hope utilizaba evaluación estricta , pero desde entonces han surgido versiones con evaluación perezosa y versiones estrictas con constructores perezosos. Un lenguaje sucesor, Hope+, desarrollado conjuntamente por el Imperial College e International Computers Limited , añadió anotaciones para indicar si se debía utilizar evaluación estricta o perezosa. [ 6 ]

Detalles del idioma

Un programa factorial en Hope es:

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

Cambiar el orden de las cláusulas no altera el significado del programa, ya que la coincidencia de patrones de Hope siempre da prioridad a los patrones más específicos. En Hope se requieren declaraciones explícitas de los tipos de datos ; no existe un algoritmo de inferencia de tipos .

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

Implementaciones

El tutorial de Hope de Roger Bailey en el número de agosto de 1985 de Byte hace referencia a un intérprete para IBM PC DOS 2.0. [ 7 ] British Telecom se embarcó en un proyecto con el Imperial College de Londres para implementar una versión de Hope. La primera versión fue codificada por Thanos Vassilakis en 1986. Las versiones posteriores fueron codificadas por Mark Tasng de British Telecom.

Referencias

  1. Burstall, RM ; MacQueen, DB; Sannella, DT (1980). "Hope: Un lenguaje aplicativo experimental". Actas de la Conferencia LISP de 1980 (PDF) . Universidad de Stanford, Stanford, California, Estados Unidos. págs.  136-143.{{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  2. Bailey, Roger (1 de abril de 1990). Programación funcional con Hope . Serie Ellis Horwood en computadoras y sus aplicaciones. Ellis Horwood Ltd.
  3. Burstall, RM (1977). Consideraciones de diseño para un lenguaje de programación funcional (artículo invitado) . Actas de la Conferencia Infotech sobre el Estado del Arte "La Revolución del Software". Copenhague. págs. 45–57 . 
  4. Burstall, RM ; Darlington, J. (1977). "Un sistema de transformación para el desarrollo de programas recursivos". Journal of the Association for Computing Machinery . 24 (1): 44– 67.
  5. Hudak, Paul ; Hughes, John ; Peyton Jones, Simon ; Wadler, Philip (09/06/2007). Una historia de Haskell: ser perezoso con clase . ACM. págs. 12–1 . doi : 10.1145/1238844.1238856 . ISBN  9781595937667. S2CID 52847907 . 
  6. Kewley, John; Glynn, Kevin (1989). "Anotaciones de evaluación para Hope+". En Davis, Kei; Hughes, RJM (eds.). Programación funcional: Actas del taller de Glasgow de 1989, Talleres en computación . Londres, Reino Unido: Springer-Verlag (publicado en 1990). págs. 329–337 . 
  7. 1 2 Bailey, Roger (agosto de 1985). "Un tutorial de esperanza" . Byte . Vol. 10, n.º 8. págs. 235-258 . Recuperado el 13 de enero de 2025 .   
  • Intérprete Hope para Windows
  • Entrada en el diccionario en línea de lenguajes de programación.