Atrybut – element składni języka programowania, który określa konkretną właściwość (znaczenie), nadaną wybranemu elementowi (obiektowi).
Rodzaje atrybutów
[edytuj | edytuj kod]W różnych językach programowania, mogą być dostępne różne zestawy i rodzaje atrybutów przypisywanych do występujących w danym języku obiektów programu. Ponadto konkretny atrybut zwykle może być przypisany wyłącznie do jednego (lub kilku wybranych) elementów określonego rodzaju.
Podział ze względu na znaczenie
[edytuj | edytuj kod]Typowe atrybuty, często spotykane w uniwersalnych językach wysokiego poziomu, to:
- atrybuty typu
- określające zakres wartości, które może dany element reprezentować, a także operacji, które mogą być na elemencie wykonywane, w większości języków ten atrybut nazywany jest typem danych
- atrybuty rozmiaru
- określające wielkość elementu lub ilość jednostkowych elementów w agregatach, np. w tablicach
int a[5]
; lubshort, int, long
– różne atrybuty danych całkowitoliczbowych, definiujących wielkość danej, a tym samym zakres w wartości, jakie mogą być reprezentowane przez element - atrybuty dotyczące tworzenia, oraz zakresu istnienia i widoczności (dostępności elementu)
- te atrybuty wynikają z lokalności lub globalności danego elementu, a także ewentualnego ich przesłaniania, typowe atrybuty tego typu to: element lokalny –
auto, local
; element statyczny –static
, element globalny –global
; element zdefiniowany zewnętrznie –external
; - atrybuty inicjalizacji (wartości początkowej)
- atrybuty te przypisują w miejscu utworzenia obiektu, wartość początkową
- atrybuty rozmieszczenia w pamięci
- specyfikują elementy zwykle zależne od maszyny, dotyczące wymuszenia innego od standardowego położenia w pamięci, np. w PL/I:
aligned
,unaligned
; lub w Turbo Pascalu:absolute: adres
;
- atrybuty sposobu przypisania argumentu
- ta klasa atrybutów jest specyfikowana na liście parametrów przy deklaracji podprogramów i definiuje sposób przekazania argumentu w miejsce parametru podprogramu w instrukcji wywołania lub w wywołaniu funkcji w wyrażeniu, np. Visual Basic:
ByVal
– przez wartość;ByRef
– przez referencję.
- inne
- specyficzne dla konkretnego języka lub implementacji oraz systemu komputerowego
Podział ze względu na sposób specyfikacji
[edytuj | edytuj kod]Oprócz podziału atrybutów ze względu na ich znaczenie, atrybuty można podzielić ze względu na sposób specyfikacji i sposób przypisania atrybutu do elementu kodu:
- atrybuty jawne
- atrybuty jawnie podane w kodzie poprzez nazwę konkretnego atrybutu (np.
auto integer x;
) - atrybuty kontekstowe
- atrybuty nadane na podstawie kontekstu, w którym występuje element (np.
x=1;
zostanie nadany atrybutinteger
na podstawie kontekstu, tzn. typu literału liczbowego) - atrybuty domyślne
- atrybuty nadawane przy braku jawnej specyfikacji atrybutu określonego rodzaju (np.
integer x;
– elementowix
zostanie przypisany niewyspecyfikowany, domyślnie przyjmowany atrybutauto
).
Struktura atrybutów w języku programowania
[edytuj | edytuj kod]Struktura atrybutów w języku programowania może być zbudowana:
- symetrycznie
- tzn. istnieje możliwość jawnej specyfikacji każdego z możliwych atrybutów, co nie stoi w sprzeczności z ewentualną możliwością, stosowania niejawnych atrybutów domyślnych (np. zestaw atrybutów LOCAL – lokalny, STATIC – statyczny, EXTERNAL – zewnętrzny; przy czym brak jawnej specyfikacji któregokolwiek z nich może oznaczać przez domniemanie przyjęcie przez translator atrybutu np. LOCAL);
- niesymetrycznie
- w tym przypadku istnieje z góry narzucony mechanizm atrybutów domyślnych – nienazwanych jawnie (np. dla powyższego zestawu atrybutów LOCAL – lokalny, STATIC – statyczny, EXTERNAL – zewnętrzny; może nie istnieć słowo LOCAL umożliwiające jawną specyfikację, że element jest lokalny – występować mogą wyłącznie słowa STATIC i EXTERNAL, przypisanie tego nienazwanego atrybutu nastąpi przy braku specyfikacji STATIC i EXTERNAL);
Pojęcie atrybutu w programowaniu obiektowym
[edytuj | edytuj kod]W programowaniu obiektowym, część literatury przedmiotu, używa pojęcia atrybutu w odniesieniu do własności obiektu, czyli wartości przechowywanej w polu obiektu. Można więc w pewnym uproszczeniu utożsamiać atrybut obiektu z reprezentacją pewnego stanu obiektu.
Natomiast pojęcie atrybutu klasy odnoszone jest do wspólnej wartości dla całej klasy obiektów.
Elementy kodu z przypisywanymi atrybutami
[edytuj | edytuj kod]W ogólności atrybuty przypisywane są do każdego definiowanego elementu kodu źródłowego, w zakresie zdefiniowanym przez konkrety języka, takich jak:
- literały
- stałe
- zmienne
- bloki: podprogramy, moduły, pakiety, klasy, itd.
- parametry
- etykiety
- inne elementy specyficzne dla konkretnego języka.
Zwykle element kodu (obiekt programu), do którego przypisywany jest pewien atrybut, reprezentowany jest za pomocą zadeklarowanego identyfikatora.
Miejsce w kodzie przypisywania atrybutów
[edytuj | edytuj kod]Najczęściej spotykaną formą przypisania atrybutu do obiektu kodu jest deklaracja. Pewne specyficzne atrybuty, np. atrybut rozmiaru, mogą być przypisywane w niektórych językach, w trakcie wykonywania programu, np. w językach z zaimplementowanymi tablicami dynamicznymi, których rozmiar może ulegać zmianie w trakcie wykonywania programu. W językach, w których nie wymaga się dla pewnej klasy obiektów, jawnych deklaracji, istnieje mechanizm przypisywania atrybutów domyślnych, przez domniemanie, także na podstawie kontekstu pierwszego – tworzącego – wystąpienia danego elementu, jak i następnych wystąpień, jeżeli kontekst wymaga zmiany przypisanych atrybutów.
Przykład:
' Visual Basic
A=1 ' utworzenie zmiennej z atrybutem typu całkowitoliczbowego
…
A="Ala" ' zmiana atrybutu typu na łańcuchowy
Zobacz też
[edytuj | edytuj kod]Bibliografia
[edytuj | edytuj kod]- John E. Nicholls, Struktura języków programowania, Wydawnictwa Naukowo-Techniczne, Warszawa 1980, Seria: Informatyka, ISBN 83-204-0246-8
- 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