Atrybut rozmieszczenia zmiennej w pamięci – atrybut nadawany zmiennej w kodzie źródłowym, modyfikujący sposób rozmieszczenia przez translator danej zmiennej w pamięci operacyjnej. Atrybuty rozmieszczenia definiowane są w składni określonego języka programowania lub przez jego konkretną implementację.

Rodzaje atrybutów rozmieszczenia Atrybuty rozmieszczenia podzielić można na dwie zasadnicze grupy: Atrybuty wskazujące adres, konkretne miejsce w pamięci, w którym ma zostać umieszczona zmienna. Atrybuty modyfikujące lub definiujące sposób rozmieszczenie zmiennych w pamięci przez translator, wybranie jednak konkretnego adresu nadal pozostawia się translatorowi, a jedynie wskazuje się zasady rozmieszczania, które muszą zostać spełnione.

Atrybut adresu Atrybut rozmieszczenia wskazywać może konkretne miejsce w pamięci, w którym ma być umieszczona zmienna. Stosuje się: adres bezwzględny adres względy. Adres bezwzględny specyfikuje jawnie konkretne miejsce w pamięci – adres – od którego to miejsca ma się rozpoczynać obszar zajmowany przez daną. Natomiast adres względy specyfikuje odniesienie do innego, wcześniej zadeklarowanego elementu.

Przykład w Turbo PascaluAndrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika Mikrokomputerów , ISSN 0867-6011Liczby adresu bezwzględnego podane w systemie szesnastkowym: var s : string; len : byte absolute s; {adres względny} a : integer absoute $0040:$0020 {adres bezwzględny}

Atrybut reguły Ten rodzaj specyfikuje jedynie zasady jakie ma przestrzegać translator rozmieszczając dane w pamięci. Sposób rozmieszczenia dotyczyć może np. wymagań jakie musi spełnić adres początku obszaru zmiennej. Ustalenie jednak konkretnego adresu pozostawia się translatorowi. Przykładem w PL/I są atrybuty ALIGNED | UNALIGNEDJan Bielecki, Rozszerzony PL/I i JCL w systemie OS/RIAD, Państwowe Wydawnictwo Naukowe, Warszawa 1986, Seria: Biblioteka Informatyki, albo też packed w Pascalu.

Sposoby specyfikacji Atrybuty rozmieszczenia określa się w definicji zmiennej. Często jest to pewna opcjonalna fraza takiej definicji. Brak w takim przypadku jawnej specyfikacji pozostawia swobodę dla translatora w rozmieszczeniu zmiennych w pamięci według mechanizmu standardowego. Dopiero jawna specyfikacja tego atrybutu zmienia domyślny sposób działania translatora w tym zakresie.

Przykładowo w języku PL/I dla atrybutów ALIGNED | UNALIGNED lub w skrócie UNAL, przyjmuje się domyślnie atrybut UNALIGNED dla danych łańcuchów bitowych i znakowych stałej długości atrybut ALIGNED dla pozostałych danych.

Porównanie z innymi konstrukcjami Atrybuty adresu można porównać z innymi konstrukcjami występującymi w różnych językach programowania: rekord z wariantami, np. RECORD w języku Modula 2Niklaus Wirth, Modula 2, Wydawnictwa Naukowo-Techniczne, Warszawa 1987, Seria: Biblioteka Inżynierii Oprogramowania, , unia, np. union w języku CBrian W. Kernighan, Dennis M. Ritche, Język C, Wydawnictwa Naukowo-Techniczne, Warszawa 1988, Seria: Biblioteka Inżynierii Oprogramowania, , instrukcja, np. EQUIVALENCE w języku Fortran. Wszystkie wyżej wymienione sposoby, podobnie jak atrybut adresu, mogą być stosowane do nakładania zmiennych, występuje więc analogia do atrybutu rozmieszczenia z wyspecyfikowanym adresem względnym.

Atrybuty rozmieszczenia w językach programowania + Przegląd atrybutów rozmieszczenia według języków programowania. język programowania atrybut adresu atrybut reguły AdaA. Nico Habermann, Dewayne E. Perry, Ada dla zaawansowanych, Wydawnictwa Naukowo-Techniczne, Warszawa 1989 r., seria: Biblioteka Inżynierii Oprogramowania, use at adres PascalMichał Iglewski, Jan Madey, Stanisław Matwin, Pascal. Język wzorcowy – Pascal 360., Wydawnictwa Naukowo-Techniczne, Warszawa 1984, wydanie trzecie – zmienione, Seria: Biblioteka Inżynierii Oprogramowania, packed PL/I <DEFINED | DEF> ... [<POSITION | POS> ...] ALIGNED | <UNALIGNED | UNAL> PL/MJan Bielecki, PL/M język programowania mikroprocesorów, Wydawnictwa Komunikacji i Łączności, Warszawa 1987, Seria: Elektronizacja, zeszyt 25 AT(adres) Turbo Pascal absolute adres packed

Zobacz też typ danych

Przypisy

Kategoria:Konstrukcje programistyczne