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

Re: Re: Prazne smene - zasto nisu dozvoljene?

by Jovan Popovic
četvrtak, 29. decembar 2005 - 13:36.

Begin end sekcija samo treba da zameni

main(){
}

funkciju.

Ako pogledate primer za nivo A:

program ime_programa;
var int x,y,z;
const int pi = 3, e = 2;
var char a, b;
var char c;

begin
x = 3;
y = 3+e*x++ ;
read(a);
end

ne postoji glavna klasa kao u proslogodisnjoj definiciji mikrojave. Ostale
klase mogu ali i ne moraju da imaju metode. Ova definicija mikrojave malo
vise lici na paskal.

Ne koristite precendence za binarne operatore i ne koristite prazne smene.
Gramatika ce i dalje biti dovoljno citljiva, a niko nece citati java kod
koji cup izgenerise.
Umesto precedence korisite leve ili desne rekurzije kao sto sam radio na
vezbama. Imate te smene u materijalima (sintaksna analiza 2).
Prazne smene ne mozete da koristite zato sto CUP prijavi mnogo konflikata
kada se te smene koriste u vecim gramatikama. Ako vam treba "prazna smena"
koristicete po dve smene, na primer:

fdecl : type ID '(' argumenti ')' telo
fdecl : type ID '(' ')' telo

gde je neterinal argumenti niz od JEDNOG ili vise argumenta.

Pozdrav



> Da, to i mene zanima... Mnogo komplikuje nastavak izrade domaceg! Da li je
> dozvoljeno raditi sa precedence operatorima i praznim smenama?
>
> Milos Lalic <milos.lalic@gmail.com> wrote: Naknadno smo videli
> ograničenje u domaćem u vidu zabrane korišćenja
> praznih smena. Krenuli smo u preradu gramatike i broj "unique parse
> states" se povećao za 40% a i kod je postao mnogo manje čitljiv.
> Postoji li mogućnost da se radi sa praznim smenama, bez oduzimanja
> bodova?
>
> Takođe, pitanje u vezi mikrojava koda: da li glavna klasa mora da ima
> blok deklaracija metoda? I kako tačno izgleda begin-end blok?
>
> Da li je sledeći kod ispravan:
>
> program domaci
> class glavna
> var int x;
> {
> int inc(i:int) {
> return i+1;
> }
> }
> begin
> x=5;
> end.
>
> Da li je to pravo mesto za begin-end blok? Ako jeste, da li mora da
> bude definisana bar jedna metoda ispred begin-end bloka?
>
> Još samo jedno pitanje: kako uraditi domaći bez precedence operatora
> za aritmetičke operacije?
>
> --
> Miloš Lalić
> milos.lalic@gmail.com
> http://www.putovanja.info
>
>
>
>
> ---------------------------------
> Yahoo! Shopping
> Find Great Deals on Holiday Gifts at Yahoo! Shopping