Typ etykietowytyp danych, którego wartościami są etykiety instrukcji.

Zastosowanie typu etykietowego

W programowaniu stosuje się etykiety instrukcji, do wskazywania konkretnych instrukcji w kodzie programu. Takie wskazanie instrukcji umożliwia wykonanie skoku do konkretnego miejsca w kodzie źródłowym, a tym samym do konkretnego miejsca w kodzie wynikowym, wygenerowanym przez translator. W większości uniwersalnych języków programowania wysokiego poziomu, dostępna jest możliwość oznaczania instrukcji etykietami i stosowanie instrukcji skoku, mimo szerokiej, negatywnej krytyki jej stosowania, zawartej w literaturze przedmiotu. Jednak znacznie mniej języków programowania umożliwia przechowywanie w zmiennych wartości etykietowych, odpowiadającym wskazaniom instrukcji, co umożliwia bardziej złożone, ale równocześnie znaczenie zaciemniające strukturę programu, sterowanie przebiegiem algorytmu.

Stosowane rozwiązania

PL/I

W PL/I istnieje możliwość tworzenia i stosowania danych etykietowych, opisanych w deklaracji poprzez atrybut, który jest identyfikowany słowem LABEL. Danym o takim typie etykietowym, można przypisywać nazwy stałych etykietowych (identyfikatorów etykiet), używanych w kodzie do oznaczania instrukcji, jako etykiety instrukcji.

Przykład:

  DCL A LABEL;
  …
  A=ETY;
  …
  GOTO A;
  …
  ETY:   B=1;
  …

Basic

W języku Basic etykietami są numery instrukcji (obowiązkowe w bardzo wielu wczesnych implementacjach tego języka). Numery te są literałami liczbowymi całkowitymi, dziesiętnymi, bez znaku. W związku z tym istnieje możliwość w wielu implementacjach, stosowania zmiennych o typie liczbowym do przechowywania wartości etykiet, jako liczb, oraz wręcz wyliczania w wyrażeniach wartości etykiety do której ma nastąpić skok (GOTO), wywołanie podprogramu (GOSUB), obsługi błędów (ON…GOTO…).

Snobol

Również w języku Snobol, choć nie występuje odrębny typ etykietowy, to istnieje możliwość przechowywania w zmiennych wartości, które wskazywać będą na konkretną instrukcję. W tym przypadku typem odpowiednim do implementacji typu etykietowego jest łańcuch, który może być automatycznie przekształcony na etykietę, do której ma nastąpić skok. Wynikiem takiego przekształcenia jest obiekt typu NAME, który choć nie może być jawnie deklarowany w kodzie źródłowym, występuje w języku właśnie jako specyficzna forma implementacji typu etykietowego. Typ ten i obiekty NAME, są szeroko stosowane, ze względu na to, że całe sterowanie przebiegiem algorytmu w tym języku, opiera się na skokach warunkowych i bezwarunkowych, na bazie których realizuje się pętle, instrukcje wyboru czy warunkowe. Nie ma odrębnych instrukcji do realizacji tego typu struktur programistycznych. Oczywiście wartość taka (identyfikator etykiety), może w przy takim podejściu stanowić wynik różnych obliczeń, czy też zostać pobrany z instrukcji wejścia (np. z konsoli).

Bibliografia

  • 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.).
  • 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.).
  • Zbigniew Czech, Krzysztof Nałęcki, Stanisław Wołek: Programowanie w języku BASIC. Wyd. drugie uzupełnione. Warszawa: Wydawnictwa Naukowo-Techniczne, 1985. ISBN 83-204-0776-1. (pol.).
  • Wacław Iszkowski: Nauka programowania w języku BASIC dla początkujących. Warszawa: Wydawnictwa Naukowo-Techniczne, 1987, seria: Mikrokomputery. ISBN 83-204-0834-2. (pol.).
  • Paweł Gizbert-Studnicki, Jerzy Kaczmarczuk: Snobol4. Warszawa: Wydawnictwa Naukowo-Techniczne, 1984, seria: Biblioteka Inżynierii Oprogramowania. ISBN 83-204-0546-7. (pol.).

Zobacz też

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.