Зарезервированное слово

Поделись знанием:
Перейти к: навигация, поиск

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

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





Примеры

  • В Паскале нельзя создать переменную 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 (см. Соглашение о вызове) пишется с двумя знаками подчёркивания.

См. также


Напишите отзыв о статье "Зарезервированное слово"

Отрывок, характеризующий Зарезервированное слово

– Да скажите же, наконец, чтобы строились в батальонные колонны и шли в обход деревни, – сердито сказал Кутузов подъехавшему генералу. – Как же вы не поймете, ваше превосходительство, милостивый государь, что растянуться по этому дефилею улицы деревни нельзя, когда мы идем против неприятеля.
– Я предполагал построиться за деревней, ваше высокопревосходительство, – отвечал генерал.
Кутузов желчно засмеялся.
– Хороши вы будете, развертывая фронт в виду неприятеля, очень хороши.
– Неприятель еще далеко, ваше высокопревосходительство. По диспозиции…
– Диспозиция! – желчно вскрикнул Кутузов, – а это вам кто сказал?… Извольте делать, что вам приказывают.
– Слушаю с.
– Mon cher, – сказал шопотом князю Андрею Несвицкий, – le vieux est d'une humeur de chien. [Мой милый, наш старик сильно не в духе.]
К Кутузову подскакал австрийский офицер с зеленым плюмажем на шляпе, в белом мундире, и спросил от имени императора: выступила ли в дело четвертая колонна?
Кутузов, не отвечая ему, отвернулся, и взгляд его нечаянно попал на князя Андрея, стоявшего подле него. Увидав Болконского, Кутузов смягчил злое и едкое выражение взгляда, как бы сознавая, что его адъютант не был виноват в том, что делалось. И, не отвечая австрийскому адъютанту, он обратился к Болконскому:
– Allez voir, mon cher, si la troisieme division a depasse le village. Dites lui de s'arreter et d'attendre mes ordres. [Ступайте, мой милый, посмотрите, прошла ли через деревню третья дивизия. Велите ей остановиться и ждать моего приказа.]
Только что князь Андрей отъехал, он остановил его.
– Et demandez lui, si les tirailleurs sont postes, – прибавил он. – Ce qu'ils font, ce qu'ils font! [И спросите, размещены ли стрелки. – Что они делают, что они делают!] – проговорил он про себя, все не отвечая австрийцу.
Князь Андрей поскакал исполнять поручение.
Обогнав всё шедшие впереди батальоны, он остановил 3 ю дивизию и убедился, что, действительно, впереди наших колонн не было стрелковой цепи. Полковой командир бывшего впереди полка был очень удивлен переданным ему от главнокомандующего приказанием рассыпать стрелков. Полковой командир стоял тут в полной уверенности, что впереди его есть еще войска, и что неприятель не может быть ближе 10 ти верст. Действительно, впереди ничего не было видно, кроме пустынной местности, склоняющейся вперед и застланной густым туманом. Приказав от имени главнокомандующего исполнить упущенное, князь Андрей поскакал назад. Кутузов стоял всё на том же месте и, старчески опустившись на седле своим тучным телом, тяжело зевал, закрывши глаза. Войска уже не двигались, а стояли ружья к ноге.
– Хорошо, хорошо, – сказал он князю Андрею и обратился к генералу, который с часами в руках говорил, что пора бы двигаться, так как все колонны с левого фланга уже спустились.