Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Carnielli Efrem: Programmazione a componenti<br />
Pr<strong>in</strong>cipi <strong>di</strong> progettazione<br />
computazioni perchè sono limitate alla JVM della macch<strong>in</strong>a su cui sono stati<br />
def<strong>in</strong>iti. L'application server <strong>di</strong>stribuito consente <strong>di</strong> spostare le computazioni da<br />
una macch<strong>in</strong>a all'altra.<br />
Gli attributi statici vengono utilizzati per como<strong>di</strong>tà, ma sono limitati alla macch<strong>in</strong>a<br />
su cui le istanze della classe, <strong>in</strong> cui sono def<strong>in</strong>iti, vengono lanciate.<br />
Browser<br />
richiesta<br />
richiesta<br />
ri<strong>di</strong>rezionata al<br />
secondo server<br />
Server 1<br />
Server 1<br />
Server 1<br />
Application<br />
server<br />
Figura 3.7. Fail over e migrazione delle computazioni. In rosso il fail over del Servr1 e la<br />
migrazione delle computazioni.<br />
3.1.3 Ricorsione <strong>in</strong> Fortran<br />
In fortran tutti gli activation record <strong>di</strong> una funzione vengono caricati, una funzione<br />
può avere un solo activation record, non esiste lo stack, la funzione può chiamare<br />
se stessa ma se gli passo un parametro come nei casi visti f<strong>in</strong>ora, il valore si<br />
mo<strong>di</strong>fica <strong>di</strong> volta <strong>in</strong> volta e non ho traccia del valore precedente.<br />
Ripren<strong>di</strong>amo il fattoriale del numero 3. Alla chiamata f(3), viene creato l’activation<br />
record della funzione che conterrà n=3. Quando la funzione si richiama<br />
ricorsivamente, f(2), il valore <strong>di</strong> n viene mo<strong>di</strong>ficato <strong>in</strong> 2 e si perde il vecchio valore<br />
(per quanto detto sopra).<br />
Questo problema può essere ovviato utilizzando la ricorsione <strong>di</strong> coda. Si è <strong>in</strong><br />
presenza della ricorsione <strong>di</strong> coda quando la chiamata ricorsiva alla funzione è<br />
l’ultima istruzione del corpo della funzione.<br />
La ricorsione <strong>di</strong> coda mi consente <strong>di</strong> utilizzare un solo activation record.<br />
58