Słowo zastrzeżone

Z Wikipedii, wolnej encyklopedii

Słowo zastrzeżone[1][2][3][4], słowo zarezerwowane[5]słowo (ciąg znaków) zdefiniowane w składni określonego języka programowania, które nie może być użyte jako definiowany przez programistę element kodu źródłowego, mimo iż spełnia ono pozostałe kryteria definiowania danego elementu (np. identyfikatora).

Stosowanie słów zastrzeżonych[edytuj | edytuj kod]

Najczęściej słowa zastrzeżone, w danym języku programowania, są jednocześnie słowami kluczowymi tego języka. W większości języków wysokiego poziomu wszystkie słowa kluczowe są słowami zastrzeżonymi. Słowa zastrzeżone nie mogą być używane do tworzenia (nazywania, identyfikowania) definiowanych przez programistę elementów kodu źródłowego, takich jak identyfikatory dla zmiennych, nazwy podprogramów, modułów. Nie mogą być również wartościami typów wyliczeniowych ani etykietami instrukcji. Ze względów praktycznych (łatwości zapamiętania przypisanej funkcjonalności) słowa zastrzeżone i kluczowe są przeważnie identyczne ze słowami języka naturalnego, najczęściej angielskiego[1]. Pod względem zestawu zastosowanych znaków oraz długości słowa spełniają one kryteria tworzenia nazw dla elementów programu (np. identyfikatorów), jednak użycie ich w tym celu jest niedozwolone i najczęściej rozpoznawane jako błąd składni.

Poziomy zastrzeżeń[edytuj | edytuj kod]

Słowa kluczowe języków programowania mogą być:

  1. zastrzeżone w każdym kontekście;
  2. częściowo zastrzeżone – są to słowa zastrzeżone jedynie w pewnych kontekstach kodu;
  3. niezastrzeżone – mogą być swobodnie stosowane jako nazwy, co jednak nie jest zalecane[1][3].

Przykładem współistnienia wszystkich trzech rozwiązań jest Turbo Pascal firmy Borland począwszy od wersji 5.5[a] Większość słów kluczowych jest tam zastrzeżona w każdym kontekście, jednak słowa public i private są zastrzeżone jedynie w ramach deklaracji klasy[b], zaś słowa takie jak forward, inline, assembler (i kilka innych niewystępujących w standardowym Pascalu[6] bądź też będących słowami zastrzeżonymi we wcześniejszych implementacjach Turbo Pascala) pozostają niezastrzeżone.

Dla odróżnienia od słów kluczowych zastrzeżonych niezależnie od kontekstu, wymienione tu słowa nazwano, w nomenklaturze Turbo Pascala, dyrektywami języka[3].

Języki bez słów zastrzeżonych[edytuj | edytuj kod]

W pewnych językach ze składnią kontekstową nie ma słów zastrzeżonych, mimo iż języki te definiują pojęcie słów kluczowych i wymienia ich listę[2]. Przykładem takiego języka jest język PL/I[7]. Brak zastrzeżenia dla słów kluczowych umożliwia programiście tworzenie definiowanych obiektów programu o nazwach identycznych ze słowami kluczowymi. Takie postępowanie jest jednak mocno krytykowane przez literaturę przedmiotu ze względu na zaciemnienie kodu mogące prowadzić do błędów[1].

Przykład w PL/I[7]:

DCL WHILE FLOAT;
...
WHILE: DO WHILE(WHILE<0);
...
END;

Słowo WHILE zostało użyte tutaj jako identyfikator zmiennej i etykieta instrukcji, mimo iż jednocześnie jest słowem kluczowym służącym do organizacji pętli.

Obecność w wybranych językach[edytuj | edytuj kod]

Języki programowania, w których zdefiniowane są słowa zastrzeżone, to między innymi: Ada[8], C[4][9], C++[9], Modula-2[10], Pascal[6], PL/M[11], Visual Basic.

Języki, w których słowa kluczowe nie są zastrzeżone, to między innymi: Fortran[12], PL/I[7].

Zobacz też[edytuj | edytuj kod]

Uwagi[edytuj | edytuj kod]

  1. Jest to rozszerzona implementacja języka Pascal w ramach środowiska programistycznego „Turbo”.
  2. słowa te nie mogą być stosowane do identyfikowania pól i metod klasy; jednak poza deklaracją klasy mogą być dowolnie stosowane do definiowania nazw.

Przypisy[edytuj | edytuj kod]

  1. a b c d Michael Marcotty, Henry Ledgord, W kręgu języków programowania, tłumaczenie: Krystyna Jerzykiewicz, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-1342-7
  2. a b John E. Nicholls, Struktura języków programowania, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Informatyka, ISBN 83-204-0246-8
  3. a b c Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika Mikrokomputerów ISBN 83-85060-53-7, ISSN 0867-6011
  4. a b Jan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, ISBN 83-204-1101-7
  5. Ralph E. Griswold, Madge T. Griswold, Icon, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0871-7
  6. a b Michał Iglewski, Jan Madey, Stanisław Matwin, Pascal. Język wzorcowy – Pascal 360., Wydawnictwa Naukowo-Techniczne, Warszawa 1984, wydanie trzecie – zmienione, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0597-1
  7. a b c Jan Bielecki, Rozszerzony PL/I i JCL w systemie OS/RIAD, Państwowe Wydawnictwo Naukowe, Warszawa 1986, Seria: Biblioteka Informatyki, ISBN 83-01-06146-4
  8. A. Nico Habermann, Dewayne E. Perry, Ada dla zaawansowanych, Wydawnictwa Naukowo-Techniczne, Warszawa 1989 r., seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-1058-4
  9. a b Jan Bielecki, Od C do C++, programowanie obiektowe w języku C, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, ISBN 83-204-1332-X
  10. Niklaus Wirth, Modula 2, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, ISBN 83-204-0828-8
  11. Jan Bielecki, PL/M język programowania mikroprocesorów, Wydawnictwa Komunikacji i Łączności, Warszawa 1987, Seria: Elektronizacja, zeszyt 25
  12. Ryszard K. Kott, Krzysztof Walczak, Programowanie w języku Fortran 77, Warszawa: Wydawnictwa Naukowo-Techniczne, 1991, ISBN 83-204-1362-1, OCLC 749999902.