Stack: co to jest i aplikacja

Stos jest zjawiskiem programistycznym i naturalnym rozwiązaniem. Stos natychmiast przyszedł do biznesu komputerowego i stał się tak "rodzimy", jakby od samego początku.

Żaden procesor nie działa bez stosu, nie ma rekurencji, a efektywne funkcje połączeń nie mogą być zorganizowane. Każdy algorytm może obejść się bez kolejki, listy, kolekcji, macierzy lub systemu zorganizowanych obiektów, ale bez pamięci i stosu nic nie działa, w tym wszystko wymienione.

O świcie początku: procesor, pamięć i stos

Idealna pamięć zapewnia adresowanie bezpośrednio do wartości - są to maszyny i języki wysokiego poziomu. W pierwszym przypadku procesor konsekwentnie przenosi adresy pamięci i wykonuje polecenia. W drugim przypadku programista manipuluje tablicami. W obu odcinkach są:
  • adres = wartość;
  • index = value.
  • Adres może być bezwzględny i względny, indeks może być cyfrowy i skojarzony. Adres i indeks mogą mieć inny adres niż wartość, ale są to szczegóły adresu pośredniego. Bez pamięci procesor nie może działać, ale bez stosu poleceń i danych - jest jak łódź bez wioseł. Stack plates - tradycyjna opowieść o istocie stosu: koncepcja stosu i tłumaczenia w świadomości ogólnej. Możesz wziąć talerz od dołu, możesz wziąć tylko z góry, a potem wszystkie talerze będą całe.
    Wszystko, co przychodzi jako ostatnie w stosie, jest pierwsze. Idealne rozwiązanie. W istocie, stos, jako tłumaczenie jednej akcji na drugą, przekształca pojęcie algorytmu jako sekwencję operacji.

    Istota i koncepcja stosu

    Procesor i pamięć -główne elementy konstrukcyjne komputera. Procesor wykonuje polecenia, manipuluje adresami pamięci, wyodrębnia i zmienia wartości dla tych adresów. W języku programowania wszystko to przekształca się w zmienne i ich znaczenie. Istotą stosu i pojęcie ostatni pierwsze wyszło „(LIFO) pozostaje bez zmian.


    LIFO Skrót nie jest używany tak często jak wcześniej. Prawdopodobnie dlatego, że listy zostały przekształcone w obiekty, a pierwszy w kolejce pierwsze wyszło (FIFO) są stosowane jako potrzebne dynamika typów danych traci swoje znaczenie w kontekście opisywania zmienne, ale zyskał na znaczeniu w momencie wyrażenia:. Typ ten jest określany w momencie użycia i przez ten czas można opisać to, co chcesz i jak chcesz.
    Tak, stos - co to jest? Teraz wiesz, że to pytanie jest nieodpowiednie. W końcu bez stosu nie ma nowoczesnego programowania. Wywołanie funkcji jest przeniesieniem parametrów i adresów zwrotnych. Funkcja może wywoływać inną funkcję - jest to przeniesienie parametrów i ponownie adres powrotu. Utworzenie mechanizmu wywoływania wartości bez stosu jest niepotrzebną pracą, chociaż możliwe do osiągnięcia rozwiązanie jest zdecydowanie możliwe.

    Wielu pyta: "Stack - co to jest?". W kontekście wywołania funkcji składa się z trzech akcji:
  • przechowywania adresu zwrotnego;
  • zapisywanie na nich wszystkich przesłanych zmiennych lub adresów;
  • funkcja połączenia.
  • Gdy tylko wywoływana funkcja spełni swoją misję, po prostu przekaże sterowanie do adresu zwrotnego. Funkcja może powodować dowolną liczbę innych funkcji, ponieważ ograniczenie nakłada się tylko na rozmiarstos

    Właściwości stosu

    Stos nie jest abstrakcyjnym typem danych, ale prawdziwym mechanizmem. Na poziomie procesora - jest to "silnik", który określa i uzupełnia pracę głównego cyklu procesora. W ujęciu arytmetycznym stos przechwytuje proste i oczywiste reguły pracy. Jest bezpieczny.
    Charakterystyczne właściwości stosu to jego rozmiar i długość elementów. Na poziomie procesora wszystko zależy od bitu, adresu pamięci i fizyki dostępu. Ciekawa cecha i tradycja: stos rośnie w dół, to znaczy w kierunku zmniejszenia adresów pamięci, a pamięć programów i danych - w górę. Jest to zazwyczaj, ale niekoniecznie. Oto ważna treść - przyszła ostatnia i poszła pierwsza. Ta zaskakująco prosta reguła pozwala na budowanie interesujących algorytmów pracy przede wszystkim w językach wysokiego poziomu. Teraz nie zapytasz o stos - co to jest.
    Bezbłędna praca sprzętowa od dawna jest normą, ale na najnowocześniejszych technologiach informatycznych idea stosu znajduje nowe i obiecujące aplikacje. W zasadzie nie ma znaczenia, jaki stos na poziomie procesora. Jest to naturalny składnik architektury komputerowej. Ale w programowaniu stos zależy od konkretnego zastosowania i umiejętności programisty.

    Tablice, kolekcje, listy, kolejki Stack!

    Często ludzie zadają pytania: "Stack - co to jest?". "Programowanie" i "systematyzacja" to interesujące pojęcia: nie są one synonimami, ale są tak blisko ze sobą powiązane. Programowanie było bardzo szybkim, długotrwałym sposobem, w którym osiągnięte szczyty wydają się idealne. Najprawdopodobniej tak nie jest. Ale oczywiście inaczej.

    Idea stosu stała się powszechnanie tylko na poziomie różnych języków programowania, ale także na poziomie ich konstrukcji i możliwości tworzenia typów danych. Każda tablica ma push i pop, a koncepcja "pierwszego i ostatniego elementu tablicy" stała się tradycyjna. Wcześniej były tylko elementy tablicy, a dzisiaj są:
  • elementy tablicy;
  • pierwszy element tablicy;
  • Ostatni element tablicy.
  • Działanie przestrzeni elementu w tablicy przesuwa wskaźnik, a usunięcie elementu od początku tablicy lub od jej końca jest ważne. W istocie jest to ten sam stos, ale stosowany do innych typów danych.
    Na szczególną uwagę zasługuje fakt, że popularne języki programowania nie mają konstrukcji stosu. Ale w pełni przekazują swój pomysł deweloperowi.

    Powiązane publikacje