Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Programmazione
 Record di Attivazione

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Tiamat Inserito il - 28/12/2004 : 20:57:09
E' un argomento che mi ha causato un bel po' di problemi all'esonero,non ho capito bene come si fa a calcolare la dimensione del record di attivazione relativo ad un sottoprogramma quando questo viene attivato;c'è qualcuno che potrebbe aiutarmi,non so,con un esempio.grazie
19   U L T I M E    R I S P O S T E    (in alto le più recenti)
Tiamat Inserito il - 15/02/2005 : 18:36:38
scusate l'ulteriore domanda, per le variabili globali si deve ragionare come per i parametri?
Grazie.
nicux Inserito il - 01/02/2005 : 19:07:00
Citazione:
Messaggio inserito da Vincent Vega

Scusate l'intrusione ma anke io ho un po' di difficoltà con l'argomento.
Nelle slides fornite dal prof, oltre tutte le word occupate dai vari punti elencati, vi è una parte che dice "Riferimento all'area di memoria in cui è memorizzato il corpo di istruzioni da eseguire"


Qualche anima pia può per favore espletare questo punto?
Grazie, ciau



è l'indirizzo di memoria in cui il compilatore ha iniziato a memorizzare le istruzioni del corpo della procedura/funzione.

Immagina la sequenza di istruzioni di un programma come una sequenza di codici binari memorizzati consecutivamente in una certa area di memoria. Ad un certo punto, prima del termine del programma incontri il codice (i-esima istruzione) di una chiamata di funzione, ma tale funzione è memorizzata in un'altra area di memoria a cui occorre saltare ogni volta che questa viene invocata.
Questo indirizzo a cui occorre saltare è rappresentato dal nome della procedura/funzione invocata, quindi il record di attivazione deve contenerlo (specie se la procedura/funzione è ricorsiva).

Vincent Vega Inserito il - 01/02/2005 : 18:22:57
Scusate l'intrusione ma anke io ho un po' di difficoltà con l'argomento.
Nelle slides fornite dal prof, oltre tutte le word occupate dai vari punti elencati, vi è una parte che dice "Riferimento all'area di memoria in cui è memorizzato il corpo di istruzioni da eseguire"


Qualche anima pia può per favore espletare questo punto?
Grazie, ciau
Aiace Inserito il - 15/01/2005 : 13:13:29
Prego
http://lacam.di.uniba.it:8000/people/courses/lanza/Mod%203_4.pdf
enzobidi Inserito il - 15/01/2005 : 10:59:51
Salve a tutti.
potete indicarmi qualche link o dispense
sull'argomento "record di attivazione"
grazie
Tiamat Inserito il - 08/01/2005 : 10:33:59
Invece se fosse passato per valore un vettore di tipo intero di 5 elementi,nel caso in cui il tipo INT occupasse 1 word,verrebe occupato uno spazio pari a 5 word..credo di aver capito.Grazie
nicux Inserito il - 07/01/2005 : 01:00:27
certo,
passare un parametro per riferimento significa passare un indirizzo (che vale 1 word indipendentemente da quello che ci trovi a quell'indirizzo, cioè indipendentemente dal fatto che a quell'indirizzo ci sia un int oppure un vettore di un milione di elementi).
Tiamat Inserito il - 06/01/2005 : 20:59:04
Quindi l'errore sta nel parametro []Double?
Se il Double come tipo occupasse 2 word visto che passo per valore un vettore di tipo double di 6 elementi occuperebbe in totale 12 word,giusto?se invece venisse passato per riferimento verrebbe occupata solo una word per tutto il vettore.
Giusto
nicux Inserito il - 01/01/2005 : 13:20:34
aspetta, chiariamo un po' di cose

1) double[] non è primitivo (il fatto che i suoi elementi sono di tipo primitivo è irrilevante)
2) anche fosse primitivo il tuo calcolo è errato perchè non fai alcuna ipotesi sulla dimensione di un double (che sarebbe poi da moltiplicare per sei)
3) e in ogni caso se un parametro viene passato per valore non ha alcun senso conservare nel record di attivazione un legame col parametro formale.
4) in java sintatticamente tutto viene passato per valore, il problema è che il compilatore decide lui il da farsi ;)

Tiamat Inserito il - 01/01/2005 : 12:12:18
Credo di si, ho fatto così perchè ,se ho capito bene, double[] initialBalance che è un vettore di tipo primitivo va passato per valore e visto che sono sei elementi viene usata una word per elemento = 6 Word.
Point x invece che è un oggetto viene passato per riferimento e per questo che ho usato solo una word.
E a questo che ti riferivi?

