stringtranslate.com

Директива (программирование)

В компьютерном программировании директива или прагма (от слова «прагматический») — это языковая конструкция , которая определяет, как компилятор ( или другой транслятор ) должен обрабатывать вводимые данные. В зависимости от языка программирования директивы могут быть или не быть частью грамматики языка и могут различаться от компилятора к компилятору. Они могут обрабатываться препроцессором для указания поведения компилятора или функционировать как форма внутриполосной параметризации.

В некоторых случаях директивы определяют глобальное поведение, тогда как в других случаях они влияют только на локальный раздел, например блок программного кода. В некоторых случаях, например в некоторых программах на языке C, директивы являются необязательными подсказками компилятора и могут игнорироваться, но обычно они носят предписывающий характер и должны соблюдаться. Однако директива не выполняет никаких действий в самом языке, а лишь изменяет поведение компилятора.

Этот термин может использоваться для обозначения проприетарных сторонних тегов и команд (или разметки), встроенных в код, которые приводят к дополнительной обработке исполняемого файла, расширяющей существующие конструкции компилятора, ассемблера и языка, присутствующие в среде разработки. Термин «директива» также применяется различными способами, похожими на термин « команда» .

Препроцессор C

В C и C++ язык поддерживает простой препроцессор макросов . Строки исходного кода, которые должны обрабатываться препроцессором, например и, называются директивами препроцессора .#define#include

Другая конструкция C, #pragmaдиректива, используется для указания компилятору использовать прагматические или зависящие от реализации функции. Двумя известными пользователями этой директивы являются OpenMP и OpenACC .

Синтаксические конструкции, подобные директивам препроцессора C, например C# , #ifтакже обычно называются «директивами», хотя в этих случаях может не быть какой-либо реальной фазы предварительной обработки.

Все команды препроцессора начинаются с символа решетки (#), за исключением директив импорта и модуля в C++ . [1]

История

Директивы датируются JOVIAL . [2]

COBOL Имел директиву COPY.

В АЛГОЛе 68 директивы известны как прагматы (от «прагматический») и обозначаются прагматами или pr ; в новых языках, особенно в C, это слово сокращается до «прагма» (без «т»).

Обычное использование прагматов в АЛГОЛе 68 заключается в указании режима ограничения , что означает «как обозначаются ключевые слова». Далее следуют различные подобные директивы, определяющие режимы POINT, UPPER, RES (зарезервировано) или котировки. Обратите внимание на использование ограничения для самого ключевого слова pragmat (сокращенно pr ) либо в режиме POINT, либо в режиме кавычки:

.PR ТОЧКА .PR.PR ВЕРХНИЙ .PR.PR РЕС .PR'пр' цитирую 'пр'

Сегодня директивы наиболее известны в языке C начала 1970-х годов и продолжаются до текущего стандарта C99 , где они представляют собой либо инструкции для препроцессора C , либо, в форме #pragmaдиректив для самого компилятора. Они также в некоторой степени используются в более современных языках; см. ниже.

Другие языки

язык ассемблера

ПЛ/SQL

Смотрите также

Сноски

  1. ^ "P1857R1 - Обнаружение зависимостей модулей" .
  2. ^ «Глава 17 — Директивы» (PDF) . Руководство по компьютерному программированию для языка JOVIAL (J73) (PDF) (Технический отчет). Июнь 1981. стр. 243–263. RADC-TR-81-143 . Проверено 28 мая 2023 г.
  3. ^ Стил 1990, Глава 9: Декларации, с. 215–237.
  4. ^ "7.20. Прагмы". GHC 7.8.3 Документация . Проверено 18 июля 2014 г.
  5. ^ дотнет-бот. «Лексическая структура — спецификация языка C#». docs.microsoft.com . Проверено 1 ноября 2019 г.
  6. ^ БиллВагнер. «#pragma — Справочник по C#». docs.microsoft.com . Проверено 1 ноября 2019 г.
  7. ^ «Операторы Pragma, поддерживаемые SQLite» . www.sqlite.org .
  8. ^ Фейерштейн, Стивен ; Прибыл, Билл (23 января 2014 г.). Программирование Oracle PL/SQL (6-е изд.). O'Reilly Media, Inc. (опубликовано в 2014 г.). ISBN 9781449324414. Проверено 16 июня 2016 г. В PL/SQL есть ключевое слово PRAGMA со следующим синтаксисом: PRAGMA Instruction_to_compiler ; [...] PL/SQL предлагает несколько прагм [...]

Рекомендации

Внешние ссылки