Haskell

Vikipēdijas lapa
Pārlēkt uz: navigācija, meklēt
Haskell
Haskell logo
Failu paplašinājumi .hs, .lhs
Paradigma funkcionāla, ne-strikta, modulāra
Izveidota 1990
Autors Saimons Peitons Džonss, Pols Hudaks[1], Filips Vadlers un citi.
Tipu sistēma statiska, stipra, secinoša
Galvenās implementācijas GHC, Hugs, NHC, JHC, Yhc
Dialekti Helium, Gofer
Ietekmējusies no Lisp un Scheme, ISWIM, FP, APL, Hope un Hope+, SISAL, Miranda, ML un Standard ML, Lazy ML, Orwell, Alfl, Id, Ponder, Perl
Ietekmējusi Bluespec, Clojure, C#, CAL, Cat, Cayenne, Clean, Curry, Epigram, Escher, F#, Factor, Isabelle, Java šabloni, LINQ, Mercury, Omega, Perl 6, Python, Qi, Scala, Timber, Visual Basic 9.0
OS vairākplatformu
Tīmekļa vietne http://haskell.org/

Haskell (izrunā: ˈhæskəl[2][3]) ir standartizēta dažāda pielietojuma pilnīgi funkcionāla programmēšanas valoda ar ne-striktu semantiku un stipru, statisku tipu sistēmu. Tā nosaukta par godu loģiķim Haskelam Kurijam (Haskell Curry).

Vēsture[labot šo sadaļu | labot pirmkodu]

Līdz ar Miranda programmēšanas valodas parādīšanos 1985. gadā palielinājās interese par "slinkajām" funkcionālām programmēšanas valodām. 1987. gadā eksistēja jau vairāk kā desmit ne-striktas, pilnīgi funkcionālas programmēšanas valodas. Miranda bija no visām visvairāk lietotā, bet nebija brīvi izmantojama. FPCA '87 (Functional Programming Languages and Computer Architecture) konferencē Portlendā tika nolemts, ka nepieciešams izveidot komiteju, kas definētu atvērtu standartu šādām valodām. Komitejas uzdevums bija apvienot esošās funkcionālās programmēšanas valodas vienā kopējā, kas kalpotu kā pamats turpmākiem funkcionālu programmēšanas valodu pētījumiem[4]. Pirmā Haskell versija tika nodefinēta 1990. gadā[5]. Komiteja turpināja pilnveidot valodas definīciju. 1997. gada nogalē tika izlaists Haskell 98, paredzēts kā stabila, minimāla, portējama valodas versija. Tāpat tika izlaista valodas standarta bibliotēka mācību nolūkiem un kā pamats turpmākiem valodas paplašinājumiem. Komiteja nepārprotami atbalstīja Haskell paplašinājumu, variantu un eksperimentālu īpašību izstrādi.[4]

1999. gada februārī Haskell 98 valodas standarts tika publicēts kā "The Haskell 98 Report". [4] 2003. gada janvārī tika publicēta šī dokumenta pārskatīta versija kā "Haskell 98 Language and Libraries: The Revised Report".[6]. Haskell valoda turpina strauji attīstīties. GHC ir šīs valodas de fakto standarta implementācija. 2006. gada sākumā sākās Haskell 98 turpinājuma izstrādes process. Tas neformāli pazīstams kā Haskell′ ("Haskell Prime")[7] This process is intended to produce a minor revision of Haskell 98.[8].

Valodas īpašības[labot šo sadaļu | labot pirmkodu]

Haskell ir liela, sarežģīta valoda, tai ir vairākas standizētas versijas un daudzi nestandartizēti paplašinājumi. Tai ir daudzas kopīgas īpašības ar imperatīvām valodām un citām funkcionālām valodām. Tai ir arī vairākas unikālas īpašības. Galvenās valodas iezīmes ir:

  • pēc noklusējuma norādošs caurspīdīgums (referential transparency, purity)
  • pēc noklusējuma slinka izpildīšana (lazy evaluation)
  • statiska tipu sistēma, par pamatu ņemti F sistēmas lambda rēķini
  • iespējama uz tukšumzīmēm jutīga sintakse
  • algebriski datu tipi
  • šablonu pieskaņošana (pattern matching) datiem
  • tipu klases
  • biežs curry lietojums
  • sintakse sarakstu aptvērumiem (list comprehension), sargi

Papildus šīm pamata īpašībām, GHC—populārākā Haskell implementācija—atbalsta dažādus paplašinājumus.

Sintaktiski paplašinājumi[labot šo sadaļu | labot pirmkodu]

Haskell 98 ir izveidoti vairāki sintaktiski paplašinājumi:

Atsauces[labot šo sadaļu | labot pirmkodu]