Funzione (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Passaggio di parametri: Rimosse tipologie di passaggio... che non sono tipologie di passaggio |
→Implementazione: Aggiunta sottosezione |
||
Riga 77:
== Implementazione ==
=== Supporto hardware ===
Nella programmazione le funzioni sono uno strumento talmente importante e diffuso da richiedere una gestione della loro esecuzione estremamente efficiente allo scopo di mantenere bassi i tempi di chiamata della funzione e di ritorno del controllo al programma chiamante. Per questo motivo la gestione dell'allocazione delle variabili locali e del passaggio dei parametri vengono normalmente supportate direttamente dall'[[hardware]]. L'esistenza dello [[Pila (informatica)|stack]] nelle architetture hardware è appunto riconducibile alla necessità di supportare efficientemente le funzioni. Infatti, quando viene invocata una funzione il punto del codice in cui è stata invocata viene salvato sullo stack (indirizzo di ritorno), e anche i parametri e le variabili locali di una funzione vengono salvati sullo stack.
Riga 85 ⟶ 87:
Lo stack può essere usato anche in altri modi, ad esempio per memorizzare temporaneamente valori intermedi nella valutazione delle espressioni aritmetiche.
In [[assembly]] esistono
* PUSH: metti un valore sullo [[Pila (informatica)|stack]]
* POP: leggi e togli dallo stack un valore
|