Syntaktický cukr
Syntaktický cukr je v informatice označení pro takovou část syntaxe programovacího jazyka, jejíž jediným účelem je usnadnit programátorovi 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 interpretem.
Příklady
editovatŘetězce v Haskellu
editovatProgramovací jazyk Haskell přirozeně pracuje s textovými řetězci zkrátka jako se seznamy znaků, řetězec „ahoj“ je tedy možné napsat jako
['a', 'h', 'o', 'j']
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 uvozovek, tedy
"ahoj"
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í rekurzivních dvojic a zcela cukru prostý zápis řetězce „ahoj“ má tedy podobu:
(:) 'a' ((:) 'h' ((:) 'o' ((:) 'j' [])))
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
editovatV programovacím jazyce C je možné přistupovat k i-tému prvku pole a pomocí zápisu:
*(a+i)
Tedy pomocí syntaxe běžně užívané při práci s ukazateli. Kromě toho se ovšem uživateli nabízí jako syntaktický cukr také ekvivalentní a v praxi oblíbenější zápis
a[i]
Přístup k atributům struktury v jazyce C
editovatPro přístup k prvkům struktury, na kterou ukazuje ukazatel a, je možné použít
(*a).prvek
protože je třeba nejdřív provést dereferenci ukazatele, který ukazuje na strukturu, a poté pomocí tečky vybrat prvek. Jazyk C však nabízí čitelnější zápis
a->prvek