Frege

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 11 iunie 2016; verificările necesită 3 modificări .
Frege
Clasa de limba funcțional , cu evaluare leneșă
Aparut in 2011  ( 2011 )
Autor Ingo Wechsung
Extensie de fișier .fr
Eliberare
Tip sistem static , puternic , cu inferență de tip
A fost influențat Java și Haskell
Licență Licență BSD
Site-ul web github.com/frege/frege
OS multiplatformă

Frege este un limbaj de programare funcțional apropiat de Haskell , implementat deasupra JVM -ului și care vă permite să utilizați orice bibliotecă Java .

Istorie

Vorbind despre istoria limbajului Frege, Ingo Wechsung își amintește cum a fost introdus în conceptul de inferență de tip în ML în 2003-2004 și apoi a citit un articol de Simon Peyton-Jones care avea un exemplu de implementare a verificării de tip în Haskell . Fiind un programator Perl la acea vreme, Ingo a început pentru prima dată să experimenteze cu implementarea acestui algoritm în Perl . Implementarea rezultată a calculului lambda tipat (Frege 1) sa dovedit a fi prea lentă pentru utilizare practică [2] .

În 2006-2007, Ingo a început să lucreze la traducătorul Frege 2, rescris în Java pentru viteză . Frege a început ca un proiect educațional experimental, al cărui scop a fost să studieze conceptele de programare funcțională modernă . În 2007, Ingo a început să scrie pe blog fregepl.blogspot.com [3] , descriindu-și experimentele [2] .

Limba rezultată nu se distingea prin puritatea conceptului și nu era nici o limbă cu evaluare strictă, nici o limbă cu evaluare leneșă . Autorul și-a stabilit apoi un obiectiv de a implementa un subset de Haskell, care a fost mai mult sau mai puțin atins până în mai 2011, când Frege a fost publicat pe codul Google [2] .

În 2015, a fost realizat un sondaj în rândul participanților la conferința JavaOne despre limbajul Java alternativ care rulează pe JVM -ul pe care îl preferă. Pe primul loc i-a revenit Frege [4] .

Comparație cu Haskell

Exemple

modul salut unde salut prieten = "Bună ziua, " ++ prieten ++ "!" main args = do println( salutare „Lumea”)

Note

  1. Lansarea 3.24 - 2018.
  2. 1 2 3 Paul Krill. Frege se alătură Scala, Clojure printre limbajele funcționale Java . InfoWorld (2 octombrie 2014). Data accesului: 21 ianuarie 2016. Arhivat din original la 28 ianuarie 2016.
  3. Limbajul de programare Frege: Ce este frege (sau ce va fi)? . fregepl.blogspot.ru (28 septembrie 2007). Preluat la 23 ianuarie 2016. Arhivat din original la 4 martie 2016.
  4. JavaOne a comparat popularitatea limbilor care rulează pe mașina virtuală Java  // Open Systems. - 2015. - Nr. 11 . Arhivat din original pe 26 ianuarie 2016.

Literatură

Link -uri