Jednostka leksykalna

Jednostka leksykalna (leksem w języku programowania) – zdefiniowany w składni określonego języka programowania zestaw znaków wybrany z alfabetu określonego systemu, reprezentujący pojedynczy element słownika[1][2].

Rodzaje jednostek leksykalnych edytuj

W różnych językach programowania mogą występować różne jednostki leksykalne. W większości typowych języków występują jednak pewne typowe jednostki leksykalne, pełniące określone, takie same lub bardzo zbliżone funkcje w porównywanych językach.

Typowe jednostki leksykalne:

W pewnych językach (tzw. językach ze składnią kontekstową) może być tak, że granica podziału pomiędzy poszczególnymi leksemami jest płynna lub ten sam leksem (ten sam ciąg znaków), może reprezentować różne jednostki leksykalne, w zależności od kontekstu w którym występuje, np. w języku PL/I[3][4], w którym słowa kluczowe nie są zastrzeżone, co oznacza, że słowo, np. WHILE, może być słowem kluczowym, ale także może być identyfikatorem, np. zmiennej.

Wyodrębnianie jednostek leksykalnych edytuj

Analizowany przez translator kod źródłowy jest ciągiem znaków, z których należy wyodrębnić jednostki leksykalne. Definicja języka powinna jednoznacznie określać sposób ich wyodrębniania, tak aby kod źródłowy był jednoznacznie interpretowany.

Przykładem ilustrującym zagadnienie wyodrębniania jednostek leksykalnych ze strumienia wejściowego kodu źródłowego, jest zapis wyrażenia w języku C[5][6][7][8] i pokrewnych językach:

a=b+++c;

który to zapis, dzięki obowiązującej w tym konkretnym języku jednoznacznej zasadzie, że kolejną jednostką leksykalną jest najdłuższy ciąg znaków, który może stanowić pewną jednostkę, jest zawsze interpretowany jak zapis:

a=(b++) + c;

a nie jak różny od niego zapis:

a=b+ (++c);

Rola jednostek leksykalnych edytuj

Choć kod źródłowy zbudowany jest na najniższym poziomie z określonego zestawu znaków, to dla programisty i translatora, podstawowym poziomem rozpatrywania kodu źródłowego jest poziom jednostek leksykalnych, jako podstawowych składowych kodu źródłowego, mających zdefiniowane znaczenie w danym języku. Z jednostek tych budowane są zdania, realizujące określony algorytm. Dobrze zdefiniowany zbiór jednostek leksykalnych ułatwia pisanie programów i zmniejsza ryzyko powstawania błędów. I odwrotnie, podany wyżej przykład języka PL/I[3][4], przy niezdyscyplinowanym stylu programowania, może zwiększać liczbę błędów logicznych, trudnych do wychwycenia.

Zobacz też edytuj

Przypisy edytuj

  1. Leksem. Słownik języka polskiego PWN. [dostęp 2010-02-05]. (pol.).
  2. leksem. Słownik wyrazów obcych PWN. [dostęp 2010-02-05]. (pol.).
  3. a b Jan Bielecki: Rozszerzony PL/I i JCL w systemie OS/RIAD. Warszawa: Państwowe Wydawnictwo Naukowe, 1986, seria: Biblioteka Informatyki. ISBN 83-01-06146-4. (pol.).
  4. a b M. I. Auguston i inni: Programowanie w języku PL/1 OS JS. Warszawa: Państwowe Wydawnictwo Naukowe, 1988. ISBN 83-01-07463-9. (pol.).
  5. Brian W. Kernighan, Dennis M. Ritche: Język C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1988, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1067-3. (pol.).
  6. Jan Bielecki: Turbo C z grafiką na IBM PC. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990, seria: Mikrokomputery. ISBN 83-204-1101-7. (pol.).
  7. Jan Bielecki: Od C do C++, programowanie obiektowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990. ISBN 83-204-1332-X. (pol.).
  8. Podręcznik języka C na Wikibooks

Bibliografia edytuj

  • Michael Marcotty, Henry Ledgord, tłumaczenie: Krystyna Jerzykiewicz: W kręgu języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-1342-7. (pol.).
  • John E. Nicholls: Struktura języków programowania. Warszawa: Wydawnictwa Naukowo-Techniczne, 1980. ISBN 83-204-0246-8. (pol.).