DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Programiranje (http://www.devprotalk.com/forumdisplay.php?f=23)
-   -   objektno orjentisano programiranje (http://www.devprotalk.com/showthread.php?t=7205)

Dragi Tata 05. 03. 2009. 18:47

Citat:

Originalno napisao kaizen (Napišite 67070)
U tome je i moja poenta zašto "krivim" tip podatka. Kada je broj objekat, čuvanje vrednosti je unutrašnja stvar objekta pa može biti realizovana na razne načine.

Kapiram. Mada, ako imaš BigNum tip, tvoj primer opet može da radi lepo i sa "primitivnim" brojevima kao argumentima - glavno je da postoji overload operatora za množenje koji vraća BigNum objekat. Doduše, onda se problem javlja sa izrazima tipa:

Kôd:

int rezultat = 10000000 * 10000000;
Još jedan tipičan primer Lisp vs Fortran filozofije :)

Inače, da malo zezam Dinketa, u assembleru je trivijalno rešiti ovaj problem - samo proveriš overflow flag posle svake aritmetičke operacije :D

kaizen 05. 03. 2009. 18:50

Citat:

Originalno napisao degojs (Napišite 67072)
Kada izađe iz okvira tih tipova podataka, slažem se da brojevi kao objekti imaju prednost.

:1090: :1029:

degojs 05. 03. 2009. 18:52

:)

Da zaključimo, prelazimo na brojeve kao objekte jer na sveto NIKAD može da se desi da izađemo iz okvira long ili double tipa. Kog datuma je to crveno slovo u kalendaru? :)

Dragi Tata 05. 03. 2009. 18:57

Citat:

Originalno napisao degojs (Napišite 67075)
:)

Da zaključimo, prelazimo na brojeve kao objekte jer na sveto NIKAD može da se desi da izađemo iz okvira long ili double tipa.

Nemoj da si previše siguran. Integer overflow je ozbiljan sigurnosni problem. Vidi recimo ovde: http://www.phrack.org/issues.html?is...&id=10#article

Ja često koristim ovo: http://www.codeplex.com/SafeInt da izbegnem integer overflow.

degojs 05. 03. 2009. 19:02

^Ako bi po difoltu koristio long (64), koliko često bi imao taj problem?

BTW, prvi link nešto neće.

degojs 05. 03. 2009. 19:07

E da, Nemanja, imam još jedno pitanje za tebe: jesi li ti ono pre radio nešto vezano baš za intenzivan rad sa (velikim?) brojevima? Čini mi se, ako si ti bio u pitanju, da reče da se tu uopšte ne koriste danas main-stream jezici (OOP ili ne), već Fortran?

Dragi Tata 05. 03. 2009. 19:10

Citat:

Originalno napisao degojs (Napišite 67077)
^Ako bi po difoltu koristio long (64), koliko često bi imao taj problem?

BTW, prvi link nešto neće.

Pitanje "koliko često" se ne postavlja kod sigurnosnih propusta. Ako "evil-doer" provali da imaš overflow problem on će lako da ti prebaci 64-bitni long.

Meni link radi. Uostalom, samo udari search za "Integer Overflow" i naći ćeš puno interesantnih stvari.

degojs 05. 03. 2009. 19:12

Citat:

Pitanje "koliko često" se ne postavlja kod sigurnosnih propusta. Ako "evil-doer" provali da imaš overflow problem on će lako da ti prebaci 64-bitni long.
Zašto bih ja imao overflow problem, mislim, nije li to moguće sprečiti nekakvom proverom?

Odnosno, hoću da pitam - da li ti je u praksi zaista potrebno da imaš tačan rezultat van opsega long tipa? Ako nemaš potrebu, onda to ne vidim kao problem.

Dragi Tata 05. 03. 2009. 19:12

Citat:

Originalno napisao degojs (Napišite 67078)
E da, Nemanja, imam još jedno pitanje za tebe: jesi li ti ono pre radio nešto vezano baš za intenzivan rad sa (velikim?) brojevima? Čini mi se, ako si ti bio u pitanju, da reče da se tu uopšte ne koriste danas main-stream jezici (OOP ili ne), već Fortran?

Jeste, za numeričke kalkulacije je Fortran ne tata nego deda :) Kod takvih primena OOP slabo prolazi.

degojs 05. 03. 2009. 19:17

^ kaizen, eat that :D

:1090: :1029:


Vreme je GMT +2. Trenutno vreme je 21:11.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.