Direktiva (programování)
Direktiva slouží v programování k řízení překladu překladačem (nebo assemblerem či interpretem). Direktivy nejsou součástí programovacího jazyka – přesněji nejsou součástí formální gramatiky a mohou se lišit kompilátor od kompilátoru. V některých případech direktivy specifikují globální chování, v jiných případech ovlivňují jen lokální sekce, tedy bloky programového kódu. V každém případě direktivy neprovádí žádnou akci v programovacím jazyce ale jen mění chování překladače.
Preprocesor jazyka C
V programovacím jazyce C a C++ je podporován jednoduchý preprocesor jazyka C. Řádky zdrojového kódu mohou být manipulovány preprocesrem, pomocí direktiv #define
a #include
.
V jazyce C je další direktiva #pragma
, která je použita k poskytnutí dodatečných informací pro kompilátor k využití pragmatických nebo implementačně závislých funkcích.
Všechny preprocesorové příkazy začínají znakem mřížky (#
).
Jiné jazyky
V programovacím jazyku Ada jsou direktivy kompilátoru nazývány pragmatismy (zkratka pro „pragmatická informace“).
V jazyce Common Lisp, jsou direktivy nazývány deklaracemi, a jsou specifikovány pomocí declare
konstrukce.[1] S jednou výjimkou jsou deklarace nepovinné a nemají vliv na sémantiku programu. Jedinou výjimkou je deklarace special
, která musí být specifikována tam kde je to patřičné.
Programovací jazyk Perl využívá klíčové slovo use
,[1] které importuje moduly a může být také použito ke specifikování direktiv například use strict;
nebo use utf8;
.
Programovací jazyk Python má dvě direktivy – from __future__ import feature
(která je definována v PEP 236 -- Back to the __future__), která mění chování jazyka (a používá existující syntaxi importu modulu, jako Perl), acoding
directiva (v komentáři) specifikuje kódování souboru se zdrojovým kódem (definováno v PEP 263 -- Defining Python Source Code Encodings).
ECMAScript také využívá use
syntaxi pro direktivy, s tím rozdílem, že pragmy jsou deklarovány jako textový řetězec (například use strict;
, nebo use asm;
), než volání funkce.
Reference
V tomto článku byl použit překlad textu z článku Directive (programming) na anglické Wikipedii.