Re: Jádro pudla (Cernobily svet) :-)

Ales Prochaska prochaska@alsoft.cz
Neděle Březen 5 22:04:35 CET 2006


Tyhle kontrolni funkce se normalne pouzivaji jen pri ladeni, pak se
vypnou. Ale nemely by vadit ani v ostrem provozu (kde se ovsem
exception osetruje zapisem do logu a tise se doufa, ze si toho
zakaznik nevsimne driv nez dodavatel), protoze malokdy se narazi na
misto kde by to vadilo z hlediska rychlosti. Program je totiz ve
vetsine realnych pripadu bud s obrovskou rezervou dostatecne rychly,
ze unese jeste spoustu dalsich veci a nebo je naopak natolik pomaly,
ze se prislusna cast programu musi zgruntu predelat.

Jinak aby nedochazelo k mateni nezasvecenych: u Ady je tahle typova
kontrola jakasi drobna samozrejmost, jeji hlavni sila je v perfektne
propracovane synchronizaci tasku (threadu) a mezitaskove komunikaci a
v portabilite na urovni zdrojaku dotazene ad absurdum.

Ales Prochaska

> Zdravim, 

> Z reakci Marka Pasky na c/c++, programators, OS, konfetách vim, co je jeho
> hoby a co je jeho studijni/pracovni zajem. 
> Je to 100% informatik, ktery zije na velkých systémech, to dokazuje i veta,
> cituji: 
> "Pro kontrolu celočíselných mezí existuje v současných procesorech speciální
> instrukce, takže režie s tím spojená se u reálných aplikací počítá na
> jednotky procent."

