RE: Problem u postavci zadatka..
Da, sad sam malo razmotrio ovaj vas primer. Dakle, ako stavite u for petlju nesto sto ce u vreme izvrsavanja da bude izracunato kao 100 to 3, vi ste rekli da ce brojac krenuti od 100, 101... Maxint, pa onda ide minint, minint+1...0,1,2,3.
To je, kako god se razmatra, veoma besmisleno brojanje i sigurno nije nesto sto je programer hteo. Od ovoga bismo mogli da se branimo npr. na sledeci nacin: u generisanom kodu nakon instrukcija koje izracunaju granice petlje ubacimo dodatne instrukcije kojima se proveri smer i granice i ako nesto ne valja, izgenerisemo instrukciju koja ispise runtime gresku i prekine izvrsavanje.
Dakle u pretpetlji imamo samo jos taj mali dodatni kod koji ce izvrsiti prevenciju od besmislenog iteriranja.
Ovo je dakle jedan moguci nacin da se spreci izvrsavanje 'Frankestajn for petlje' :)
Pozdrav,
Nemanja
-original message-
Subject: Re: [ir4pp1] Problem u postavci zadatka..
From: Miljan Markovic <miljan.markovic@gmail.com>
Date: 16/05/2010 10:35
Da, to sam shvatio, ali je moje pitanje bilo da li takva situacija (i ide do
INTMAX pa postaje 0 pa ide do getHigh(myStruct)) treba u vreme prevođenja
biti detektovana kao greška ili ne.
Iz odgovora kolege Nemanje shvatam da ne treba.
Pozdrav!
2010/5/15 Marko Stupar <guvet@nadlanu.com>
> Pa u tom slucaju ce "i" da ide dok ne dodje do svoje maksimalne vrednosti
> pa postane 0, i dok ne stigne do getHigh(myStruct)
>
> ----- Original Message -----
> *From:* Miljan Markovic <miljan.markovic@gmail.com>
> *To:* ir4pp1@rti.etf.rs
> *Sent:* Saturday, May 15, 2010 6:00 PM
> *Subject:* [ir4pp1] Problem u postavci zadatka..
>
> Hvala na brzom odgovoru na prothodni mail. Sada za promenu imam pravi
> problem.
>
> U postavci zadatka stoji da treba "Osmisliti fleksibilnu gramatičku
> konstrukciju za FOR petlju koja omogućava različite razumne načine za
> specificiranje granica iteracije (na primer dobijanje granica iteracije kao
> rezultata funkcije, rezultata izraza i td.).", ali takođe i stoji da treba
> omogućiti detektovanje neispravne konstrukcije granica i SMERA iteracije u
> for petlji.
>
> Kako ja to vidim, ova dva uslova ne mogu biti istovremeno zadovoljena samo
> konstrukcijom gramatike. Na primer, fleksibilna FOR konstrukcija bi
> dozvoljavala recimo
>
> FOR (i = myStruct.low TO getHigh(myStruct)) {....}
>
> ali u toku prevođenja ne bi mogla da se detektuje greška u smeru iteracije
> jer se tada ne zna da li je myStruct.low < getHigh(myStruct). Jedina
> mogućnost je da se fleksibilnost svede na izraze koji se mogu izračunati u
> vreme prevođenja..
>
> Zanima me, dakle, šta treba ostvariti: fleksibilnu for petlju ili detekciju
> greške u smeru iteracije?
>
> Pozdrav!
>
> ------------------------------
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@rti.etf.rs?subject=unsubscribe%20ir4pp1
> -----------------------------------------------------------------
>
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@rti.etf.rs?subject=unsubscribe%20ir4pp1
> -----------------------------------------------------------------
>
>
To je, kako god se razmatra, veoma besmisleno brojanje i sigurno nije nesto sto je programer hteo. Od ovoga bismo mogli da se branimo npr. na sledeci nacin: u generisanom kodu nakon instrukcija koje izracunaju granice petlje ubacimo dodatne instrukcije kojima se proveri smer i granice i ako nesto ne valja, izgenerisemo instrukciju koja ispise runtime gresku i prekine izvrsavanje.
Dakle u pretpetlji imamo samo jos taj mali dodatni kod koji ce izvrsiti prevenciju od besmislenog iteriranja.
Ovo je dakle jedan moguci nacin da se spreci izvrsavanje 'Frankestajn for petlje' :)
Pozdrav,
Nemanja
-original message-
Subject: Re: [ir4pp1] Problem u postavci zadatka..
From: Miljan Markovic <miljan.markovic@gmail.com>
Date: 16/05/2010 10:35
Da, to sam shvatio, ali je moje pitanje bilo da li takva situacija (i ide do
INTMAX pa postaje 0 pa ide do getHigh(myStruct)) treba u vreme prevođenja
biti detektovana kao greška ili ne.
Iz odgovora kolege Nemanje shvatam da ne treba.
Pozdrav!
2010/5/15 Marko Stupar <guvet@nadlanu.com>
> Pa u tom slucaju ce "i" da ide dok ne dodje do svoje maksimalne vrednosti
> pa postane 0, i dok ne stigne do getHigh(myStruct)
>
> ----- Original Message -----
> *From:* Miljan Markovic <miljan.markovic@gmail.com>
> *To:* ir4pp1@rti.etf.rs
> *Sent:* Saturday, May 15, 2010 6:00 PM
> *Subject:* [ir4pp1] Problem u postavci zadatka..
>
> Hvala na brzom odgovoru na prothodni mail. Sada za promenu imam pravi
> problem.
>
> U postavci zadatka stoji da treba "Osmisliti fleksibilnu gramatičku
> konstrukciju za FOR petlju koja omogućava različite razumne načine za
> specificiranje granica iteracije (na primer dobijanje granica iteracije kao
> rezultata funkcije, rezultata izraza i td.).", ali takođe i stoji da treba
> omogućiti detektovanje neispravne konstrukcije granica i SMERA iteracije u
> for petlji.
>
> Kako ja to vidim, ova dva uslova ne mogu biti istovremeno zadovoljena samo
> konstrukcijom gramatike. Na primer, fleksibilna FOR konstrukcija bi
> dozvoljavala recimo
>
> FOR (i = myStruct.low TO getHigh(myStruct)) {....}
>
> ali u toku prevođenja ne bi mogla da se detektuje greška u smeru iteracije
> jer se tada ne zna da li je myStruct.low < getHigh(myStruct). Jedina
> mogućnost je da se fleksibilnost svede na izraze koji se mogu izračunati u
> vreme prevođenja..
>
> Zanima me, dakle, šta treba ostvariti: fleksibilnu for petlju ili detekciju
> greške u smeru iteracije?
>
> Pozdrav!
>
> ------------------------------
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@rti.etf.rs?subject=unsubscribe%20ir4pp1
> -----------------------------------------------------------------
>
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@rti.etf.rs?subject=unsubscribe%20ir4pp1
> -----------------------------------------------------------------
>
>
Previous by date: Re: Problem u postavci zadatka..
Next by date: unsubscribe ir4pp1
Previous by thread: Re: Problem u postavci zadatka.. Next by thread: unsubscribe ir4pp1
Previous by thread: Re: Problem u postavci zadatka.. Next by thread: unsubscribe ir4pp1