PS:in java i valori di tipo primitivo vengo passati per valore, mentre i valori che per tipo hanno una classe vengo passati per riferimento
nicux Inserito il - 31/12/2004 : 16:28:04
none...

se il parametro è passato per riferimento significa che stai passando l'indirizzo e non il valore quindi nel record devi fare spazio ad un semplice indirizzo e non a tutta la struttura dati. Capì?
Tiamat Inserito il - 31/12/2004 : 16:24:33
Scusate se rompo ancora, potresti dirmi se ho fatto bene questo piccolo esercizio?Grazie

Supposizioni:
- 1 word = 2 Byte
- Il tipo intero occupa 3 Byte
*******************************************************************************************
public bancaccount(double[] initialBalance,Point x)
{
int balance= 13;
Point punto= new point(3,6);
...
}


Record di Attivazione:
1 word per l'indirizzo del nome del sottoprogramma;
1 word per la catena statica;
7 word per i legami tra parametri formali ed effettivi(initialBalance è un vettore di 6 elementi di tipo primitivo, 1 word è usata per il riferimento al parametro di tipo Point);
1 word per il punto di ritorno;
3 Byte per la vriabile locale balance;
1 word per la variabile locale punto;

TOTALE: <<25 Byte>>

Giusto?
nicux Inserito il - 30/12/2004 : 20:33:46
Citazione:
Messaggio inserito da Tiamat

Grazie credo che ora l'argomento mi sia più chiaro

PS:.....perchè solidarietà?



scherzavo :P
Tiamat Inserito il - 30/12/2004 : 17:57:43
Grazie credo che ora l'argomento mi sia più chiaro

PS:.....perchè solidarietà?
nicux Inserito il - 29/12/2004 : 19:07:56
Citazione:
Messaggio inserito da Tiamat

Cioè,se non ho capito male,tutti i componenti del record che sono indirizzi sono lunghi 1 word mentre i valori veri e propri dipende dal tipo di dato,giusto?


giusto
Citazione:

Ma per quanto riguarda il campo "Legami tra parametri formali e effettivi" cosa devo fare?


per ogni parametro formale una 1 word che contiene il riferimento
Citazione:

Se ho variabili locali di tipo non primitivo devo indicare il loro peso in base al tipo ma devo anche indicare un indirizzo(cioè 1 word) per il riferimento?


no, solo la memoria necessaria per contenere il valore, perchè i riferimenti presenti nel record sono solo quelli che riguardano entità esterne alla funzione.
Citazione:

PS:faccio TPS


ah...
vuoi la nostra ammirazione o la nostra solidarietà?
Tiamat Inserito il - 29/12/2004 : 18:35:52
Cioè,se non ho capito male,tutti i componenti del record che sono indirizzi sono lunghi 1 word mentre i valori veri e propri dipende dal tipo di dato,giusto?
Ma per quanto riguarda il campo "Legami tra parametri formali e effettivi" cosa devo fare?
Se ho variabili locali di tipo non primitivo devo indicare il loro peso in base al tipo ma devo anche indicare un indirizzo(cioè 1 word) per il riferimento?

PS:faccio TPS
tremenda Inserito il - 29/12/2004 : 12:43:21
Vabbè io ho ripetuto le parole della prof...
nicux Inserito il - 29/12/2004 : 12:29:14
Citazione:
Messaggio inserito da tremenda

Esempio:

- Se i parametri sono passati per valore occupano solo 1 word xò nel caso degli array ad esempio di 10 elementi occupa 10 word



non proprio,
se 1 word è la memoria utilizzata dal sistema per codificare gli indirizzamenti non ha nulla a che vedere (se non per pura coincidenza) con la memoria allocata per gli integer o per qualunque altro tipo.
In effetti per tutti gli elementi del record che rappresentano un indirizzo allora la dimensione è sempre la stessa cioè 1 word (il cui valore in bit varia da sistema a sistema),
mentre gli elementi del record che rappresentano un valore di qualche tipo occuperanno una memoria che dipende dal tipo (e certamente indipendente dalla word di cui sopra).
tremenda Inserito il - 29/12/2004 : 12:05:55
Esempio:
function f(n:integer):integer;

Record di attivazione:
1 word x il nome della funzione (indirizzo dove è contenuto il codice)
0 word per le variabili locali (ovviamente xkè nn ci sono!)
1 word per i paramentri (in questo caso il solo n)
1 word per il punto di ritorno
1 word per la catena statica
1 word per la catena dinamica

Note:
- Se i parametri sono passati per valore occupano solo 1 word xò nel caso degli array ad esempio di 10 elementi occupa 10 word
- Nel passaggio per referenza si ha sempre una word anche quando si ha un array!

Ps sei del corso b?

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,08 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000