«« ( Date ) »» // «« ( Thread ) »» // si4pp1 - 2010

Re: Pitanje-domaći PP1

by Nemanja Kojic @ ETF
subota, 25. decembar 2010 - 15:06.

Kolega,


On 12/25/2010 2:04 PM, someone wrote:
Poštovani,

Imam 2 pitanja

1) U trećem delu domaćeg piše:
____________________________________________________________________________________
Na način opisan u prethodnoj tački (ii) treba obraditi sledeće vrste iskaza i izraza
MJ(za iskaze koji se ne obrađuju, ne menjati gramatiku, nego samo izostaviti
semantičku obradu):
Statement = Designator (“=“ Expr | “(“ [ActPars] “)” | “++” | “‐‐”) “;”
| “if” “(“ Condition “)” Statement [“else” Statement]
| “return” [Expr] “;”
| “read” “(“ Designator “)” “;”
| “print” “(“ Expr [“,” number] “)” “;”
| “{“ {Statement} “}”.
1. Uslovni izrazi (Condition) mogu biti samo oblika CondFact.
2. Obrađivati stvarne parametre u pozivu funkcija (mogu biti ili prostog
tipa ili tipa nizova).
3. Sintaksni element pod nazivom Designator može se odnositi samo na
promenljivu prostog tipa ili niz (ne sme sadržati tačku).
4. Izrazi (expr) treba da se obrade kompletno (izostaviti samo pristup
poljima klase i pravljenje instanci klase sa operatorom new).
____________________________________________________________________________________

U zadatoj specifikaciji Mikrojave neke smene nisu ovako definisane. Da li je potrebno izmeniti početnu
gramatiku, ako nije šta ova tačka znači?
Referentna je uvek specifikacija jezika Mikrojava koja postoji u materijalima sa predavanja.
(zadata gramatika nekad nije bas u skladu sa specifikacijom, tako da se uvek pozivajte na specifikaciju,
osim ako u zadatku nisu navedeni zahtevi koji odstupaju od specifikacije).

2) Da li je potrebno da se prilikom poziva funkcije upoređuju stvarni i formalni parametri
(vrši provera broja i tipova parametara)?

Formalne parametre čuvamo u heš tabeli i ne možemo da im pristupimo ako nemamo ime ključa,
a za proveru validnosti stvarnih parametara su nam porebni - da li ćemo u konačnoj implementaciji
heš tabele imati iterator (ili neki drugi način kojim bismo obišli celu tabelu) ili ovu proveru
nije potrebno raditi...
Stvarne parametre treba proveravati. To znaci: broj i tip parametara u skladu sa listom formalnih parametara
u definiciji funkcije. S tim u vezi, zadatu gramatiku sami treba da prosirite da bi ovo bilo moguce.
Implementaciju necu da namecem. To je iskljucivo predmet Vaseg dizajna.


Pozdrav,
Nemanja