Slazem se sa vama. Ali kada pogledate kakve vrednosti mogu bit, gde mogu biti, kog tipa mogu biti i koje binarne operacije se sa njima mogu izvesti, sto je tabelarno prikazano:
Code:
vrednosti Mesto Tip Vrednosti Binarna operacija
Konstanta Memorija byte +,-,div,mod,and,or,eor,shr,shl,>,<,>=,<=,<>,=,in
Varijabla Stek shortint +,-,div,mod,and,or,eor,shr,shl,>,<,>=,<=,<>,=,in
Pointer VrhSteka word +,-,div,mod,and,or,eor,shr,shl,>,<,>=,<=,<>,=,in
ACCA integer +,-,div,mod,and,or,eor,shr,shl,>,<,>=,<=,<>,=,in
AccA i Vrh Steka longword +,-,div,mod,and,or,eor,shr,shl,>,<,>=,<=,<>,=,in
longint +,-,div,mod,and,or,eor,shr,shl,>,<,>=,<=,<>,=,in
char +,>,<,>=,<=,<>,=,in
string +,>,<,>=,<=,<>,=
skup +,-,*,>=,<=,<>,=,in
float +,-,*,/,>,<,>=,<=,<>,=
nabroiv >,<,>=,<=,<>,=,in
boolean and,or,eor,>,<,>=,<=,<>,=,in
Broj kombinacija iz ove tabele je 2190. Idealno (i nerazumno) je napisati 2190 procedura i kod ce biti vrlo efikasan. Ali, to je sumanuto, vrse se uopstavanja, po cenu da se neki redji slucajevi prevode manje efikasno. Ako se ovome dodaju i unarne operacije, onda je broj kombinacija oko 3000.
Prilicno mi je tesko da u sve to uvedem i izbor optimizacije: na kraci kod ili vecu brzinu. Mislim, da je prihvatljivo resenje sto kraci kod, a tamo gde je potrebna veca brzina moze se napisati program u asembleru, sto kompajler podrzava. Primer koji sam ranije naveo je ekstreman, ali je naveden da pokaze dilemu. Mislimm da svi kada pisu u asembleru i rade sa 4-o bajtnim varijablama, pisu direktan kod, a ne rade to uz pomoci nekih procedura. Napominjem da je CodeWarrior napravio isti prevod i za optimizaciju na duzinu koda i na brzinu koda. Dakle 6 bajta manje i 54 ciklusa vise, sto dodje 6 ciklusa po svakom bajtu ustede.
Sa druge strane, pisanje prevoda, u fazi u kojoj je ono sada, je cist rutinski posao od kojeg ce me zaboleti prsti od kucanja. Prosto me mrzi da povecavam broj kombinacija uvodjenjem novih slucajeva (razlicita optimizacija).
Mozda cu to da doradim kada zavrsim posao, i kada obavim sva testiranja, koja ce biti mucna i dugotrajna. Ako za netrivijalni program dobijem dobre komparativne rezultate bicu zadovoljan.
Pozdrav.