PDA

View Full Version : Ricorsione : mi spiegate questa definizione ?


leon84
15-06-2007, 16:30
Sul libro c'č scritto :

Non tutti i linguaggi realizzano il meccanismo della ricorsione. Quelli che lo fanno possono utilizzare due tecniche :

Gestione LIFO di pių copie della stessa funzione, ciascuna con il proprio insieme di variabili locali

Gestione mediante record di attivazione, un'unica copia del sottoprogramma ma ad ogni chiamata č associato un record di attivazione con variabili locali e paramtetri di scambio.

Mi chiedo : cosa si intende di pių copie dello stesso sottoprogramma? A me sembra quasi che il record di attivazione sia identico alla gestione stack classica.

E poi : all'atto dell'esecuzione del programma le istruzioni di una funzione vengono comunque caricate all'avvio o solo all'atto della chiamata ?

cionci
15-06-2007, 23:07
Mi chiedo : cosa si intende di pių copie dello stesso sottoprogramma?
Boh...so per certo che in alcune architetture il passaggio di parametri per la ricorsione avveniva tramite registri che venivano mappati su un register file...ed ogni chiamata si avanzava nel register file. Ovviamente il numero di chiamate ricorsive in questo modo era limitato.
A me sembra quasi che il record di attivazione sia identico alla gestione stack classica.
Il record di attivazione E' la gestione classica con il passaggio di parametri tramite stack...
E poi : all'atto dell'esecuzione del programma le istruzioni di una funzione vengono comunque caricate all'avvio o solo all'atto della chiamata ?
Dipende dal tipo di caricatore del sistema operativo e da quante pagine alloca all'avvio.