«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2005

Re: zna li neko zasto je ovo ovako

by Djokic Ljubomir
petak, 08. jul 2005 - 10:29.

lsize= prostor za lokalne promenljive. Tu spadaju i stvarni parametri. Inicijalno sve nule.
psize=koliko parametara ima metoda. Oni se skidaju sa run-time steka i stavljaju u prostor za lokalne promenljive (procedure stack).

Primer:
foo(int x, int y)int n;{}
za poziv foo(3,4);

Procedure Stack
nextPC
ControlLink <-fp
stvarni_parametar x=3
stvarni_parametar y=4
lokalnapromenljiva n

Dakle,
enter brojParametaraMetode,brojParametaraMetode+brojLokalnihPromenljivih

----- Original Message -----
From: "Aleksandar Vujic" <aleksandar.vujic@gmail.com>
To: <ri4pp@titan.etf.bg.ac.yu>
Sent: Friday, July 08, 2005 9:13 AM
Subject: Re: [ri4pp] zna li neko zasto je ovo ovako


Jeste li sigurni u vezi ovoga? U Run.java (VM) piše:

case enter:
int psize = next(true);
int lsize = next(true);
PUSH(fp);
fp = sp;
for (i = 0; i < lsize; i++) PUSH(0);
for (i = psize - 1; i >= 0; i--) local[fp + i] = pop();
break;

Po tome meni izgleda da treba da piše

enter brojParametaraMetode, brojLokalnihPromenljivihMetode
(enter 2,1)

Pozdrav,
Aca


-----Original Message-----
From: Bojana Lukovic [mailto:bojana@galeb.etf.bg.ac.yu]
Sent: Friday, July 08, 2005 5:23 AM
To: ri4pp@titan.etf.bg.ac.yu
Subject: Re: [ri4pp] zna li neko zasto je ovo ovako

treba enter 2,3 a ne enter 2,1
za ostalo se slazem

> recimo da umesto enter 2,3 treba da stoji enter 2 1 ...
>
> pretpostavljam da je ovo resenje
>
> ...
> prvo postavka bi trebalo da bude (za MJ)
>
> class A
> int p,q;
> {
> int m(int i, int j)
> int k;
> {
> p=j;
> k=i;
> return k;
> }
>
> void main()
> {
> p=5;
> q=6;
> q=m(p,1);
> }
> }
>
> ... i onda
>
> 0: enter 2 1
> 3: load_1
> 4: putstatic 0
> 7: load_0
> 8: store_2
> 9: load_2
> 10: exit
> 11: return
> ...
>
> 100: getstatic 0
> 103: const_1
> 104: call -104 (=0)
> 107: putstatic 1
> 110: ....

-----------------------------------------------------------------
unsubscribe:
minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
-----------------------------------------------------------------

-----------------------------------------------------------------
unsubscribe:
minimalist@titan.etf.bg.ac.yu?subject=subscribe%20ri4pp
-----------------------------------------------------------------