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 la transformación de programas. [4] NPL y Hope se destacan por ser los primeros lenguajes con evaluación de llamada por patrón y tipos de datos algebraicos . [5]

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

Cambiar el orden de las cláusulas no cambia el significado del programa, porque la coincidencia de patrones de Hope siempre favorece patrones más específicos sobre los menos específicos. Se requieren declaraciones de tipo explícitas en Hope; no hay opción para usar un algoritmo de inferencia de tipos en Hope.

La primera implementación de Hope fue estricta , pero desde esa ha habido versiones perezosas y versiones estrictas con constructores perezosos. British Telecom se embarcó en un proyecto con el Imperial College para implementar una versión estricta. El primer lanzamiento fue codificado por Thanos Vassilakis en 1986. Mark Tasng de British Telecom codificó otros lanzamientos. Un lenguaje sucesor Hope+ (desarrollado conjuntamente entre Imperial College e International Computers Limited (ICL) agregó anotaciones para dictar una evaluación estricta o perezosa. [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]