WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Зарезерви́рованное сло́во (или ключево́е сло́во) — в языках программирования слово, имеющее специальное значение. Идентификаторы с такими именами запрещены.

В лексическом анализе зарезервированное слово фигурирует как одна лексема особого типа.

Примеры

  • В Паскале нельзя создать переменную const — это слово предназначено для задания констант.
  • В Ассемблере для x86 в качестве идентификаторов запрещены имена регистров (ax, di); методы адресации (near, far) и т. д.

Директива

Директива — слово, которое является зарезервированным исключительно в своём контексте; идентификаторы с такими именами вполне возможны. В Паскале директивами являются слова read, write, forward, near, far и некоторые другие.

Например, в коде

property XXX : integer read fXXX write SetXXX;

read и write являются директивами, в отличие от идентификатора write в коде

write(x);   // вызывается функция System.Write, выводящая x в консоль

Зарезервированные слова и языконезависимая спецификация

Зарезервированные слова представляют определённую проблему при переводе текста с языка на язык (а иногда даже с компилятора на компилятор) и при написании ПО, разные части которого написаны на разных языках — может случиться, что на языке А будет создан идентификатор, который является зарезервированным словом языка Б и поэтому он окажется недоступным. Обычно стараются избегать слов, которые в каком-либо из широко известных языков являются зарезервированными. Впрочем, бывает, что при расширении языка слово из разрешённого переходит в зарезервированное. Вот несколько способов решения этой проблемы.

  • Венгерская нотация и другие подобные способы именования переменных делают идентификаторы заведомо отличающимися от ключевых слов любого языка.
  • .NET требует, чтобы все совместимые языки позволяли каким-либо образом задавать идентификатор, совпадающий с ключевым словом. Например, в C# слово this является зарезервированным, а @this — идентификатором.
  • Похожим образом поступили во встроенном ассемблере Паскаля: eax — зарезервированное слово (название регистра), &eax — идентификатор.
  • В Си все нестандартные (производителе- и платформозависимые) зарезервированные слова начинаются с двух знаков подчёркивания. Например, в C Builder может быть такая запись:
__fastcall int DoSomething(int x)
В данном случае платформозависимое зарезервированное слово __fastcall (см. Соглашение о вызове) пишется с двумя знаками подчёркивания.
  • В Embarcadero Delphi можно как угодно переименовать функцию, импортированную из DLL, избежав пересечения.

См. также

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии