Hope (limbaj de programare)

Hope este un mic limbaj de programare funcțional dezvoltat în anii 1970 la Universitatea din Edinburgh.[1][2] Înainte de Miranda și Haskell și este contemporan cu ML, de asemenea, dezvoltat la Universitate. Hope a fost derivată din NPL,[3] un limbaj simplu funcțional dezvoltat de Rod Burstall și John Darlington în lucrarea lor de transformare a programelor.[4] NPL și Hope sunt notabile pentru a fi primele limbi cu evaluarea prin tipare de tip și tipuri de date algebrice.[5]

Detalii despre limbaj

modificare

Un program factorial în Hope este:

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

Schimbarea ordinii clauzelor nu modifică sensul programului, deoarece modelul de potrivire al lui Hope întotdeauna favorizează modele mai specifice pe cele mai puțin specifice. Declarații de tip explicite în Hope sunt necesare; nu există opțiunea de a folosi un algoritm de tip-inference în Hope.

Hope oferă două structuri de date încorporate: tupluri și liste.[6]

Implementări

modificare

Prima implementare a lui Hope a fost strictă, dar din moment ce au fost versiuni lenești și versiuni stricte cu constructori leneși. British Telecom sa angajat într-un proiect cu Imperial College London pentru implementarea unei versiuni stricte. Prima lansare a fost codificată de Thanos Vassilakis în 1986. Alte versiuni au fost codificate de Mark Tasng de la British Telecom.[6]

  1. ^ Burstall R.M, MacQueen D.B, Sannella D.T. (1980) Hope: An Experimental Applicative Language. Conference Record of the 1980 LISP Conference, Stanford University, pp. 136-143.
  2. ^ Bailey, Roger (). Functional Programming with Hope. Ellis Horwood Series in Computers and Their Applications. Ellis Horwood Ltd. 
  3. ^ 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)
  4. ^ 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)
  5. ^ Hudak, Paul; Hughes, John; Peyton Jones, Simon; Wadler, Philip (). „A history of Haskell: being lazy with class”. ACM: 12–1. doi:10.1145/1238844.1238856. ISBN 9781595937667. 
  6. ^ a b Bailey, Roger (august 1985). „A Hope Tutorial”. BYTE. Vol. 10 nr. 8. Accesat în . 

Legături externe

modificare