Tu banner alternativo

Clean (ohjelmointikieli)

Nykymaailmassa Clean (ohjelmointikieli) on saavuttanut suurta merkitystä ja mielenkiintoa. On olemassa monia tutkimuksia ja keskusteluja, jotka pyörivät Clean (ohjelmointikieli):n ympärillä, koska sen vaikutus kattaa yhteiskunnan eri näkökulmia. Sekä henkilökohtaisella että kollektiivisella tasolla Clean (ohjelmointikieli):stä on tullut toistuva keskustelunaihe ja huomion keskipiste. On tullut ratkaisevan tärkeää ymmärtää ja analysoida Clean (ohjelmointikieli):tä eri näkökulmista, jotta saadaan täydellinen kuva sen ulottuvuudesta ja vaikutuksesta. Siksi on tärkeää käsitellä Clean (ohjelmointikieli):n aihetta yksityiskohtaisesti ja objektiivisesti, jotta voidaan edistää keskustelua ja rikastaa tietoa tästä aiheesta.

Tu banner alternativo
Clean
Paradigma funktionaalinen
Tyypitys vahva, staattinen, dynaaminen
Muistinhallinta roskienkeruu
Julkaistu 1984
Kehittäjä Software Technology Research Group of Radboud University Nijmegen
Kehitysversio 2.2
Merkittävimmät toteutukset Clean
Vaikutteet Lean, Haskell
Käyttöjärjestelmä Windows, Mac, Linux, Solaris
Verkkosivu http://clean.cs.ru.nl/
Uutisryhmä julkaisut keskustelu

Clean on puhtaasti funktionaalinen ohjelmointikieli. Kielen pääasiallinen toteutus on Nijmegenin yliopiston tekemä, ja se on saatavilla Microsoft Windows-, Apple Macintosh-, Solaris- ja Linux-käyttöjärjestelmälle. Toteutus on kaksoislisensöity – se on saatavilla sekä GNU LGPL- että kaupallisen suljetun lähdekoodin lisenssillä. Kielen kehitystyö tapahtuu pääasiassa Windows-alustalla, mikä näkyy siinä, että muille alustoille ei ole vielä saatavilla dynaamista linkkeriä. Myös I/O-kirjastojen toteutuksessa on eroja.

Clean on hyvin samankaltainen kieli kuin Haskell. Kielten syntaksissa on pieniä eroja, minkä lisäksi Clean sisältää joukon Haskell 98 -stardardista puuttuvia ominaisuuksia. Kielen ainutlaatuisiin piirteisiin lukeutuvat uniikit tyypit, joilla jonkin arvon olemassaolo voidaan rajoittaa tarkalleen yhteen paikkaan ohjelmassa. Ominaisuutta voidaan käyttää monadien asemesta pakotetun peräkkäisyyden toteuttamiseen esimerkiksi I/O:ssa. Lisäksi ominaisuudella voidaan taata, ettei arvon muuttaminen paikallaan riko viittauksellista läpinäkyvyyttä. Cleanin laskenta perustuu graafin uudelleenkirjoittamiseen ja reduktioihin. Yhdessä nämä ominaisuudet tekevät kielen toteutuksesta erittäin tehokkaan. Kielen käännös tapahtuu kaksivaiheisesti ABC-tavukoodin kautta natiivikoodiksi.

Kieltä käytetään lähinnä akateemisessa tutkimuksessa.

Ominaisuuksia

Kielen merkittävimmät sisäänrakennetut ja muut ominaisuudet ovat:

Esimerkkejä

Hei maailma:

Start = "Hei maailma"

Kertoma:

kertoma 0 = 1
kertoma n = n * kertoma (n - 1)

// tulostetaan 10:n kertoma
Start = kertoma 10

Fibonacci-sarja:

fib 0 = 0 
fib 1 = 1 
fib n = fib (n - 2) + fib (n - 1)

Potenssioperaattori:

(^) infixr 8 :: Int Int → Int
(^) x 0 = 1
(^) x n = x * x ^ (n - 1)

Yllä tyyppisignatuuri määrää, että funktio on oikealta assosiatiivinen, käyttää infix-muotoa ja sen presedenssin prioriteetti on 8. Tällöin ^ sitoo voimakkaammin kuin *, jonka vuoksi x*x^(n-1) on yhtä suuri x*(x^(n-1)):n eikä (x*x)^(n-1):n kanssa. Tämä funktio on määritelty Cleanin standardiympäristössä.

Aiheesta muualla