Frege

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 11 juni 2016; kontroller kräver 3 redigeringar .
Frege
Språkklass funktionell , med lat utvärdering
Framträdde i 2011  ( 2011 )
Författare Ingo Wechsung
Filtillägg _ .fr
Släpp
Typ system statisk , stark , med typinferens
Blivit påverkad Java och Haskell
Licens BSD-licens
Hemsida github.com/frege/frege
OS plattformsoberoende

Frege är ett funktionellt programmeringsspråk nära Haskell , implementerat ovanpå JVM och låter dig använda alla Java -bibliotek .

Historik

När han pratar om Frege-språkets historia, minns Ingo Wechsung hur han introducerades till begreppet typinferens i ML 2003-2004 och sedan läste en artikel av Simon Peyton-Jones som hade ett exempel på implementering av typkontroll i Haskell . Som en Perl- programmerare vid den tiden började Ingo först experimentera med att implementera denna algoritm i Perl . Den resulterande implementeringen av den typade lambdakalkylen (Frege 1) visade sig vara för långsam för praktisk användning [2] .

2006-2007 började Ingo arbeta med Frege 2-översättaren, omskriven i Java för snabbhet . Frege började som ett experimentellt utbildningsprojekt, vars syfte var att studera begreppen modern funktionell programmering . 2007 började Ingo blogga fregepl.blogspot.com [3] , och beskrev sina experiment [2] .

Det resulterande språket kännetecknades inte av sin begreppsrenhet och var varken ett språk med strikt utvärdering eller ett språk med lat utvärdering . Författaren satte sedan ett mål att implementera en delmängd av Haskell, vilket mer eller mindre uppnåddes i maj 2011 när Frege publicerades på google-kod [2] .

Under 2015 genomfördes en undersökning bland deltagarna på JavaOne-konferensen om vilket alternativt Java- språk som körs ovanpå JVM de föredrar. Förstaplatsen gick till Frege [4] .

Jämförelse med Haskell

Exempel

modul hej var greeting friend = "Hej, " ++ vän ++ "!" huvudarg = gör println(hälsning "Världen")

Anteckningar

  1. Release 3.24 - 2018.
  2. 1 2 3 Paul Krill. Frege ansluter sig till Scala, Clojure bland Java funktionella språk . InfoWorld (2 oktober 2014). Datum för åtkomst: 21 januari 2016. Arkiverad från originalet 28 januari 2016.
  3. Frege programmeringsspråk: Vad är begärt (eller vad kommer det att vara)? . fregepl.blogspot.ru (28 september 2007). Hämtad 23 januari 2016. Arkiverad från originalet 4 mars 2016.
  4. JavaOne jämförde populariteten för språk som körs ovanpå den virtuella Java-maskinen  // Öppna system. - 2015. - Nr 11 . Arkiverad från originalet den 26 januari 2016.

Litteratur

Länkar