C nebo ASM?

Bc. Marek Pavlu pavlu@HWserver.cz
Pátek Květen 22 14:06:13 CEST 2009


Zdravim po dloughe dobe, 

zcela nesouhlasim, ze program ve vyssim jazyce je nutne pomalejsi 
nez verze napsana zkusenym programatorem:). 
To plati mozna pro jednoduche procesory, kde optimalizace nejsoub uplne na
spici v oboru a 
pro kratke programy, ale jak roste slozitost, tak clovek neni napr. na PC
schopen 
zvazit veskere mozne varianty pri poctu instrukci na procesorech dostupnych.

To je iluze, protoze byste kazdou variantu s ruznymi moznymi resenimi musel
prozkoumat a na 
modernich procesorech i na jednoduchem programu Vam hned cas vyvoje roste
rychleji nez linearne umerne poctu instrukci, 
protoze musite prozkoumat VSECHNY varianty reseni! 
To nedela nikdo, ani ten "zkuseny programator v asm" :). 

Ale u MCU asi jeste pravdu mate, ac pri poctu rodin procesoru i u jednoho
vyrobce, 
kde vyvojar nakonec musi prechazet mezi rodinami, tak nikdo nema v hlave
presne vsechny instrukce a varianty instrukci 
a casovou slozitost. Takze toto tez takove tvrzeni silne oslabuje:)... 

S pozdravem, 
                Marek Pavlu 


-----Original Message----- 
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
Behalf Of Jan Waclawek 
Sent: Friday, May 22, 2009 10:20 AM 
To: HW-news 
Subject: Re: C nebo ASM? 

>Kontrolni soucet pole v ASM je na PIC18 podstatne rychlejsi, Cecko od = 
>Hitechu to udela strasne pomale. Mne se jedna pouze o jednu vec a to = 
>jestli dokaze nejaky kompilator na jednocipech toto plne optimalizovat. = 
>Pripadne jak by to vypadalo na PC. 
>Mam tady knihu "Dokonaly kod" a v ni se tvrdi ze psani v asembleru je = 
>dnes zbytecne a kod v C je stejne rychly, (A taky se tam nedoporucuje = 
>pouzivat pointery). 

"Stejne rychly" je samozrejme nezmysel, to vsetko zavisi od kontextu. Aj v
asembleri sa da pisat zle, ale vo vseobecnosti program napisany vo vyssom
jazyku je pomalsi a vacsi ako ten isty program napisany v asembleri
*skusenym programatorom*. To je dan za pohodlnost, bodka. Vo vacsine
pripadov to vsak nevadi, resp. je to akceptovane ako primerany kompromis
medzi pohodlnostou a spotrebovanymi prostriedkami (procesorovy cas, pamate);
v tej mensine pripadov ked to vadi, sa obvykle jedna o nejaky kratky avsak
kriticky usek programu, kde sa to oplati prepisat v asembleri alebo robit to
saskovanie typu "napisem to niekolkymi sposobmi a pozriem sa, ktory z nich
prekladac prelozil najlepsie".

Prekladac (resp. jeho optimalizator) je program, ktory sa snazi pochopit, co
clovek nejakym zapisom myslel, a ten potom zoptimalizovat. Niekedy to proste
uhadnut z toho zapisu nejde, a niekedy ten optimalizator je nedokonaly. Ako
Andrej uz niekolkokrat pisal, HiTech ma tie prekladace dva, a pokial viem,
su vyrazne odlisne, najma co sa optimalizacie tyka; tak mozno by ste sa mali
obzriet aj v tomto smere.

Dalej drviva vacsina kniziek a takychto vseobecnych tvrdeni v nich su
PC-centricke a pre jednocipy (myslim tym "small embedded", nie zlepence
(SoC) typu ARM a spol.) maju len obmedzenu platnost. Napriklad v dnesnej
dobe je vzhladom na extremnu zlozitost a vyraznu odlisnost a rychlu
premenlivost jednotlivych verzii x86 len hrstka ludi, ktori si dali namahu
plne pochopit co a ako v nich funguje, takze jednoducho neexistuju *skuseni
programatori* v asm pre sucasne x86, ktori by mohli sutazit s hoci aj
priemernym prekladacom; avsak u 8-bitov je to naopak.


JW 


_______________________________________________ 
HW-list mailing list  -  sponsored by www.HW.cz 
Hw-list@list.hw.cz 
http://list.hw.cz/mailman/listinfo/hw-list 



  _____  

avast! Antivirus <http://www.avast.com> : Odchozi zprava cista. 


Virova databaze (VPS): 090521-0, 21.05.2009
Testovano: 22.5.2009 14:06:13
avast! - copyright (c) 1988-2009 ALWIL Software.






Další informace o konferenci Hw-list