Ile waży zmienna?

Zastanówmy się, czy zmienne rzeczywiście istnieją. Na wstępie - pragnąc poglądy ujednolicić, a osobom nie parającym się programowaniem pomóc - przypomnę, że zmienna jest deklaracją w programie komputerowym, bo o takich tworach będą dalsze dywagacje.

Zastanówmy się, czy zmienne rzeczywiście istnieją. Na wstępie - pragnąc poglądy ujednolicić, a osobom nie parającym się programowaniem pomóc - przypomnę, że zmienna jest deklaracją w programie komputerowym, bo o takich tworach będą dalsze dywagacje.

Zmienna powstaje wskutek celowej działalności człowieka - programisty zmuszonego do chwilowego zapamiętywania pewnych informacji w działającym programie. Po przypisaniu jej wartości przez instrukcje programu lub kompilatora, zmienna nabiera znaczenia zerojedynkowego, bo tak właśnie reprezentowana jest jej wartość.

Niemniej nadal trudno wyizolować ten dosyć abstrakcyjny twór. Zmienna zajmuje miejsce, określane przez liczbę bitów jej przypisanych, aczkolwiek ilość tego obszaru trudno zauważyć. Jedynym momentem uwidocznienia jej jest chwila pracy z kodem źródłowym, gdzie deklaratywnie spoziera na nas z ekranu monitora, reprezentowana przez wyrażenie symbolicznie określające jej atrybuty. Z chwilą uczynienia z kodu źródłowego postaci wykonywalnej, zmienna traci swe wizualne oblicze, w dalszym ciągu jednak objawiając swą ukrytą istotę. W trakcie uruchomienia modułu wykonywalnego następuje rezerwacja stosownego miejsca w pamięci operacyjnej dla zmiennej, która dzięki kompilatorowi dawno stała się anonimowym adresem w przestrzeni programu. Niby jej nie ma, a jednak miejsce trzyma, a co więcej jej wartość nie musi być stała.

Odpowiedź na pytanie zadane w tytule jest dziecinnie prosta - fizyczna waga zmiennej jest równa sumie mas poszczególnych bitów wchodzących w jej skład. Dotyczy to oczywiście wagi w postaci wykonywalnej programu, albowiem w postaci deklaratywnej wagę tę możemy określić jedynie jako wagę bitów tworzących ciąg znaków deklaracji.

Zadzwonił do mnie początkujący student informatyki z odległego miasta (znajomy znajomych). Gdyby miał problem jak wyżej, odpowiedź wykrzesałbym mu "na kolanie". On jednak twierdził, że nie rozumie algorytmów. Konkretniej, chodziło o przeliczanie liczb w różnych systemach liczbowych. Utwierdzałem go w przekonaniu, że algorytmy te opisane są matematycznie, wystarczy więc je sobie przestudiować. Po tym moim krótkim wywodzie wyszło jednak na to, że nie chodzi o sam algorytm, a o formalny sposób jego zapisu. W tym momencie ja przestałem rozumieć, czego w tym można nie rozumieć. Odrzuciwszy a priori opcję mojego osobistego dojazdu (siedemdziesiąt kilometrów w jedną stronę) na miejsce powstania problemu, pomyślałem sobie, że niektórzy ludzie zdecydowanie preferują rozwiązania podane na tacy.

Brak własnej inicjatywy umysłowej, zwłaszcza w dziedzinie informatyki i tym bardziej jeżeli dotyczy to problemów nieschematycznych, nie rokuje najlepiej. Co innego pytać, z jaką poprawką do systemu operacyjnego dane urządzenie wreszcie zechce zadziałać, a co innego wyciągać zeznania o tym, jak zakodować program sumujący dwie liczby, aby po pewnym czasie utknąć ponownie na barierze sumowania ich większej ilości. Przydatność osobników pokroju wyżej wymienionego w tworzeniu rozwiązań informatycznych możemy mierzyć jedynie w kilogramach.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200