Зарезервированное слово
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Зарезерви́рованное сло́во (или ключево́е сло́во) — в языках программирования слово, имеющее специальное значение. Идентификаторы с такими именами запрещены.
В лексическом анализе зарезервированное слово фигурирует как одна лексема особого типа.
Примеры
- В Паскале нельзя создать переменную
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, избежав пересечения.
См. также
- Идентификатор
- Лексический анализ
Это заготовка статьи о компьютерных языках. Помогите Википедии, дополнив её. |
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Зарезервированное слово, Что такое Зарезервированное слово? Что означает Зарезервированное слово?
V state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 8 yanvarya 2022 Zarezervi rovannoe slo vo ili klyuchevo e slo vo v yazykah programmirovaniya slovo imeyushee specialnoe znachenie Identifikatory s takimi imenami zapresheny V leksicheskom analize zarezervirovannoe slovo figuriruet kak odna leksema osobogo tipa PrimeryV Paskale nelzya sozdat peremennuyu const eto slovo prednaznacheno dlya zadaniya konstant V Assemblere dlya x86 v kachestve identifikatorov zapresheny imena registrov ax di metody adresacii near far i t d DirektivaDirektiva slovo kotoroe yavlyaetsya zarezervirovannym isklyuchitelno v svoyom kontekste identifikatory s takimi imenami vpolne vozmozhny V Paskale direktivami yavlyayutsya slova read write forward near far i nekotorye drugie Naprimer v kode property XXX integer read fXXX write SetXXX read i write yavlyayutsya direktivami v otlichie ot identifikatora write v kode write x vyzyvaetsya funkciya System Write vyvodyashaya x v konsolZarezervirovannye slova i yazykonezavisimaya specifikaciyaZarezervirovannye slova predstavlyayut opredelyonnuyu problemu pri perevode teksta s yazyka na yazyk a inogda dazhe s kompilyatora na kompilyator i pri napisanii PO raznye chasti kotorogo napisany na raznyh yazykah mozhet sluchitsya chto na yazyke A budet sozdan identifikator kotoryj yavlyaetsya zarezervirovannym slovom yazyka B i poetomu on okazhetsya nedostupnym Obychno starayutsya izbegat slov kotorye v kakom libo iz shiroko izvestnyh yazykov yavlyayutsya zarezervirovannymi Vprochem byvaet chto pri rasshirenii yazyka slovo iz razreshyonnogo perehodit v zarezervirovannoe Vot neskolko sposobov resheniya etoj problemy Vengerskaya notaciya i drugie podobnye sposoby imenovaniya peremennyh delayut identifikatory zavedomo otlichayushimisya ot klyuchevyh slov lyubogo yazyka NET trebuet chtoby vse sovmestimye yazyki pozvolyali kakim libo obrazom zadavat identifikator sovpadayushij s klyuchevym slovom Naprimer v C slovo this yavlyaetsya zarezervirovannym a this identifikatorom Pohozhim obrazom postupili vo vstroennom assemblere Paskalya eax zarezervirovannoe slovo nazvanie registra amp eax identifikator V Si vse nestandartnye proizvoditele i platformozavisimye zarezervirovannye slova nachinayutsya s dvuh znakov podchyorkivaniya Naprimer v C Builder mozhet byt takaya zapis fastcall int DoSomething int x V dannom sluchae platformozavisimoe zarezervirovannoe slovo fastcall sm Soglashenie o vyzove pishetsya s dvumya znakami podchyorkivaniya V Embarcadero Delphi mozhno kak ugodno pereimenovat funkciyu importirovannuyu iz DLL izbezhav peresecheniya Sm takzheIdentifikator Leksicheskij analizEto zagotovka stati o kompyuternyh yazykah Pomogite Vikipedii dopolniv eyo
