A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Vznik | 1996 |
---|---|
Licence | LGPL |
Web | ocaml.org |
Přípona souboru | .ml, .mli |
OCaml je v informatice implementace programovacího jazyka Caml, která byla rozšířena o objektově orientované konstrukce. OCaml je sada nástrojů obsahující interpret, překladač do bytecode i překladač do strojového kódu, který provádí optimalizace. Obsahuje rozsáhlou knihovnu funkcí, což v něm umožňuje dělat aplikace takové jako v Pythonu nebo Perlu.
Jazyk vytvořili v roce 1996 Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy a další jako open source projekt, který je dále spravován institucí INRIA.
Základní principy
Programovací jazyky odvozené od ML jsou známé pro své staticky orientované typové systémy a typy odvozující kompilátory (překladače). OCaml sjednocuje pod ML typově orientované systémy funkcionální, imperativní a objektově orientované programování.
OCaml, jakožto jazyk se statickým typovým systémem, eliminuje velké množství programátorských chyb, které se jinak mohou objevovat až při běhu programu. Nutí programátora brát ohled na omezení typově orientovaného systému. Kompilátor s typovým odvozováním (inferencí) značně redukuje potřebu deklarace datového typu (obvykle není potřeba deklarace proměnných jako je to u jiných programovacích jazyků, například v jazyce Java).
OCaml je možná nejvýznamnější z vedlejších programovacích jazyků vzniklých na akademické půdě, s ohledem na výkonnost. Díky tomu, že je to staticky orientovaný typový systém, není možný výskyt typových chyb za běhu. Další výhodou je, že zabraňuje[kdo? typování za běhu programu, které snižuje výkonnost dynamických jazyků, přičemž je stále zaručen (pouze) typově bezpečný chod programu.
Vlastnosti
OCaml distribuce obsahuje:
- Rozšířitelný parser a makro jazyk jménem Camlp4, který umožňuje OCaml syntaxi rozšířit nebo dokonce nahradit
- Scanner a parser nástroje nazvané ocamllex a ocamlyacc
- Debugger, který podporuje zpětné krokování pro zkoumání chyb
- Generátor dokumentace
- Profilování – pro měření výkonnosti
Kompilátor nativního (strojového) kódu je dostupný pro mnohé platformy, včetně Unix, Microsoft Windows a Apple Mac OS X.
OCaml bytecode a nativní kód programu může být napsán ve vláknech. Nicméně garbage kolektor není navržen pro běh ve vláknech, symetrický multiprocessing není podporován.
Ukázky kódu
Základní příkaz ocaml vypíše verzi programu:
$ ocaml Objective Caml version 3.09.0 #
Kód může být zapsán na # řádku. Například pro výpočet 1 + 2 * 3:
# 1 + 2 * 3;; - : int = 7
OCaml odvozuje datový typ z výrazu jako int (integer) a vrací výsledek „7“.
Ahoj světe
Následující program „bonjour.ml“:
print_endline "Bonjour Monde!";;
může být zkompilován do bytecodu:
$ ocamlc bonjour.ml -o bonjour
a spuštěn:
$ ./bonjour Bonjour Monde! $
Součet seznamu integerů
Seznam je jeden z nejzákladnějších datových typů v OCaml. Následující příklad sčítá seznam integerů.
let rec sum xs =
match xs with
| -> 0
| x :: xs' -> x + sum xs'
# sum ;; - : int = 15
Quicksort
OCaml má výstižné výrazy rekurzivních algoritmů. Následující příklad implementuje quicksort algoritmus pro třídění seznamu vzestupně.
let rec quicksort = function
| ->
| pivot :: rest ->
let is_less x = x < pivot in
let left, right = List.partition is_less rest in
quicksort left @ @ quicksort right
Externí odkazy
- Obrázky, zvuky či videa k tématu OCaml na Wikimedia Commons
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antény
Chemické zdroje elektriny
Chladenie v elektrotechnike
Elektrická sústava automobilu
Elektrická trakcia
Elektrické prístroje
Elektrické súčiastky
Elektrické spotrebiče
Elektrické stroje
Čítanie (elektrotechnika)
Činný výkon
Štatistická dynamika
Živý vodič
Admitancia
Antiparalelné zapojenie
Asynchrónny motor
Blúdivý prúd
Bočník (elektrotechnika)
Diak (polovodičový prvok)
Displej s kvapalnými kryštálmi
Elektrická inštalácia
Elektrická rezonancia
Elektrická sila
Elektrická vodivosť
Elektrické zariadenie
Elektrický obvod
Elektrický zvonec
Elektroenergetika
Elektromer
Elektrometer
Elektromobil
Elektromotor
Elektromotorické napätie
Elektrotechnický náučný slovník
Elektrotechnika
Elektrotechnológia
Fázor
Faradayova klietka
Frekvencia (fyzika)
Graetzov mostík
Impedancia
Indukčnosť
Induktancia
Istič
Izolácia (elektrotechnika)
Izolant
Jadro vodiča
Jednobran
Jednosmerný prúd
Joulovo teplo
Katóda
Koaxiálny kábel
Kompenzácia účinníka
Konduktometria
Konektor (elektrotechnika)
Korónový výboj
Lanko (elektrotechnika)
Leptanie
Logické hradlo
Magnetická susceptibilita
Magnetizácia (veličina)
Merný elektrický odpor
Mobilné zariadenie
Napájací zdroj
Napäťový chránič
Napäťový násobič
Nortonova veta
Odpínač
Odpojovač
OLED
Olovený akumulátor
Paralelné zapojenie
Peltierov článok
Plošná hustota elektrického prúdu
Poistka (elektrotechnika)
Posuvný prúd
Prúdový chránič
Prenosové médium
Prieletový klystrón
Primárny elektrochemický článok
Reaktancia
Rekuperácia (dopravný prostriedok)
Relé
Reproduktorová výhybka
Rezistancia
Rozhranie (interface)
Sériové zapojenie
Seebeckov jav
Sekundárny elektrochemický článok
Settopbox
Skrat
Sonar
Spínač
Spínaný zdroj
Straty v mikropásikových vedeniach
Striedavý prúd
Stupeň ochrany krytom
Svetelná výbojka
Symetrizačný člen
Technická normalizácia
Tepelné relé
Tepelne vodivostný detektor
Termočlánok
Théveninova veta
Transformátor
Transformátor s fázovou reguláciou
Trojfázová sústava
Tuhá fáza (elektronika)
Tyratrón
Usmerňovač (elektrotechnika)
Uzemnenie
Uzol (vodiče)
Vírivý prúd
Výbojka
Varistor
Ventilátor
Vodič (elektrotechnika)
Voltov stĺp
Vstavaný systém
Zásuvka (elektrotechnika)
Zdroj (elektrotechnika)
Zisk antény
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk