Literál
Literál (z anglického slova „doslovný“) je přímý zápis určité hodnoty v programovacím jazyce. Zápisy 0
, 3
, 15.7
, 6.67e-11
jsou číselné literály ve většině programovacích jazyků; v mnoha jazycích jsou jako literály označovány i přímé zápisy znakových ('a'
) nebo řetězcových ("abc"
) konstant, případně jiné konstanty zapsané klíčovým slovem, případně v jazyce definovaným identifikátorem (false
, true
, null
).
Použití
V programování, ve skriptovacím nebo programovacím jazyce, představují literály pevně danou hodnotu, vyjádřenou explicitně, bez použití jiných prvků jazyka. Mezi literály tedy nepatří proměnné ani konstanty programu, literály se však používají k definování nebo inicializaci jejich hodnot.
Z pohledu lexikální analýzy programu či skriptu se často vyžaduje, aby literály byly atomické symboly, někdy aby se jednalo o klíčová slova jazyka.
Při syntaktické analýze se naopak slovem literál někdy označují všechny lexikální symboly (i identifikátory, klíčová slova, operátory, atd.), nejen přímé zápisy konkrétní hodnoty.
Literály mohou být různých typů – řetězcové (znakové), číselné, logické a jiné. Nejčastější literály (číselné a řetězcové) jsou vyjádřeny jako sekvence číslic nebo znaků, jiné (např. jako booleovské hodnoty true a false) mohou být definovány samotným jazykem.
Většina stylů programování nedoporučuje volné používání literálů v textu programu, nýbrž doporučuje je používat pouze pro deklarace pojmenovaných konstant. Motivací k tomuto omezení je usnadnění následných změn programu při změně konstant a odlišení případných hodnot, které jsou stejné jen náhodou. Úplný zákaz používání literálů mimo oblast deklarací však může vést k horší srozumitelnosti programů, zejména při použití nevhodných konvencí pro pojmenovávání.
Jiný výskyt pojmu
- jako vstupní řetězec konečného automatu
- jako řetězec reprezentovaný „tak, jak je“ v oblasti datové komprimace
- jako terminátor (konečný symbol) regulárních výrazů
- v typografii jako chyba ve formě jednoho znaku
- v matematické logice, jako dále nedělitelný prvek či jeho negace
- v souvislosti s určením asociačních pravidel v oblasti data miningu