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
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Tiamat
Utente giovane


Regione: Puglia
Prov.: Foggia
Città: Cerignola


Inserito il - 28/12/2004 : 20:57:09  Mostra Profilo  Visita l'Homepage di Tiamat Invia a Tiamat un Messaggio Privato  Rispondi Quotando
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

Il dio dei Draghi

tremenda
Utente assiduo

tweety


Regione: Puglia
Prov.: Ba
Città: Bari


Inserito il - 29/12/2004 : 12:05:55  Mostra Profilo  Visita l'Homepage di tremenda  Clicca per vedere l'indirizzo MSN di tremenda Invia a tremenda un Messaggio Privato  Rispondi Quotando
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?

"And I feel that love is dead I'm loving angels instead..."
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 29/12/2004 : 12:29:14  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
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).

gia' e non ancora...
Torna all'inizio della Pagina

tremenda
Utente assiduo

tweety


Regione: Puglia
Prov.: Ba
Città: Bari


Inserito il - 29/12/2004 : 12:43:21  Mostra Profilo  Visita l'Homepage di tremenda  Clicca per vedere l'indirizzo MSN di tremenda Invia a tremenda un Messaggio Privato  Rispondi Quotando
Vabbè io ho ripetuto le parole della prof...

"And I feel that love is dead I'm loving angels instead..."
Torna all'inizio della Pagina

Tiamat
Utente giovane


Regione: Puglia
Prov.: Foggia
Città: Cerignola


Inserito il - 29/12/2004 : 18:35:52  Mostra Profilo  Visita l'Homepage di Tiamat Invia a Tiamat un Messaggio Privato  Rispondi Quotando
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

Il dio dei Draghi
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 29/12/2004 : 19:07:56  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
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à?

gia' e non ancora...
Torna all'inizio della Pagina

Tiamat
Utente giovane


Regione: Puglia
Prov.: Foggia
Città: Cerignola


Inserito il - 30/12/2004 : 17:57:43  Mostra Profilo  Visita l'Homepage di Tiamat Invia a Tiamat un Messaggio Privato  Rispondi Quotando
Grazie credo che ora l'argomento mi sia più chiaro

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

Il dio dei Draghi
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 30/12/2004 : 20:33:46  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da Tiamat

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

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



scherzavo :P

gia' e non ancora...
Torna all'inizio della Pagina

Tiamat
Utente giovane


Regione: Puglia
Prov.: Foggia
Città: Cerignola


Inserito il - 31/12/2004 : 16:24:33  Mostra Profilo  Visita l'Homepage di Tiamat Invia a Tiamat un Messaggio Privato  Rispondi Quotando
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?

Il dio dei Draghi
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 31/12/2004 : 16:28:04  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
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ì?

gia' e non ancora...

Modificato da - nicux in data
Torna all'inizio della Pagina

Tiamat
Utente giovane


Regione: Puglia
Prov.: Foggia
Città: Cerignola


Inserito il - 01/01/2005 : 12:12:18  Mostra Profilo  Visita l'Homepage di Tiamat Invia a Tiamat un Messaggio Privato  Rispondi Quotando
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

Il dio dei Draghi
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 01/01/2005 : 13:20:34  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
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 ;)


gia' e non ancora...
Torna all'inizio della Pagina

Tiamat
Utente giovane


Regione: Puglia
Prov.: Foggia
Città: Cerignola


Inserito il - 06/01/2005 : 20:59:04  Mostra Profilo  Visita l'Homepage di Tiamat Invia a Tiamat un Messaggio Privato  Rispondi Quotando
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

Il dio dei Draghi
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 07/01/2005 : 01:00:27  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
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).

gia' e non ancora...
Torna all'inizio della Pagina

Tiamat
Utente giovane


Regione: Puglia
Prov.: Foggia
Città: Cerignola


Inserito il - 08/01/2005 : 10:33:59  Mostra Profilo  Visita l'Homepage di Tiamat Invia a Tiamat un Messaggio Privato  Rispondi Quotando
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

Il dio dei Draghi
Torna all'inizio della Pagina

enzobidi
Nuovo Utente


Regione: Puglia
Prov.: Bari


Inserito il - 15/01/2005 : 10:59:51  Mostra Profilo  Visita l'Homepage di enzobidi Invia a enzobidi un Messaggio Privato  Rispondi Quotando
Salve a tutti.
potete indicarmi qualche link o dispense
sull'argomento "record di attivazione"
grazie
Torna all'inizio della Pagina

Aiace
Piccolo Cinema Onirico


Regione: Puglia
Prov.: Bari


Inserito il - 15/01/2005 : 13:13:29  Mostra Profilo  Visita l'Homepage di Aiace  Rispondi Quotando
Prego
http://lacam.di.uniba.it:8000/people/courses/lanza/Mod%203_4.pdf
Torna all'inizio della Pagina

Vincent Vega
Utente giovane

Gianni


Regione: Puglia
Prov.: Bari
Città: Bari


Inserito il - 01/02/2005 : 18:22:57  Mostra Profilo  Visita l'Homepage di Vincent Vega  Clicca per vedere l'indirizzo MSN di Vincent Vega Invia a Vincent Vega un Messaggio Privato  Rispondi Quotando
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

I'm a Respectable Son Of A Bitch
Torna all'inizio della Pagina

nicux
Sottonicux

nicux


Regione: Estero
Prov.: Zara
Città: Citta'


Inserito il - 01/02/2005 : 19:07:00  Mostra Profilo  Visita l'Homepage di nicux Invia a nicux un Messaggio Privato  Rispondi Quotando
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).


gia' e non ancora...
Torna all'inizio della Pagina

Tiamat
Utente giovane


Regione: Puglia
Prov.: Foggia
Città: Cerignola


Inserito il - 15/02/2005 : 18:36:38  Mostra Profilo  Visita l'Homepage di Tiamat Invia a Tiamat un Messaggio Privato  Rispondi Quotando
scusate l'ulteriore domanda, per le variabili globali si deve ragionare come per i parametri?
Grazie.

Il dio dei Draghi
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,28 secondi.

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