Multimediaexpo.cz je již 18 let na českém internetu !!
Clean
Z Multimediaexpo.cz
Clean je v informatice univerzální čistě funkcionální programovací jazyk, který je silně ovlivněn jazykem Haskell.
Obsah |
Vlastnosti
Jazyk Clean je silně ovlivněn jazykem Haskell. Má s ním proto společné vlastnosti: referential transparency, list comprehension, guards, garbage collector, higher order functions & currying a lazy evaluation. Součástí distribuce Cleanu je i vývojové prostředí.
Clean má pro změny stavů a I/O operace alternativu k monádám jazyka Haskell ve formě (anglicky uniqueness type), že objekty jsou používány jedno-threadově (anglicky single-threaded).
Příklady
module hello Start = "Hello, world!"
module factorial fac 0 = 1 fac n = n * fac (n-1) // find the factorial of 10 Start = fac 10
module fibonacci fib 0 = 0 fib 1 = 1 fib n = fib (n - 2) + fib (n - 1) Start = fib 7
(^) infixr 8 :: Int Int -> Int (^) x 0 = 1 (^) x n = x * x ^ (n-1)
Tento typ deklarace udává, že se jedná o asociativní infixovou notaci s prioritou 8: důsledkem toho je, že x*x^(n-1)
je rovnocenný s x*(x^(n-1))
a v protikladu k (x*x)^(n-1)
; tato notace je ve standardním prostředí Cleanu předdeklarovaná.
Jak Clean pracuje
Postup je založen na přepisování grafů (graph rewriting) a redukci. Konstanty, jako například číselné grafy a funkční grafy přepisují vzorce. To v kombinaci s kompilací do nativního kódu dělá programy psané v Clean poměrně rychlé, a to i s vysokou abstrakcí.
Kompilace
- Zdrojové soubory (.icl) a projektové soubory (.dcl) jsou převedeny do Clean platformy nezávislého byte kódu (.abc), implementovaného v jazyce C a Clean.
- Byte kód (bytecode) je převedený do strojového kódu (.obj) pomocí C.
- V Cleanu je strojový kód spojen s dalšími soubory v modulu a za běhu převeden do běžně spustitelné formy.
Starší verze Cleanu byly psané zcela v C, čímž se předcházelo problémům při bootstrappingu.
Platformy
Clean je k dispozici pro Microsoft Windows. S omezenými vstupně/výstupními schopnostmi a bez funkce „Dynamics“ je také dostupný pro Apple, Solaris a Linux.
Licence
Clean je distribuován ve dvou licencích: k dispozici je za podmínek GNU LGPL a také pod vlastnickou licencí.
Související články
Externí odkazy
- Clean-domácí stránka
- Čistěte čistý ve FOLDOC
- Clean ve strojovém jazyce Benchmarks Game
- Clean vs. Haskell
- Clean FAQ
- Domovská stránka Haskellu
- Haskell.cz O Haskellu v češtině
- Seriál Haskell a funkcionální programování
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |