<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.multimediaexpo.cz/mmecz/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>http://www.multimediaexpo.cz/mmecz/index.php?action=history&amp;feed=atom&amp;title=OCaml</id>
		<title>OCaml - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="http://www.multimediaexpo.cz/mmecz/index.php?action=history&amp;feed=atom&amp;title=OCaml"/>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=OCaml&amp;action=history"/>
		<updated>2026-04-29T02:47:24Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.16.5</generator>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=OCaml&amp;diff=2847273&amp;oldid=prev</id>
		<title>Sysop: Nahrazení textu „Apple“ textem „Apple“</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=OCaml&amp;diff=2847273&amp;oldid=prev"/>
				<updated>2024-05-31T22:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;Nahrazení textu „&lt;a href=&quot;/mmecz/index.php?title=Apple&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Apple (stránka neexistuje)&quot;&gt;Apple&lt;/a&gt;“ textem „Apple“&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 31. 5. 2024, 22:16&lt;/td&gt;
		&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Profilování - pro měření výkonnosti&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Profilování - pro měření výkonnosti&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Kompilátor nativního kódu je dostupný pro mnohé platformy, včetně [[Unix]], [[Microsoft Windows]], a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;Apple&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/del&gt;[[Mac OS X]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Kompilátor nativního kódu je dostupný pro mnohé platformy, včetně [[Unix]], [[Microsoft Windows]], a Apple [[Mac OS X]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;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, [[Symmetric multiprocessing|symetrický multiprocessing]] není podporován.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;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, [[Symmetric multiprocessing|symetrický multiprocessing]] není podporován.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=OCaml&amp;diff=224715&amp;oldid=prev</id>
		<title>Sysop: 1 revizi</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=OCaml&amp;diff=224715&amp;oldid=prev"/>
				<updated>2013-07-16T20:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;1 revizi&lt;/p&gt;
&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 16. 7. 2013, 20:53&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	<entry>
		<id>http://www.multimediaexpo.cz/mmecz/index.php?title=OCaml&amp;diff=224714&amp;oldid=prev</id>
		<title>Sysop: 1 revizi</title>
		<link rel="alternate" type="text/html" href="http://www.multimediaexpo.cz/mmecz/index.php?title=OCaml&amp;diff=224714&amp;oldid=prev"/>
				<updated>2010-10-21T17:20:25Z</updated>
		
		<summary type="html">&lt;p&gt;1 revizi&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''OCaml''' je v [[Informatika (počítačová věda)|informatice]] implementace [[programovací jazyk|programovacího jazyka]] [[Caml]], která byla rozšířena o [[objektově orientované programování|objektově orientované]] konstrukce. OCaml je sada nástrojů obsahující [[Interpret (software)|interpret]], [[překladač]] do [[bytecode]] i překladač do [[Strojový kód|strojového kódu]], který provádí [[Optimalizace (informatika)|optimalizace]]. Obsahuje rozsáhlou [[Knihovna (programování)|knihovnu funkcí]], což v něm umožňuje dělat aplikace takové jako v [[Python]] nebo [[Perl]].&lt;br /&gt;
&lt;br /&gt;
Jazyk vytvořili v roce 1996 Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy a další jako [[Open source software|open source]] projekt, který je dále spravován institucí [[Institut National de Recherche en Informatique et en Automatique|INRIA]].&lt;br /&gt;
&lt;br /&gt;
== Základní principy ==&lt;br /&gt;
Programovací jazyky odvozené od ML jsou známé pro jejich staticky orientované typové systémy a typově usuzující kompilátory. OCaml sjednocuje pod ML typově orientované systémy [[Funkcionální programování|funkcionální]], [[Imperativní programování|imperativní]] a [[objektově orientované programování]].&lt;br /&gt;
&lt;br /&gt;
OCaml, jakožto staticky orientovaný typový systém, eliminuje velké množství programátorských chyb, které se mohou objevovat až při běhu programu. Nutí programátora brát ohled na omezení typově orientovaného systému. Typově usuzující kompilátor 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 (programovací jazyk)|Java]]).&lt;br /&gt;
&lt;br /&gt;
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ší vyhodou je, že zabraňuje typování za běhu programu, které snižuje výkonnost dynamických jazyků, přičemž je stále zaručen bezpečný chod programu.&lt;br /&gt;
&lt;br /&gt;
== Vlastnosti ==&lt;br /&gt;
OCaml distribuce obsahuje:&lt;br /&gt;
* Rozšířitelný parser a makro jazyk jménem [[Camlp4]], který umožňuje OCaml syntaxi rozšířit nebo dokonce nahradit&lt;br /&gt;
* Scanner a parser nástroje nazvané ocamllex a ocamlyacc&lt;br /&gt;
* [[Debugger]], který podporuje zpětné krokování pro zkoumání chyb&lt;br /&gt;
* Generátor dokumentace&lt;br /&gt;
* Profilování - pro měření výkonnosti&lt;br /&gt;
&lt;br /&gt;
Kompilátor nativního kódu je dostupný pro mnohé platformy, včetně [[Unix]], [[Microsoft Windows]], a [[Apple]] [[Mac OS X]].&lt;br /&gt;
&lt;br /&gt;
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, [[Symmetric multiprocessing|symetrický multiprocessing]] není podporován.&lt;br /&gt;
&lt;br /&gt;
== Ukázky kódu ==&lt;br /&gt;
Základní příkaz &amp;quot;ocalm&amp;quot; vypíše verzi programu:&lt;br /&gt;
&lt;br /&gt;
   $ ocaml&lt;br /&gt;
        Objective Caml version 3.09.0&lt;br /&gt;
 &lt;br /&gt;
   #&lt;br /&gt;
&lt;br /&gt;
Kód může být zapsán na &amp;quot;#&amp;quot; řádku. Například pro výpočet 1 + 2 * 3:&lt;br /&gt;
&lt;br /&gt;
   # 1 + 2 * 3;&lt;br /&gt;
   - : int = 7&lt;br /&gt;
&lt;br /&gt;
OCaml odvozuje datový typ z výrazu jako &amp;quot;int&amp;quot; (integer) a vrací výsledek &amp;quot;7&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Ahoj světe ===&lt;br /&gt;
Následující program &amp;quot;bonjour.ml&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ocaml&amp;quot;&amp;gt;&lt;br /&gt;
 print_endline &amp;quot;Bonjour Monde!&amp;quot;;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
může být zkompilován do bytecodu:&lt;br /&gt;
&lt;br /&gt;
 $ ocamlc bonjour.ml -o bonjour&lt;br /&gt;
&lt;br /&gt;
a spuštěn:&lt;br /&gt;
&lt;br /&gt;
 $ ./bonjour&lt;br /&gt;
 Bonjour Monde!&lt;br /&gt;
 $&lt;br /&gt;
&lt;br /&gt;
=== Součet seznamu integerů ===&lt;br /&gt;
Seznam je jeden z nejzákladnějších datových typů v OCaml. Následující příklad sčítá seznam integerů.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ocaml&amp;quot;&amp;gt;&lt;br /&gt;
let rec sum xs =&lt;br /&gt;
  match xs with&lt;br /&gt;
    | [] -&amp;gt; 0&lt;br /&gt;
    | x :: xs' -&amp;gt; x + sum xs'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  # sum [1;2;3;4;5];;&lt;br /&gt;
  - : int = 15&lt;br /&gt;
&lt;br /&gt;
=== Quicksort ===&lt;br /&gt;
OCaml má výstižné výrazy rekurzivních algoritmů. Následující příklad implementuje [[quicksort]] algoritmus pro třídění seznamu vzestupně.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ocaml&amp;quot;&amp;gt;&lt;br /&gt;
 let rec quicksort = function&lt;br /&gt;
   | [] -&amp;gt; []&lt;br /&gt;
   | pivot :: rest -&amp;gt;&lt;br /&gt;
       let is_less x = x &amp;lt; pivot in&lt;br /&gt;
       let left, right = List.partition is_less rest in&lt;br /&gt;
       quicksort left @ [pivot] @ quicksort right&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
¨&lt;br /&gt;
{{Článek z Wikipedie}}&lt;br /&gt;
[[Kategorie:Počítačové jazyky]]&lt;br /&gt;
[[Kategorie:Objektově orientované programování]]&lt;/div&gt;</summary>
		<author><name>Sysop</name></author>	</entry>

	</feed>