Haskell
From Wikipedia, the free encyclopedia
Remove ads
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).
Remove ads
Remove ads
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.[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]
Remove ads
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
Remove ads
Atsauces
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads