RE: Jádro pudla (Cernobily svet) :-)
Marek Pavlu
pavlu@HWserver.cz
Neděle Březen 5 21:48:24 CET 2006
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.
Další informace o konferenci Hw-list