Interested Article - Зарезервированное слово
- 2020-12-31
- 1
Зарезерви́рованное сло́во (или ключево́е сло́во ) — в языках программирования слово, имеющее специальное значение. Идентификаторы с такими именами запрещены.
В лексическом анализе зарезервированное слово фигурирует как одна лексема особого типа.
Примеры
-
В
Паскале
нельзя создать переменную
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, избежав пересечения.
См. также
|
Это
заготовка статьи
о
компьютерных языках
. Помогите Википедии, дополнив её.
|
- 2020-12-31
- 1