Re: Pitanje u vezi koda sa sajta
Slazem se sa svim sto si rekao, ali nisi odgovorio na moje pitanje.
Ako je velicina staticke promenljive koja je referenca na objekat neke klase 4 bajta tj. jedna rec, zasto bi se u metodi MJCodeGenerator :: allocateStaticMemory(int ) :
public int allocateStaticMemory(int size)
{
Code.dataSize += size;
return Code.dataSize;
}
za nju izdvajalo type.getSize() lokacija, kada je dovoljna samo jedna lokacija. Tj. zasto se Code.dataSize povecava za type.getSize() sto je u slucaju klasa jednako nVar.
Pozdrav, Petar
----- Original Message -----
From: Milan Aleksic
To: ri4pp@rti.etf.bg.ac.yu
Sent: Sunday, June 04, 2006 9:08 PM
Subject: Re: [ri4pp] Pitanje u vezi koda sa sajta
fazon ti je slican kao i u bilo kom OOP jeziku, referenca ti je samo adresa nekog objekta na heap-u, dok je njegova velicina proizvoljna.
Tu nema greske, kada budes pozivao new prosledices upravo taj nVar jer ce on reci vm-u koliko memorije da zauzme na heap-u i da zatim vrati adresu (ekvivalentno pokazivacu u C++-u npr.) koju ces ti posle da koristis kada budes hteo da preuzmes vrednost nekog polja iz alociranog objekta. capisci?
pozdrav, Milan
On 6/4/06, Bojic Petar <rapecafa@verat.net> wrote:
Na sajtu za prevodioce u odeljku "primeri koda" - Primer Implementacije - Eclipse projekat -Primeri implementacije generatora koda i tabele simbola - Compiler.zip. U ovoj arhivi se nalazi folder CompilerFramework\symbolTablePackage\pl a u njemu ObjFactory.java. Zanima me metoda iz ovog fajla:
public Variable CreateGlobalVariable(String name, Struct type)
{
Variable var = CreateVariable(name,type, STATIC);
var.adr = mem.allocateStaticMemory(type.getSize());
return var;
}
Ako je tip "type" klasni tj. promenljiva u statickoj memoriji je referenca na instancu objekta
na heap-u, velicina promenljive u statickoj memoriji je samo jedna rec, dok ce type.getSize(), koji se koristi u mem.allocateStaticMemory, u slucaju klasnog tipa vratiti nVar polje u Struct klasi sto moze biti vece od 1.
Da li je ovo greska ili kod treba tumaciti na drugi nacin?
Pozdrav
Petar
-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
-----------------------------------------------------------------
--
Milan Aleksić
WebGrafit: http://galeb.etf.bg.ac.yu/~aleksicm/webgrafit.php
email+jabber: milanaleksic@gmail.com
web: http://drop.to/goblin
ICQ: 53177884
------------------------------------------------------------------------------
-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
-----------------------------------------------------------------
Ako je velicina staticke promenljive koja je referenca na objekat neke klase 4 bajta tj. jedna rec, zasto bi se u metodi MJCodeGenerator :: allocateStaticMemory(int ) :
public int allocateStaticMemory(int size)
{
Code.dataSize += size;
return Code.dataSize;
}
za nju izdvajalo type.getSize() lokacija, kada je dovoljna samo jedna lokacija. Tj. zasto se Code.dataSize povecava za type.getSize() sto je u slucaju klasa jednako nVar.
Pozdrav, Petar
----- Original Message -----
From: Milan Aleksic
To: ri4pp@rti.etf.bg.ac.yu
Sent: Sunday, June 04, 2006 9:08 PM
Subject: Re: [ri4pp] Pitanje u vezi koda sa sajta
fazon ti je slican kao i u bilo kom OOP jeziku, referenca ti je samo adresa nekog objekta na heap-u, dok je njegova velicina proizvoljna.
Tu nema greske, kada budes pozivao new prosledices upravo taj nVar jer ce on reci vm-u koliko memorije da zauzme na heap-u i da zatim vrati adresu (ekvivalentno pokazivacu u C++-u npr.) koju ces ti posle da koristis kada budes hteo da preuzmes vrednost nekog polja iz alociranog objekta. capisci?
pozdrav, Milan
On 6/4/06, Bojic Petar <rapecafa@verat.net> wrote:
Na sajtu za prevodioce u odeljku "primeri koda" - Primer Implementacije - Eclipse projekat -Primeri implementacije generatora koda i tabele simbola - Compiler.zip. U ovoj arhivi se nalazi folder CompilerFramework\symbolTablePackage\pl a u njemu ObjFactory.java. Zanima me metoda iz ovog fajla:
public Variable CreateGlobalVariable(String name, Struct type)
{
Variable var = CreateVariable(name,type, STATIC);
var.adr = mem.allocateStaticMemory(type.getSize());
return var;
}
Ako je tip "type" klasni tj. promenljiva u statickoj memoriji je referenca na instancu objekta
na heap-u, velicina promenljive u statickoj memoriji je samo jedna rec, dok ce type.getSize(), koji se koristi u mem.allocateStaticMemory, u slucaju klasnog tipa vratiti nVar polje u Struct klasi sto moze biti vece od 1.
Da li je ovo greska ili kod treba tumaciti na drugi nacin?
Pozdrav
Petar
-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
-----------------------------------------------------------------
--
Milan Aleksić
WebGrafit: http://galeb.etf.bg.ac.yu/~aleksicm/webgrafit.php
email+jabber: milanaleksic@gmail.com
web: http://drop.to/goblin
ICQ: 53177884
------------------------------------------------------------------------------
-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
-----------------------------------------------------------------
- Follow-Ups:
- Re: Pitanje u vezi koda sa sajta
- From: "Jovan Popovic" <jovan@etf.bg.ac.yu>
- Re: Pitanje u vezi koda sa sajta
- References:
- Pitanje u vezi koda sa sajta
- From: "Bojic Petar" <rapecafa@verat.net>
- Re: Pitanje u vezi koda sa sajta
- From: "Milan Aleksic" <milanaleksic@gmail.com>
- Pitanje u vezi koda sa sajta
Previous by date: Re: Pitanje u vezi koda sa sajta
Next by date: Nasledjivanje metoda
Previous by thread: Re: Pitanje u vezi koda sa sajta Next by thread: Re: Pitanje u vezi koda sa sajta
Previous by thread: Re: Pitanje u vezi koda sa sajta Next by thread: Re: Pitanje u vezi koda sa sajta