Haskell
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:
- '#' lietošana identifikatoru nosaukumos
- hierarhiski moduļi
- šablonu sargi
- skatu šabloni
- rekursīva do-notācija
- paralēli sarakstu aptvērumi (parallel list comprehensions)
- vispārināti (līdzīgi SQL sintaksei) sarakstu aptvērumi
- postfiksi operatori
- record puns
Atsauces
[labot šo sadaļu | labot pirmkodu]- ↑ Profesora Pola Hudaka mājaslapa
- ↑ [Haskell-cafe] anybody can tell me the pronuncation of "haskell"?
- ↑ [Haskell-cafe] anybody can tell me the pronuncation of "haskell"?
- ↑ 4,0 4,1 4,2 «Preface». Haskell 98 Language and Libraries: The Revised Report. December 2002.
- ↑ «The History of Haskell». Arhivēts no oriģināla, laiks: 2009. gada 29. aprīlī. Skatīts: 2009. gada 23. jūnijā.
- ↑ Saimons Peitons Džonss (redaktors). «Haskell 98 Language and Libraries: The Revised Report», December 2002.
- ↑ «Future development of Haskell».
- ↑ «Welcome to Haskell'». The Haskell' Wiki. Arhivēts no oriģināla, laiks: 2009. gada 23. aprīlī. Skatīts: 2009. gada 23. jūnijā.