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

Re: Pitanja u vezi sa 4. parc. domacim

by Jovan Popovic
utorak, 07. jun 2005 - 14:57.

Za cetvrti domaci ne treba uraditi AST. U cup smene treba ubaciti akcioni
kod za proveru sintakse, semantike i generisanja koda u istom fajlu.

Znaci ne brisite nista od predhodnih domacih. Konacna verzija treba da
odradi i sintaksnu i semanticku analizu i ako je sve ispravno generise
kod.

Pozdrav,
Jovan

> Ne pratim ni ja vežbe ali možda mogu da ti pomognem.
> Postoje dva načina kako može da se uradi kompajler:
> - dodavanjem akcionog koda u cup fajl koji radi ono što ti je
> potrebno + korišćenje pomoćnih klasa (tabela simbola)
> - dodavanjem akcionog koda u cup fajl čija je jedina svrha da
> generiše ast. Sa ast-om kasnije možeš da radiš šta hoćeš,
> apstraktniji je i lepši od gramatike i nisi više vezan za cup
> (više prolaza npr. za semantičku analizu, generisanje koda)
>
> Treći domaći je rađen na prvi način (bez ast-a). Ovaj pristup ne
> možeš da koristiš ako tvoj kompajler treba da radi recimo i
> semantičku analizu i generisanje koda. Komplikovano je i
> uzaludno da implementiraš to u jednom prolazu pomoću akcionog
> koda.
>
> Međutim, u postavci domaćeg je rečeno da je ulazni fajl ispravan i
> da koristiš i dalje prvi način, tako da zaboravi na ast, a kao polaznu
> tačku za četvrti domaći iskoristi treći koji ćeš da očistiš od semantičke
> i sintaksne (god bless) analize.
>
> ----- Original Message -----
> From: "Uros" <urke_etf@yahoo.it>
> To: <ri4pp@titan.etf.bg.ac.yu>
> Sent: Tuesday, June 07, 2005 6:36 AM
> Subject: [ri4pp] Pitanja u vezi sa 4. parc. domacim
>
>
>> Da li koristimo tabelu simbola koju smo kreirali u 3. domacem, u koju
>> prethodno ubacimo adrese?
>> Pretpostavljam da treba da kreiramo AST za ceo program, pa sam
>> malo zbunjen nekim definicijama u materijalima sa vezbi, o tome kako
>> primena AST razdvaja sintaksnu analizu od semanticke i generisanja
>> koda...
>> Zar nismo vec napravili CUP fajl u kome smo dodali semanticku analizu?
>> Kako
>> sad to da razdvojimo?
>>
>> Takodje se govori o ugradnji semantickih pravila u klase od kojih se
>> gradi
>> AST,
>> a u 3. domacem su ta pravila ugradjena u CUP fajl...
>>
>> Molio bih nekoga kome je ovo jasno (ja bas nisam bio redovan na vezbama
>> u
>> poslednjih
>> mesec dana), ili asistenta ako stigne, da malo objasni sta treba da se
>> radi, jer mi se cini
>> da ovo sto pise u postavci moze da se uradi na razlicite nacine...
>>
>> Da li se radi ovako:
>> - Ubacivanje adresa u tabelu simbola
>> - Pravljenje AST-a od elemenata iz tabele i novih klasa koje
>> predstavljaju
>> izraze, if/else/while strukture itd...
>> - generisanje asemblerskih instrukcija pomocu AST-a
>> (da li ovo gore treba sve da uradimo dodavanjem akcionog koda u cup fajl
>> iz 3. domaceg i dodatnih klasa u paket?)
>> - generisanje bajt koda od asem. instr., pomocu klasa Code, Item itd...
>> ?
>>
>> Hvala unapred!
>> Pozdrav,
>> Uros
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
> -----------------------------------------------------------------
>
>