Podstawy programowania – słowniczek

Pamięć – układ zer i jedynek. Każde miejsce zapisać można wartością 0 lub 1 (bit). Bity poukładane są w bajty. Każdy bajt ma swój adres pamięci. Po adresach procesor odwołuje się do komórek pamięci.

Na rys. jest przykładowy fragment pamięci. Pamięć składa się z komórek, każda komórka to 1 bajt danych, czyli 8 bitów. Dodatkowo każda komórka ma swój adres, czyli numer w kolejności. Procesor ma możliwość zapisywania i odczytywania każdej komórki w pamięci, odwołując się do niej po jej adresie.

Wszystkie dane, z których aktualnie korzysta komputer (programy) znajdują się w pamięci operacyjnej RAM. Najprostszą daną w programie jest zmienna.

Zmienna – to malutki obszar pamięci (najwyżej kilka komórek), gdzie zapisujemy dane. Zmienne mają różne typy. Zadeklarowanie zmiennej oznacza zarezerwowanie dla zmiennej w pamięci miejsce (np. dla typu int, zarezerwowano 4 bajty w systemie 32-bitowym [jedno słowo], czyli 4 komórki pamięci obok siebie). Każda zmienna, musi mieć swoją nazwę (identyfikator).

Wskaźnik – to specjalna zmienna, która przechowuje adres komórki pamięci [liczbę]. Najpierw tworzona jest zmienna danego typu (np.  int zmienna;), potem tworzy się wskaźnik na zmienną danego typu (np. int* wskaznik;). Każdy wskaźnik może wskazywać tylko zmienną określonego typu. Po utworzeniu wskaźnika należy mu przypisać adres jakiejś zmiennej (np. wskaznik=&zmienna;). Można od razu podczas tworzenia zainicjować wartość wskaźnika: int* wskaznik=&zmienna; W języku Java wskaźniki są nieobsługiwane!

Referencja – Referencja jest odwrotnością wskaźnika. Jest to zmienna [etykieta], która „podszywa się” pod inną zmienną. Zmienna referencyjna nie zajmuje żadnego miejsca w pamięci.

Funkcja/metoda – to kilka połączonych ze sobą instrukcji.

Skok – instrukcja ta przeskakuje w inną część kodu. Instrukcja skoku może działać, tylko w tym samym bloku(funkcji). Aby móc wykonać skok należy wyznaczyć miejsce do tego, deklaruje się tzw. etykietę (np. etykieta_skoku) i umieścić ją w dowolnym miejscu danej funkcji(bloku). etykieta_skoku: [na końcu dwukropek nie średnik]. Aby skoczyć do danej etykiety, trzeba napisać instrukcję: goto etykieta_skoku; Aby nie wykonywać w nieskończoność instrukcji skoku, należy użyć instrukcji warunkowej, która w pewnym momencie zablokuje goto. Np.  if(a==1) goto etykieta_skoku;

Operacje binarne – Sprawdzanie bitu: sprawdzana liczba & maska = wynik. ‘&’ – iloczyn bitowy (koniunkcja, bramka AND, 1- dla samych jedynek, 0 dla reszty).  Ustawianie bitów: ustawiana liczba | maska = wynik. ‘|’ – operator sumy (alternatywa, OR, 0 – dla zer, 1 – dla reszty). ‘^’ – alternatywa wykluczająca (XOR,  0 dla samych 1 lub samych 0, 1 gdy wartości są różne).

Stos – struktura danych używana do przechowywania elementów w postaci kolejki LIFO. Nazwa stos używana jest często do określania obszaru pamięci obsługiwanej przez procesor, gdzie przechowywane są zmienne lokalne. Obiekty na stosie usuwane są w momencie wyjścia z zasięgu programu. Zwykle ramka stosu jest określona przez metodę. Dlatego zmienne lokalne zadeklarowane wewnątrz metody zostają usunięte w momencie zakończenia jej działania.

Sterta – obszar pamięci używany do przedzielania pamięci dla obiektów. Pamięć dla typów referencyjnych (w  przypadku referencji nie powstaje kopia danych, lecz kopiuje się tzw. wskaźnik na dane) jest przydzielana na stercie. W czasie przydziału pamięci na stercie zwracany jest adres, który następnie przypisywany jest do wskazującej na obiekt referencji. Obiekty znajdujące się na stercie podlegają procesowi odzyskiwania pamięci wkrótce po usunięciu wskazującej na nie referencji.

Dynamiczny przydział pamięci – W Javie wszystkie obiekty są dynamicznie przydzielane na stercie. Gdy deklarujemy tylko zmienną typu klasowego, tworzone jest tylko odwołanie (dla obiektu nie jest przydzielana pamięć). Aby przydzielić pamięć do obiektu, musimy użyć new.

Może Ci się również spodoba

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *