Haskell

Haskell (izrunā: ˈhæskəl) 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 

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. Pirmā Haskell versija tika nodefinēta 1990. gadā. 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.

1999. gada februārī Haskell 98 valodas standarts tika publicēts kā "The Haskell 98 Report". 2003. gada janvārī tika publicēta šī dokumenta pārskatīta versija kā "Haskell 98 Language and Libraries: The Revised Report". 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") This process is intended to produce a minor revision of Haskell 98.

Valodas īpašības 

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 

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 

Programmēšanas valodas
Mācību programmatūra