Clean

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Clean
Vznikl v: 1987
Vývojář: softwarová technologická výzkumná skupina Radboud University Nijmegen
Hlavní implementace: Clean
OS: multiplatformní

Clean je v informatice univerzální čistě funkcionální programovací jazyk, který je silně ovlivněn jazykem Haskell.

Vlastnosti[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Hello world:

 module hello
 Start = "Hello, world!"

Faktoriál:

 module factorial
 fac 0 = 1
 fac n = n * fac (n-1)
 
 // find the factorial of 10
 Start = fac 10

Fibonacciho posloupnost:

 module fibonacci
 fib 0 = 0 
 fib 1 = 1 
 fib n = fib (n - 2) + fib (n - 1)
 Start = fib 7

Infixová notace:

 (^) 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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

  1. 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.
  2. Byte kód (bytecode) je převedený do strojového kódu (.obj) pomocí C.
  3. 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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Clean je distribuován ve dvou licencích: k dispozici je za podmínek GNU LGPL a také pod vlastnickou licencí.

Odkazy[editovat | editovat zdroj]

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]