Call stack: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: pt:Pilha de chamada |
traduzione abbandonata |
||
Riga 1:
In [[informatica]], un '''call stack''' (dall'inglese ''pila di chiamate'') è uno [[stack]] (ovvero una specie di pila) che immagazzina informazioni sulle [[subroutine]] attive del [[computer]] (le subroutine attive sono quelle che sono state chiamate ma la cui esecuzione non è terminata). Questo tipo di pila è spesso chiamato anche execution stack, control stack, function stack, o run-time stack e spesso semplicemente "stack".
Line 11 ⟶ 10:
== Scopi del call stack ==
▲Come descritto sopra, lo scopo primario del call stack è:
* '''immagazzinare gli indirizzi di ritorno''' - Quando una subroutine viene chiamata, l'indirizzo dell'istruzione di ritorno deve essere salvato da qualche parte. Utilizzando una pila per salvare gli indirizzi di ritorno si hanno importanti vantaggi rispetto alle alternative. Uno di questi è che ogni task ha il proprio stack e pertanto le subroutine possono essere "rientranti" e quindi possono essere attive simultaneamente per task diversi che fanno cose diverse. Un altro vantaggio è che la [[ricorsione]] è automaticamente supportata. Quando una funzione chiama sé stessa ricorsivamente, un indirizzo di ritorno necessita di essere registrato per ogni attivazione della funzione così da poter essere usato per il ritorno da ogni attivazione della funzione. Questa capacità è automatica con un stack.
Line 27 ⟶ 25:
* '''Ambiente dei contenitori di subroutines''' - Alcuni linguaggi di programmazione (come [[Pascal (programmazione)|Pascal]] e [[Ada (programmazione)|Ada]]) supportano [[Funzioni annidate|subroutines annidate]], permettendo ad una routine interna di accedere al contesto della sua routine contenitore, cioè' ai parametri e alle variabili locali nell'ambiente della routine esterna. Tali lingue generalmente permettono alle routines di effettuare chiamate ricorsive (la funzione richiama se stessa), ottenendo multiple call stacks per le chiamate di routines delle routines interne, ciascuna delle quali punta sullo stesso ambiente della routine esterna. Questo tipo di call frame è anche conosciuto come ''display''.
== Voci correlate ==
|