259 Shares 2653 views

"Co to jest" przyszedł na stos, "co to jest" wrócił: abstrakcyjne podstawy rzeczywistości

Być może w najbliższym czasie firma komputerowa zapomni o zerach i tych, a procesory nie będą obsługiwać bajtów i słów, ale jak dotąd wszystko jest reprezentowane przez świat binarny i żyje według jego zasad. Jaki jest stos i gdzie jest stosowany – najprawdopodobniej stanie się zupełnie jasny. Nawet na początku swojego wyglądu pojawił się pierwszy procesor, a logika jego pracy wymagała pamięci. W wyniku wdrożenia prostych pomysłów, stos "co to jest" stała się de facto "tak konieczna".

Funkcje, procesor, binarna logika

Procesor zarządza pamięcią i implementuje logikę cyklicznego wykonywania kodu. Program to jeden lub kilka funkcji, które reprezentują sekwencję operacji: wybierz coś, wstaw coś tam. System operacyjny jest również odpowiedzialny za bardziej odpowiedzialny kodeks: poleca się wykonywanie i monitorowanie innych programów.

W rzeczywistości funkcja (niezależny element algorytmu) jest tylko sekwencją operacji binarnych. Program różni się od funkcji w tym, że sam implementuje i koordynuje inne części kodu.

Algorytm jest zaprojektowany do opracowania w postaci sekwencji oddzielnych elementów niezależnych. Każdy wykonuje własną (zazwyczaj tylko jedną) funkcję – jest to wygodne do debugowania, graficznie, praktycznie. Takie programowanie umożliwia uproszczenie procesu tworzenia, tworzenie bibliotek algorytmów i wykorzystanie ich w innych projektach.

Zarządzanie transferem i powrotami

Program wywołuje tę funkcję i przekazuje dane, oczekuje uzyskania wyniku. Więc wykonanie innej części kodu jest inicjowane z zewnątrz, dlatego powrót kontrolny musi być wykonany w następnej operacji po wywołaniu. Mechanizm ten zapewnia kolejność wykonania kodu i osiągnięcie wyniku całego programu.

Kod jest załadowany do pamięci i wykonywany sekwencyjnie. Aby wywołać funkcję (kolejny fragment kodu), stos jest stosowany. Co to jest? Pamięć (i wskaźnik do niej), która różni się od zwykłej w tym, że każdy następny element jest umieszczony powyżej poprzedniego. Dlatego, aby uzyskać wszystkich poniżej, musisz wziąć i wypracować wszystko, co jest ponad nim. Wskaźnik zawsze wskazuje na bieżącą pozycję na stosie.

Początkowo adres zwrotny znajduje się na stosie – adres następnej operacji po wywołaniu. Następnie wszystkie dane potrzebne do wywołania funkcji są tam umieszczone. Funkcja zwana wybiera dane, przetwarza, generuje wynik i zwraca kontrolę nad ostatnim elementem stosu. Polecenie: "stos, że" przesuwa wskaźnik do poprzednio podanego, a wybrane "to" przechodzi do przetwarzania.

Rejestry AX, BX, CX, DX, EX stały się symbolem epoki początku epoki informacyjnej, ale SP i SS to jego główny talizman. Jak stos jest używany w programowaniu? Przykłady przeszłości nie staną się zabytkami architektury początku epoki. Stos ten wszedł w świat binarny razem ze słowami "function" i "recursion" i zniknął w ogólnej logice rozwoju praktyk programistycznych.

Podawanie danych w celu podjęcia decyzji, co robić

Mechanizm składowania umożliwia wielokrotne wywoływanie różnych części kodu, w tym rekursję: funkcja zadzwoni. Istnieją naturalne ograniczenia: rozmiar pamięci dla stosu i kodu musi być wystarczający. Jeśli program jest poprawny, jego wykonanie będzie stabilne, kontrola transferu / zwrotu – dokładna.

Stos jest wypełniony, ponieważ płyty spadają do stosu, który jest wysyłany do obsługi stołu. Losy talerzy, czyli ich napełniania, są ustalane w miejscu, w którym jest przenoszone. Zgodnie z logiką oddziaływania, zespół "stos, co to jest" daje wstępnie uzgodnione między tym, który zadzwonił i tym, z który zadzwonił. Po zakończeniu procesu ważne jest, aby zwrócić kontrolę do adresu obok wysłania stosu do stołu.

Bardzo prosta i skuteczna logika. Co robi się w tabeli, jak podejmowana jest decyzja – funkcja funkcji, jak sobie radzi z odebranymi danymi – jego obawą, na którym stole będzie wysyłał swój stos danych – jego obawy, najważniejsze jest to, że kierownictwo zawsze powraca do następnej operacji po wywołaniu. Funkcja może sama wywoływać tylko wtedy, gdy pozwala na rekursję, a rekursja jest możliwa tylko wtedy, gdy dane są umieszczane na stosie.

Podstawowe abstrakcje

Gdy codzienne i praktyczne podstawy wirtualnej perspektywy można rozsądnie polegać na obiektywności i długim życiu tego ostatniego. Stos stosowanych talerzy dało życie stackowi, a stos dostarczył pracy procesorów, systemów operacyjnych, programów, funkcji i zakresu ogólnie zaawansowanych technologii.

Klasyczny przypadek, w którym proste stało się podstawą, ale rzadkim przypadkiem, gdy można oszacować bez pustych argumentów dotyczących składni, semantyki, mechanizmów programowania i priorytetów w walce o języki przetrwania.

Zmienna, podobnie jak komórka pamięci, pozostała tak do dziś, tylko teraz pomysły na nią uległy zmianie. Po pewnym przejściu przez upał ścisłej typisty, teraz mówią: coś może być czymkolwiek i wziąć coś w prawdziwym wspomnieniu, bo w ogóle nie jest to absolutnie ważne.

Operacje przypisania, stanu, pętli, bloków … są znacznie mniej przekształcone w plan semantyczny, ale składnia od dawna nie ma znaczenia. Walka o języki programowania ideałów nie dała szansy wygrać jednego z nich. Narzędzie (kompilator / interpreter / skorupa) musi po prostu działać, być stabilne i w pełni funkcjonalne, a jak pisać / używać to problem programisty, a nie jego autor.

Stack nabrał nowego znaczenia w tym globalnym procesie rozwijania reprezentacji i technologii. Zmienne w postaci, w jakiej są wygodne, są warstwowo nawzajem, a algorytmy i operatorzy są ze sobą połączone. Często można usłyszeć o stosie protokołów, gdy ktoś zapewnia pracę innego.

Stos, funkcjonalność i rekursja nie są wcale synonimem, ale doskonale uzupełniają się, pozwalając stworzyć unikalne opcje prezentacji i przetwarzania informacji.