Ceea ce a venit pe stack, "că sa întors: fundația abstractă a realității
Poate că într-un anumit viitor afacerea de calcul va uita de zero și de cele, iar procesoarele nu vor funcționa prin octeți și cuvinte, dar până acum totul este reprezentat de lumea binară și trăiește conform regulilor sale. Care este stiva și locul în care este aplicată - cel mai probabil, nu va deveni absolut clar. Chiar la începutul apariției sale, primul procesor avea registre, iar logica muncii sale avea nevoie de memorie. Ca urmare a implementării ideilor simple, stiva "ce este" a devenit de facto "atât de necesară".
conținut
Funcții, procesor, logică binară
Procesorul gestionează memoria și implementează logica execuției codului ciclic. Un program este unul sau un set de funcții care reprezintă o secvență de operații: selectați ceva, faceți acest lucru, puneți ceva acolo. Sistemul de operare este, de asemenea, un cod mai responsabil: este instruit să execute și să monitorizeze alte programe.
De fapt, funcția (un element independent al algoritmului) este doar o secvență de operații binare. Programul diferă de funcția în care se implementează și coordonează alte părți ale codului.
Algoritmul este conceput să se dezvolte ca o secvență de elemente independente separate. Fiecare efectuează o funcție proprie (de obicei numai una) - este convenabilă pentru depanare, grafic, practic. O astfel de programare face posibilă simplificarea procesului de dezvoltare, crearea bibliotecilor de algoritmi și utilizarea acestora în alte proiecte.
Transferul și gestionarea returnării
Programul solicită funcția și, transmițând datele, se așteaptă să obțină rezultatul. Deci, executarea unei alte secțiuni a codului este inițiată din exterior, deci revenirea la control trebuie efectuată la următoarea operație după apel. Acest mecanism asigură ordinea de executare a codului și realizarea rezultatului programului în ansamblu.
Codul este încărcat în memorie și executat secvențial. Pentru a apela o funcție (o altă bucată de cod), se utilizează un teanc. Ce este asta? Memorie (și un pointer la ea), care diferă de cea obișnuită în care fiecare element următor este plasat deasupra celui precedent. Prin urmare, pentru a obține pe toți cei de mai jos, trebuie să luați și să realizați tot ce este deasupra lui. Indicatorul indică întotdeauna poziția curentă din stivă.
Inițial, adresa de întoarcere se află pe stivă - adresa următoarei operațiuni după apel. Apoi, toate datele necesare pentru funcția apelată sunt plasate acolo. Funcția apelată selectează datele, procesează, generează rezultatul și returnează controlul ultimului element al stivei. Comanda: "stivă că aceasta" mișcă pointerul la data precedentă, iar selecția "it" intră în procesare.
Registrele AX, BX, CX, DX, EX au devenit un fel de simboluri ale erei începutului erei informaționale, dar SP și SS sunt talismanul său principal. Cum se foloseste stiva in programare? Exemple de trecut nu vor deveni monumente arhitecturale de la începutul erei. Stiva a intrat în lumea binară împreună cu cuvintele "funcția" și "recursiunea" și a dispărut în logica generală a dezvoltării practicii de programare.
Slujirea datelor pentru a decide ce trebuie să facă
Mecanismul de stivuire permite efectuarea mai multor apeluri către diferite părți ale codului, inclusiv recursiune: o funcție de apel în sine. Există limitări naturale: dimensiunea memoriei pentru stivă și codul trebuie să fie suficiente. Dacă programul este corect, atunci executarea acestuia va fi stabilă, transferul / revenirea controlului - precis.
Coșul este umplut, deoarece plăcile cad într-o grămadă, care este trimisă pentru a servi masa. Soarta plăcilor, adică umplerea acestora, este decisă în locul în care sunt transferate. Conform logicii interacțiunii, comanda "stivă ceea ce este" dă o înțelegere prealabilă dată între cel care a chemat și cel pe care la numit. După finalizarea procesului, este important să reveniți la controlul adresei de lângă trimiterea stivei la masă.
logica foarte simplu și eficient. Ce este pe masă, așa cum se ia decizia - funcționează ca merge cu concluziile - îngrijorare cu privire la ceea ce masa va trimite un teanc de date - grija sa, principalul lucru este să se întoarcă întotdeauna un control la următoarea provocare pentru operația. Funcția se poate apela doar în cazul în care admite recursivitate, dar recursivitatea este posibilă numai în cazul în care datele se încadrează în stivă.
Abstracții fundamentale
Când obișnuința și practica devin baza unei perspective virtuale, se poate baza în mod rezonabil pe obiectivitatea și pe durata lungă de viață a acesteia din urmă. Un teanc de chimvale a dat viața stack-ului, iar stiva a oferit munca procesoarelor, sistemelor de operare, programelor, funcțiilor și domeniului tehnologiilor în general.
Cazul clasic în cazul în care simplu a devenit baza, dar un caz rar, atunci când poate fi estimat fără argumente goale despre sintaxă, semantică, mecanisme de programare și priorități în lupta limbilor pentru supraviețuire.
Variabila, așa cum era o celulă de memorie, a rămas așa până astăzi, doar acum ideile despre ea s-au schimbat. După ce au trecut cu încredere prin căldura unei tipăriri stricte, ei spun acum: ceva poate fi orice și poate lua orice în memorie reală, pentru că asta nu este absolut deloc important.
Operatorii de atribuire, condiții, cicluri, blocuri - sunt mult mai puțin transformate în planul semantic, dar sintaxa a fost mult timp irelevantă. Lupta de programare a limbilor pentru idealuri nu a oferit șansa de a câștiga unul dintre ele. Instrumentul (compilatorul / interpretul / shell-ul) trebuie să funcționeze pur și simplu, să fie stabil și complet funcțional și cum și ce să scrie / utilizați este grija programatorului, nu a autorului limbii.
Stack a dobândit un nou înțeles în acest proces global de dezvoltare a reprezentărilor și tehnologiilor. Variabilele în forma în care sunt convenabile, stratificate unul pe celălalt, iar algoritmii și operatorii sunt incluși unul în celălalt. Puteți auzi de multe ori despre stiva de protocol, atunci când unul oferă lucrarea altui.
Stivă, funcționalitate și recursivitate nu sunt sinonime, dar se completează perfect, permițându-vă să creați opțiuni unice pentru prezentarea și prelucrarea informațiilor.
- Procesor de dispozitive, cum funcționează în realitate
- De ce este necesar procesorul?
- Operație logică. Operații logice de bază
- Ce este procesorul pentru: descriere, caracteristici și aplicație
- `Socket 1156`: prima priză de procesor pentru CPU-ul familiei CORE
- AM3 (soclu): descriere, caracteristici comparative
- Procesor Intel Core 2 DUO E7400: Caracteristici, caracteristici și feedback
- `Socket AM2` de la compania AMD: modele de procesoare, seturi de logică sistem și…
- Stack-ul / pop-ul jаvascript Stack
- Dispozitive incluse în procesor: descriere, funcții
- Review Plăci de anul 1156. soluții pentru chips-uri Core prima generație
- Prezentarea informațiilor pe calculator
- Bazele logice ale calculatorului
- Cum să dezactivați sistemul de operare în Windows 7
- Stivă ip tcp în sistemul Windows
- Sistem de operare DOS: descriere și caracteristici
- Ce este sistemul de operare
- Operațiuni binare. Programarea în C și C ++
- Procesorul central - capul întreg
- Registrele CPU sunt principalii asistenți
- Cum de a crește memoria virtuală? instrucție