«« ( Date ) »» // «« ( Thread ) »» // ir3sp - 2006

Re: Rezultati ispita

by Bojan Đurković
subota, 07. oktobar 2006 - 23:36.

Kolega, hvala na odgovorima, pomoglo je! :) nadam se da se vidimo sutra!


2006/10/5, Darko Petrovic <shtreber@gmail.com>:

1) Prototype ti je, kao sto ime kaze, prototip:) Dakle, red neposredno
ispod MCDEFN, gde se navodi ime makroa i, eventualno, formalni argumenti. U
ovom primeru prototipi su CREATECALL SUBR, LOAD PARM, PROCCALL PARM. Red u
kome koristis neki makro (ime i lista STVARNIH argumenata) u onim
algoritmima je krsten sa macroname... Other je sve sto nije tamo pobrojano -
neki nespecificni redovi teksta (poput PUSH PARM, LOAD PARM). Njih, ako
makroekspanzija nije u toku, jednostavno prepisujes sa ulaza na izlaz, a ako
jeste, onda si taj "other" procitao iz neke makrodefinicije i potrebno je,
pre upisa na izlaz, formalne argumente zameniti stvarnim. Stvari se jos malo
komplikuju kod ugnezdenih definicija koje ovde imas - tada se formalni
argumenti ne zamenjuju stvarnim nego se koriguju kako je objasnjeno u
materijalima, pa se vrsi upis u tabelu makrodefinicija, s tim ces se valjda
snaci...

2) Zato sto se koristi ekspanzija makroparametara po imenu. To znaci da se
prvo ekspanduje MACRO, a ako se u njegovoj ekspanziji naidje na drugi poziv,
on se tek tu obradjuje. Dakle, zbog ovog "X," na izlazu se dobije "ORIGINAL,
", ali se to zameni sa "ZAMENA,", usled poziva makroa ORIGINAL. Kada se
ekspanduje i ovo "X##1", dobija se "ORIGINAL1". Medjutim, tu vise nema
poziva makroa ORIGINAL. Nadovezali smo ovu jedinicu), pa se taj tekst ne
tumaci kao makropoziv. Da se koristila ekspanzija po vrednosti, tada bi se
najpre ekspandovao makro ORIGINAL u ZAMENA, pa bi se tek onda pozvao MACRO i
dobili bismo ZAMENA, ZAMENA1. Nadam se da ti je sad jasnije.

3) Zavisi od toga kako se obradjuju ti podaci. Recimo, u onom primeru sa
casa, gde se na ulaz dovodi integer u opsegu [1, 5000] imas jednu legalnu
klasu ekvivalencije i dve nelegalne (za <0 i >5000), jer ocekujes da ce
program na isti nacin racunati koren od 22, i od 976 i od 4998... Ne bi
trebalo da bude nikakve posebne obrade za bilo koji dozvoljeni broj. Za
drugu situaciju moze se navesti ovaj primer: na pocetku programa unosis,
izmedju ostalog, ceo broj od 1-3. Za "1", rezultat obrade ispisace se na
ekran, za "2" ce se upisati u neku datoteku na disku i za "3" ce se, recimo,
proslediti nekom kolegi putem lokalne mreze. Sada ces imati tri zasebne
legalne klase ekvivalencije, (za 1, 2 i 3) i jednu nelegalnu (ostalo).
Razlog je sto se sada moze ocekivati neka specificna obrada za razlicite
legalne vrednosti, pa su sve to posebne klase, a praviti dve nelegalne klase
ovde gubi smisao.

Ne garantujem za tacnost gore napisanog:) Ako sam negde pogresio, molim da
me ispravite.

Zamolio bih profesora da na sajt predmeta stavi septembarski ispitni
rok...

Pozdrav,
Darko

----- Original Message -----
*From:* Bojan Đurković <djurkovic@gmail.com>
*To:* ir3sp@rti.etf.bg.ac.yu
*Sent:* Wednesday, October 04, 2006 12:11 AM
*Subject:* Re: [ir3sp] Rezultati ispita

imam par pitanja, bio bih zahvalan ako bi mi neko od kolega odgovorio:

1)

pri makroprocesorskoj obradi sledećeg teksta:

1. MCDEFN
2. CREATECALL SUBR
3. MCDEFN
4. LOAD PARM
5. PUSH PARM
6. MOV SP, BP
7. MCEND
8. MCDEFN
9. PROCCALL PARM
10. LOAD PARM
11. CALL SUBR
12. MCEND
13. MCEND
14. CREATECALL ACTUAL
15. PROCCALL 5

kako znam šta je prototype a šta other?

2)

kako tačno iz ovog teksta:

#define MACRO(X) X, X ## 1
#define ORIGINAL ZAMENA
MACRO(ORIGINAL)

dobijem ovaj izlaz: ZAMENA, ORIGINAL1

zašto prvi X u prvoj liniji se promeni iz ORIGINAL u ZAMENA, a drugi X
ostane ORIGINAL ?

3) u testiranju metodom klasa ekvivalencije, kada mogu da imam N nečega,
kada odvajam kao posebu klasu da imam 1 toga, i 2-N toga (obe klase su
legalne, ilegalne su 0 i >N).

Za sada toliko.

------------------------------
-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir3sp
-----------------------------------------------------------------


-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir3sp
-----------------------------------------------------------------