Hope (programming language): Difference between revisions

Content deleted Content added
Undid revision 823614303 by Mr jarves (talk): Not the programming language this article is about.
Triptropic (talk | contribs)
m wikilinks, corrected Uni name
Line 1:
'''Hope''' is a small [[functional programming language]] developed in the 1970s at the [[University of Edinburgh|Edinburgh University]].<ref name="BMS">[[Rod Burstall |Burstall]] R.M, [[David MacQueen| MacQueen D.B]], Sannella D.T. (1980) ''Hope: An Experimental Applicative Language''. Conference Record of the 1980 LISP Conference, Stanford University, pp. 136-143.</ref><ref name="design"> R.M. Burstall. Design considerations for a functional programming language. Invited paper, Proc. Infotech State of the Art Conf. “The Software Revolution”, Copenhagen, 45–57 (1977)</ref><ref>
{{cite book
| title = Functional Programming with Hope
Line 17:
| url = http://www.devili.iki.fi/library/issue/136.en.html
| accessdate = 1 April 2015
}}</ref> It predates [[Miranda programming language|Miranda]] and [[Haskell (programming language)|Haskell]] and is contemporaneous with [[ML (programming language)|ML]], (also developed at Edinburgh)the University. Hope was derived from [[NPL (programming language)|NPL]],<ref name="design"/> a simple functional language developed by [[Rod Burstall]] and John Darlington in their work on program transformation.<ref> R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the Association for Computing Machinery, 24(1):44–67 (1977)</ref> NPL was, in turn, derived from [[Stephen Cole Kleene|Kleene Recursionrecursion Equationsequations]]. NPL and Hope are notable for being the first languages with call-by-pattern evaluation and algebraic data types.{{Citation needed|date=February 2014}} (Though [[SNOBOL]] is even older, and its 'patterns' may qualify as a hybrid between call-by-pattern and regular expression matching.){{Citation needed|date=April 2013}} Hope is an important language in the development of functional programming.
 
Hope was named for [[Sir Thomas Hope, 8th Baronet|Sir Thomas Hope]] (c. 1681–1771), a Scottish agricultural reformer, after whom ''Hope Park Square'' in Edinburgh, the ___location of the Department of Artificial Intelligence at the time of the development of Hope, was also named.
 
==Language details==
Line 29:
Unlike [[Haskell (programming language)|Haskell]], changing the order of the clauses does not change the meaning of the program, because Hope's pattern matching always favors more specific patterns over less specific ones. Another way in which Hope differs from Haskell and [[:Category:ML programming language family|ML]] is that explicit type declarations in Hope are required: there is no option to use a type-inference algorithm in Hope.
 
The first implementation of Hope was [[strict evaluation|strict]], but since that one there have been [[lazy evaluation|lazy]] versions and strict versions with lazy constructors (the language described in <ref name="BMS"/> has a lazy constructor for lists only). British Telecom embarked on a project with [[Imperial College London|Imperial College]] to implement a strict version. The first release was coded by Thanos Vassilakis in 1986. Further releases were coded by Mark Tasng of BT.
 
==References==