Atrybut (programowanie)

Atrybut – element składni języka programowania, który określa konkretną właściwość (znaczenie), nadaną wybranemu elementowi (obiektowi).

Rodzaje atrybutów

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

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]; lub short, 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

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 atrybut integer na podstawie kontekstu, tzn. typu literału liczbowego)
atrybuty domyślne
atrybuty nadawane przy braku jawnej specyfikacji atrybutu określonego rodzaju (np. integer x; – elementowi x zostanie przypisany niewyspecyfikowany, domyślnie przyjmowany atrybut auto).

Struktura atrybutów w języku programowania

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

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

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:

Zwykle element kodu (obiekt programu), do którego przypisywany jest pewien atrybut, reprezentowany jest za pomocą zadeklarowanego identyfikatora.

Miejsce w kodzie przypisywania atrybutów

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ż

Bibliografia