> Ocividne zapomina na 99% ostatich procesoru mimo domenu velkych
> procesoru:(((. Ale to jen takovy my lehky zhodnoceni, kampak Marek Paska by
> chtel Adu pouzit:).

> Jinak to jedine, co mi prislo zajimave neni moznost nadefinovat nove
> typy(C++ umi, pretizeni operatoru taky) a nechat se Adou privazat k posteli
> a vydat se do raje sadomaso:), ale explicitne vymezit rozsah typu.

> Tohle muze byt z bezpesnostniho hlediska opravdu velke plus, jenze na druhe
> strane to znamena, ze kazda operace s takovym typem musi po skonceni byt
> otestovana, zda nahadou nedoslo k přetečeni.

> Jasne, da se rict, ono se to ted stejne dela, jenze je propastny rozdil,
> jestli mam hranice datoveho typu dane binarni soustavou a tim padem testuji,
> jestli pretekl bit nebo a nebo tam mam meze jako cisla, ktera nelze testovat
> jednim bitem.

> Co tim myslim? : 

> UINT16 0 - 65535 

> Nula je OK, kdyz pretece 65535->65536 tak se mi nastavi carry v CPU a je to
> OK. 

> UserTyp  0 - 32456 
> A jsem v haji, test po kazde operaci, pokud chci testovat, zda doslo k
> preteceni musim resit jako rozdil hranice a hodnoty v takovem typu.

> Vetsina procesoru bude mit nutne rychlejsi praci s typem, jehoz meze jsou
> 2^k-1 respektive -2^k ... 

> Tohle se asi tezko da udelat rychleji, prtoze musim dat procesoru radove
> vetsi mnozstvi informaci, aby tu typovou kontrolu program zpracoval, nez jen
> stare dobre testovani příznaku :(...


> S pozdravem, 
>                 Marek Pavlu 

> //  -----Original Message----- 
> //  From: hw-list-bounces@list.hw.cz
> [mailto:hw-list-bounces@list.hw.cz] On 
> //  Behalf Of Ales Prochaska 
> //  Sent: Sunday, March 05, 2006 7:12 PM 
> //  To: hw-list@list.hw.cz 
> //  Subject: Re: Jádro pudla (Cernobily svet) :-) 
> //  
> //  Uz zminovana Ada zadny "int" nema. Ma jen prostredky jak popsat 
> //  celociselny typ, napriklad 
> //      type int is range -32768..32767; 
> //  nebo jinak 
> //      type int is range -2**15 .. 2**15-1; 
> //  nebo 
> //      type int is digits 6; 
> //  jak je libo. A ted prekvapko: 
> //      var jablka is range -32768..32767; 
> //      var hrusky is range -32768..32767; 
> //  deklaruje dve _nekompatibilni_ promenne "jablka" a "hrusky". Ale 
> //  radeji se podivejte do clanku Marka Pasky 
> //  http://www.root.cz/clanky/bezpecne-programovani-ala-ada , tam je to
> //  velmi prehledne shrnute. 
> //  
> //  Ales Prochaska 
> //  
//  >> Zdravim, 
> //  
//  >> Jak? 
//  >> Prece kazdy jazyk v základech dostane do vinku něco na způsob 
> //  celociselnych 
//  >> cisel a jejich operace, takze datovy typ. Dobře, nektere jazyky to 
> //  nemai tak 
//  >> dobře videt, ze to je int, ale ty operace a typy tam na pozadi jsou. 
> //  
//  >> Jaky jazyk nema datovy typ int(alespon schovany), ze do nej nemuzu 
> //  vlozit 
//  >> zadne cislo??? Protože JEN TAKOVY JAZYK BY SPLNIL VASE POZADAVKY... 
> //  
//  >> S pozdravem, 
//  >>                 Marek Pavlu 
> //  
//  >> //  -----Original Message----- 
//  >> //  From: hw-list-bounces@list.hw.cz 
//  >> [mailto:hw-list-bounces@list.hw.cz] On 
//  >> //  Behalf Of Ales Prochaska 
//  >> //  Sent: Sunday, March 05, 2006 9:12 AM 
//  >> //  To: hw-list@list.hw.cz 
//  >> //  Subject: Re: Jádro pudla (Cernobily svet) :-) 
//  >> // 
//  >> //  Jazyk to muze ovlivnit tak, ze programator je primo nucen zvolit 
//  >> //  datovy typ (ruzny od int). Pokud i potom poplete jednotky neni to 
> //  uz 
//  >> //  omyl ale sabotaz ;-) 
//  >> // 
//  >> //  Ales Prochaska 
//  >> // 
//  //  >>> Zdravim, 
//  >> // 
//  //  >>> Asi takoto, v C si muzu udelat extra datovy typ 
//  >> // 
//  //  >>> typedef mile int; 
//  //  >>> typedef meter int; 
//  >> // 
//  //  >>> A k tomu sadu konverznich funkci a MAM TYPOVOU KONTROLU :))). 
//  >> // 
//  //  >>> V C++ si vytvorim objekty mCmile a mCmeter, kterym pretizim 
> //  operatory 
//  >> //  pro 
//  //  >>> +,-,*,/,^ a mam ještě lepsi typovou kontrolu nez v C. 
//  >> // 
//  >> // 
//  //  >>> Tohle není problem jazyka, ale toho, ze 95% programatoru to 
> //  neudela, 
//  >> //  ale 
//  //  >>> udela toto: 
//  >> // 
//  //  >>> int mile, meter; 
//  >> // 
//  //  >>> mile = 1235; 
//  //  >>> meter = 5; 
//  >> // 
//  //  >>> mile += k*meter; 
//  >> // 
//  //  >>> //a nebo toto: 
//  >> // 
//  //  >>> mile += meter; 
//  >> // 
//  //  >>> // a spadne jim sonda za 100 milionu USD na budku, 
//  //  >>> // protože ZAPOMNELI VYNASOBIT METR KONSTANTOU!!! 
//  //  >>> // :)))))))))))))))))... 
//  >> // 
//  //  >>> Tak to je a i Pascal se z toho posere, respektive ta sonda, kdyz 
//  >> //  programátor 
//  //  >>> je prase a promenne s ruznymi jednotkami v kritických systémech 
//  >> //  nazabali do 
//  //  >>> tridy nebo neobali datovy typ funkcemi, aby typova kontrola byla 
> //  i k 
//  >> //  necemu, 
//  //  >>> nez jen k hovnu:(. 
//  >> // 
//  >> // 
//  //  >>> S pozdravem, 
//  //  >>>                 Marek Pavlu 
//  >> // 
//  //  >>> //  -----Original Message----- 
//  //  >>> //  From: hw-list-bounces@list.hw.cz 
//  //  >>> [mailto:hw-list-bounces@list.hw.cz] On 
//  //  >>> //  Behalf Of Ales Prochaska 
//  //  >>> //  Sent: Saturday, March 04, 2006 11:16 PM 
//  //  >>> //  To: hw-list@list.hw.cz 
//  //  >>> //  Subject: Re: Jádro pudla (Cernobily svet) :-) 
//  //  >>> // 
//  //  >>> //  No, kdyz neni bordel v navrhu, ani si nevsimnete ze nejaka 
> //  typova 
//  //  >>> //  kontrola existuje. 
//  //  >>> // 
//  //  >>> //  Ales Prochaska 
//  //  >>> // 
//  //  //  >>>> At 22:54 4.3.2006, Ales Prochaska wrote: 
//  //  //  >>>>>To co predevsim nemivaji nekteri programatori radi je 
//  //  //  >>>>>silna typova kontrola kterou povazuji za zbytecnou 
> //  administrativu 
> //  
//  >> //  a 
//  //  //  >>>>>brzdu tvurciho rozletu. Pak tvurcim zpusobem interpertuji 
> //  hodnotu 
> //  
//  >> //  v 
//  //  //  >>>>>metrech jako udaj ve stopach a spadne jim Mars Polar Lander 
> //  :-) 
//  //  >>> // 
//  //  //  >>>> To neni problem typove kontroly (int je int i kdyz jsou to 
> //  hrusky 
> //  
//  >> //  nebo 
//  >> // 
//  //  //  >>>> jabka), ale bordelu v navrhu. 
//  //  >>> // 
//  //  //  >>>> (A to je presne problem tehle debaty: micha jabka a hrusky 
> //  :o) ) 
//  //  >>> // 
//  //  >>> // 
//  //  //  >>>> Jindroush (kubecj@avast.com) 
//  //  //  >>>> http://www.kostky.org - Pro fany stavebnic LEGO. 
//  //  >>> // 
//  //  //  >>>> _______________________________________________ 
//  //  //  >>>> HW-list mailing list  -  sponsored by www.HW.cz 
//  //  //  >>>> Hw-list@list.hw.cz 
//  //  //  >>>> http://list.hw.cz/mailman/listinfo/hw-list 
//  //  >>> // 
//  //  >>> // 
//  //  >>> //  _______________________________________________ 
//  //  >>> //  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): 0609-3, 03.03.2006 
//  //  >>> Testovano: 5.3.2006 7:55:40 
//  //  >>> avast! - copyright (c) 2000-2003 ALWIL Software. 
//  >> // 
//  >> // 
//  >> // 
//  //  >>> _______________________________________________ 
//  //  >>> HW-list mailing list  -  sponsored by www.HW.cz 
//  //  >>> Hw-list@list.hw.cz 
//  //  >>> http://list.hw.cz/mailman/listinfo/hw-list 
//  >> // 
//  >> // 
//  >> //  _______________________________________________ 
//  >> //  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): 0609-3, 03.03.2006 
//  >> Testovano: 5.3.2006 18:29:38 
//  >> avast! - copyright (c) 2000-2003 ALWIL Software. 
> //  
> //  
> //  
//  >> _______________________________________________ 
//  >> HW-list mailing list  -  sponsored by www.HW.cz 
//  >> Hw-list@list.hw.cz 
//  >> http://list.hw.cz/mailman/listinfo/hw-list 
> //  
> //  
> //  _______________________________________________ 
> //  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): 0609-3, 03.03.2006
> Testovano: 5.3.2006 21:48:24
> avast! - copyright (c) 2000-2003 ALWIL Software.



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





Další informace o konferenci Hw-list