«« ( Date ) »» // «« ( Thread ) »» // ir4pp1 - 2007

Za asistenta: Re: Ispis objekata neke klase

by Marko Savić
nedelja, 21. januar 2007 - 03:53.

On Sun, 21 Jan 2007 03:26:47 +0100, Marko Skocic <markos84@verat.net> wrote:

>
> Marko Bojovic,
> 1/18/2007, 4:11 PM, napisa:
>
>> Ako imate situaciju a.b, gde je a lokalna promenljiva, mozete ispisati npr."Linija xx: Pronadjena lokalna promenljiva a tipa klase K. Linija xx:pronadjeno polje b klase K.". Moze i drugacije, samo je bitno da se usvakoj situaciji moze tacno utvrditi kakav je simbol upotrebljen.
>
>> Pozdrav,
>> Bojovic Marko
>Ne vidim kako se iz tabele simbola moze doci do imena klase. Od objekta neke klase (lokalna promenljiva a) postoji referenca samo ka strukturnom cvoru Class, koji poseduje referencu ka poljima klase, ali ne i ka objektnom cvoru u kome se u polju name cuva trazeno ime. Drugim recima, ako ne promenimo strukturu tabele simbola (sto ne smemo) ili ako ne iskoristimo/napravimo neku dodatnu strukturu u kojoj bi cuvali ovu informaciju tesko da mozemo da izvedemo da se ispise kao sto ste vi naveli.
>
>
>
>
Ja sam to zaobisao (uzeo sam u obzir ono - moze i drugacije)
moj ispis je ovakav:
(40) Detektovano koriscenje simbola: Var o: Class, 0, 1 [Fld id: int, 0, 1 ][Fld ime: Arr of char, 0, 1 ]
(40) Detektovano koriscenje simbola: Fld ime: Arr of char, 0, 1

Po meni, ovde je ocigledno da je Fld 'ime' polje instance 'o' neke klase...
E sad koje klase???
Slazem se da bi objekti trebalo da imaju i pokazivac na Obj parent koji bi
dozvolio poljima i instancama da "znaju" kako im se zove klasa, ali sta je tu je...

Pitanje za asistenta: da li ovakav ispis prolazi, ili nam se oduzimaju poeni
ako ne znamo kako se zove klasa u trenutku kad pristupamo njenoj instanci i poljima?

Mogla bi recimo da se implementira metoda Tab.findParent(Obj o) koja bi
protrcala kroz celu tabelu trazeci Obj vrste Type, i u cijoj strukturi
u listi fields imamo bas taj objekat...
Po meni, ovo je potpuno besmislen i neozbiljan pristup i ja ga necu koristiti...

Ako neko ima neki drugi predlog, neka javi

Pozdrav,
Marko