Syntaktický cukr: Porovnání verzí

Smazaný obsah Přidaný obsah
→‎Pole v Céčku: Upraven nadpis.
m Robot: -zastaralá značka HTML; kosmetické úpravy
Řádek 1:
'''Syntaktický cukr''' je v [[Informatika|informatice]] označení pro takovou část [[syntax]]e [[programovací jazyk|programovacího jazyka]], jejíž jediným účelem je usnadnit [[programátor]]ovi zápis nějakých základních obratů. Nejedná se tedy o klíčovou součást jazyka; nemá vliv na to, jaké programy v něm lze napsat nebo jak budou rychlé, nemá vliv ani na architektonický návrh programu. Obvykle se jedná o možnost zapsat určité drobnosti alternativním, pro člověka příjemnějším způsobem, než je způsob pro daný jazyk základní, odpovídající jeho vnitřnímu návrhu a dobře zpracovatelný [[překladač]]em nebo [[interpret (software)|interpretinterpretem]]em.
 
== Příklady ==
=== Řetězce v Haskellu ===
Programovací jazyk [[Haskell (programovací jazyk)|Haskell]] přirozeně pracuje s [[textový řetězec|textovými řetězci]] zkrátka jako se seznamy [[znak (počítače)|znakznaků]]ů, řetězec „ahoj“ je tedy možné napsat jako
<sourcesyntaxhighlight lang="haskell">
['a', 'h', 'o', 'j']
</syntaxhighlight>
</source>
a nic nebrání tomu, aby jazyk fungoval pouze s tímto zápisem řetězců. Jako syntaktický cukr ovšem programátorovi Haskell nabízí ještě alternativní možnost zadání řetězce uzavřením znaku do [[uvozovky|uvozovek]], tedy
<sourcesyntaxhighlight lang="haskell">
"ahoj"
</syntaxhighlight>
</source>
Ve skutečnosti je i dříve uvedený zápis také syntaktickým cukrem, protože seznamy se ve své základní podobě v Haskellu zapisující pomocí [[rekurze|rekurzivních]] dvojic a zcela cukru prostý zápis řetězce „ahoj“ má tedy podobu:
<sourcesyntaxhighlight lang="haskell">
(:) 'a' ((:) 'h' ((:) 'o' ((:) 'j' [])))
</syntaxhighlight>
</source>
Sice je možné zapisovat všechny řetězce v Haskellu v tomto formátu, bylo by to nicméně pro člověka obtížně zpracovatelné a tedy také náchylné k chybám. Proto se jedná o příklad toho, kdy se jiný než ocukrovaný zápis v podstatě nepoužívá.
 
=== Pole v jazyce C ===
V [[C (programovací jazyk)|programovacím jazyce C]] je možné přistupovat k ''i''tému prvku [[pole (datová struktura)|pole]] ''a'' pomocí zápisu:
<sourcesyntaxhighlight lang="c">
*(a+i)
</syntaxhighlight>
</source>
Tedy pomocí syntaxe běžně užívané při práci s [[ukazatel (programování)|ukazateli]]. Kromě toho se ovšem uživateli nabízí jako syntaktický cukr také ekvivalentní a v praxi oblíbenější zápis
<sourcesyntaxhighlight lang="c">
a[i]
</syntaxhighlight>
</source>
 
[[Kategorie:Zdrojový kód]]