Skip to content
Surf Wiki
Save to docs
technology/programming-languages

From Surf Wiki (app.surf) — the open knowledge base

Hope (programming language)


FieldValue
nameHope
logo
screenshot
paradigmfunctional
designersRod Burstall
D. B. MacQueen
Don Sannella
developerUniversity of Edinburgh
released
latest release date
discontinuedYes
file format
website
dialectsHope+
influenced byNPL

D. B. MacQueen Don Sannella

Hope is a programming language based on functional programming developed in the 1970s at the University of Edinburgh. It predates Miranda and Haskell and is contemporaneous with ML, also developed at the university. Hope was derived from NPL, a simple functional language developed by Rod Burstall and John Darlington in their work on program transformation. NPL and Hope are notable for being the first languages with call-by-pattern evaluation and algebraic data types.

Hope was named for Sir Thomas Hope (c. 1681–1771), a Scottish agriculture reformer, after whom Hope Park Square in Edinburgh, the location of the artificial intelligence department at the time of the development of Hope, was also named.

The first implementation of Hope used strict evaluation, but there have since been lazy evaluation versions and strict versions with lazy constructors. A successor language Hope+, developed jointly between Imperial College and International Computers Limited, added annotations to dictate either strict or lazy evaluation.

Language details

A factorial program in Hope is: dec fact : num - num; --- fact 0 --- fact n

Changing the order of clauses does not change the meaning of the program, because Hope's pattern matching always favors more specific patterns over less specific ones. Explicit declarations of data types in Hope are required; there is no type inference algorithm.

Hope provides two built-in data structures: tuples and lists.

Implementations

Roger Bailey's Hope tutorial in the August 1985 issue of Byte references an interpreter for IBM PC DOS 2.0. British Telecom embarked on a project with Imperial College London to implement a version of Hope. The first release was coded by Thanos Vassilakis in 1986. Further releases were coded by Mark Tasng of British Telecom.

References

References

  1. (1980). "Proc. 1980 LISP Conference".
  2. (1977). "A transformation system for developing recursive programs". Journal of the Association for Computing Machinery.
  3. (2007-06-09). "A history of Haskell: being lazy with class". ACM.
  4. (1989). "Functional Programming: Proceedings of the 1989 Glasgow Workshop, Workshops in Computing". [[Springer-Verlag]].
  5. (1977). "Design considerations for a functional programming language (invited paper)".
  6. (August 1985). "A Hope Tutorial".
Info: Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Hope (programming language) — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report