Кіріспе
Компьютерлік бағдарламалауда директива немесе прагма ("прагматикалық") – компилятордың (немесе басқа аудармашының) кірісін қалай өңдеу керектігін анықтайтын тілдік құрылым. Бағдарламалау тіліне байланысты директивалар тіл грамматикасының бөлігі болуы мүмкін немесе болмауы мүмкін, сондай-ақ компилятордан компиляторға өзгеше болуы мүмкін. Оларды алдын ала өңдегіш (препроцессор) компилятордың мінез-құлқын анықтау үшін өңдей алады немесе жолақты параметрлеудің бір түрі ретінде жұмыс істейді. Кейбір жағдайларда директивалар жаһандық мінез-құлықты анықтайды, ал басқа жағдайларда олар тек жергілікті бөлімге, мысалы, бағдарламалық код блогына ғана әсер етеді. Кейбір жағдайларда, мысалы, кейбір C бағдарламаларында директивалар компиляторға ерікті кеңес ретінде қарастырылып, елемеуге болады, бірақ көбінесе олар міндетті болып табылады және орындалуы керек. Дегенмен, директива тілдің өзінде ешқандай әрекет атқармайды, ол тек компилятордың мінез-құлқын өзгертеді. Бұл термин кодқа енгізілген үшінші тараптың меншік тегтері мен командаларына (немесе белгілеуге) сілтеме жасау үшін де қолданылуы мүмкін, бұл даму ортасындағы компилятор, ассемблер және тіл құрылымдарын кеңейтетін қосымша орындалатын өңдеуге әкеледі. "Директива" термині бұйрық терминіне ұқсас түрлі мағыналарда қолданылады.
In computer programming, a directive or pragma (from "pragmatic") is a language construct that specifies how a compiler (or other translator) should process its input. Depending on the programming language, directives may or may not be part of the grammar of the language and may vary from compiler to compiler. They can be processed by a preprocessor to specify compiler behavior, or function as a form of in band parameterization. In some cases directives specify global behavior, while in other cases they only affect a local section, such as a block of programming code. In some cases, such as some C programs, directives are optional compiler hints and may be ignored, but normally they are prescriptive and must be followed. However, a directive does not perform any action in the language itself, but rather only a change in the behavior of the compiler. This term could be used to refer to proprietary third party tags and commands (or markup) embedded in code that result in additional executable processing that extend the existing compiler, assembler and language constructs present in the development environment. The term "directive" is also applied in a variety of ways that are similar to the term command.
C препроцессоры
C және C++ тілдерінде қарапайым макропроцессор қолдау көрсетіледі. #define және #include сияқты, алдын ала өңдеушімен өңделуге тиіс бастапқы код жолдары алдын ала өңдеуші директивалары деп аталады. C-тің тағы бір құрылымы, #pragma директивасы, компиляторға прагматикалық немесе жүзеге асыруға байланысты мүмкіндіктерді пайдалануға нұсқау беру үшін қолданылады. Бұл директиваны ең көп пайдаланатындар – OpenMP және OpenACC. C#-тың #if сияқты C-тің алдын ала өңдеуші директиваларына ұқсас синтаксистік құрылымдар да әдетте «директивалар» деп аталады, бірақ мұндай жағдайларда нақты алдын ала өңдеу фазасы болмауы мүмкін. Барлық алдын ала өңдеуші командалары хэш белгісімен (#) басталады, C++ тіліндегі импорт және модуль директиваларынан басқа.
Ассамблея тілі
Ассемблер тілінде директивалар, сондай-ақ псевдооперациялар немесе "псевдоопсиялар" деп те аталады, әдетте, нысаналық машина сияқты ақпаратты көрсетіп, код бөлімдері арасындағы шекараларды белгілейді, құрастыру уақытындағы айнымалыларды анықтайды және өзгертеді, макростарды анықтайды, шартты және қайталамалы кодты, резервтелген жад аймақтарын анықтайды және т.б. белгілейді. Кейбір, бірақ барлық емес, құрастырушылар псевдооперацияларды нұсқаулық мнемоникаларынан ажырату үшін арнайы синтаксис қолданады, мысалы, псевдооперацияның алдына нүкте қою арқылы, мысалы, END псевдооперациясы құрастырушыға кодты құрастыруды тоқтатуды бұйыруы мүмкін.
PL/SQL
Oracle корпорациясының PL/SQL процедуралық тілі "pragma" деп аталатын компилятор директивалары жиынтығын қамтиды.