Atrybut (programowanie)

Z Wikipedii, wolnej encyklopedii

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
 Osobny artykuł: Typ 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ą
 Osobny artykuł: Inicjalizacja zmiennej.
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;
 Osobny artykuł: Atrybut rozmieszczenia.
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ę.
 Osobny artykuł: Argument (informatyka).
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 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[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:

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]