in [OOP]

Prev: Informatics 2010: 1st call extension - 30 April 2010
Next: The Eiffel Compiler tecomp version 0.22 released
From: S Perryman on 13 Apr 2010 14:39 raould wrote: >>On Apr 12, 12:20 pm, "Dmitry A. Kazakov" <mail... (a)dmitry-kazakov.de>>>wrote: >>>From a mathematical point of view it is a fruitless approach, just because >>>reasoning from data is necessarily limited by the computational power etc. >>>OO tells, OK we won't even try, it is irrelevant what is inside, so long >>>the behavior is fine. Integer is something you can sum, subtract, multiply, >>>divide etc. If you can do this you have an integer. The behavior >>>exhaustively defines the thing. > tho, there is more to it since you can sum, subtract, multiply, divide > etc. not just integers. Nothing more at all. It merely means the same concepts are applicable to other entities. More significantly, those other entities (complex numbers, matrices etc) *define different behaviour* for the same concepts. So behaviour is the key part of defining entities. Regards, Steven Perryman
From: raould on 13 Apr 2010 17:18 > More significantly, those other entities (complex numbers, matrices etc) > *define different behaviour* for the same concepts. while i agree that behaviour is important, i think that to distinguish between integer division and floating-point division you have to start to talk about the data itself. especially so for floating-point vs. actual mathematical reals. it might help me a lot to work through a concrete example. would you be able and so kind as to flesh out what you have in mind for the behaviour spec for division for integers vs. floating point vs. reals? sincerely.
From: Dmitry A. Kazakov on 13 Apr 2010 18:11 On Tue, 13 Apr 2010 14:18:15 -0700 (PDT), raould wrote: >> More significantly, those other entities (complex numbers, matrices etc) >> *define different behaviour* for the same concepts. > > while i agree that behaviour is important, i think that to distinguish > between integer division and floating-point division you have to start > to talk about the data itself. especially so for floating-point vs. > actual mathematical reals. it might help me a lot to work through a > concrete example. would you be able and so kind as to flesh out what > you have in mind for the behaviour spec for division for integers vs. > floating point vs. reals? Behavior is more than existence of an operation named /. It also includes propositions like: forall x in R, y/=0 in R exists z in R such that z=x/y and z*y=x. Integer division lacks this property and thus its behavior is different. A mathematician would talk about different structures e.g. groups, lattices, rings, fields. Elements of these structures have different behavior. Internals of the elements, which would be an equivalent of "data", is not even considered, it is uninteresting. Because whatever method you use to construct integers, their behavior remains same. Otherwise, it is not integers. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de
From: S Perryman on 14 Apr 2010 05:31 Dmitry A. Kazakov wrote: > On Tue, 13 Apr 2010 14:18:15 -0700 (PDT), raould wrote: >>while i agree that behaviour is important, i think that to distinguish >>between integer division and floating-point division you have to start >>to talk about the data itself. especially so for floating-point vs. >>actual mathematical reals. it might help me a lot to work through a >>concrete example. would you be able and so kind as to flesh out what >>you have in mind for the behaviour spec for division for integers vs. >>floating point vs. reals? > Behavior is more than existence of an operation named /. It also includes > propositions like: > forall x in R, y/=0 in R exists z in R such that z=x/y and z*y=x. > Integer division lacks this property and thus its behavior is different. Indeed. > A mathematician would talk about different structures e.g. groups, lattices, > rings, fields. Elements of these structures have different behavior. > Internals of the elements, which would be an equivalent of "data", is not > even considered, it is uninteresting. Actually, there is a "data" aspect that is abstract. An integer is a sign, and a sequence of digits. A real is also the above, but with an 'index' that denotes the start of the suffix of the sequence that is the fractional part. So -12345 is the abstraction ( - , [ 5, 4, 3, 2, 1] ) . And -123.45 is the abstraction ( - , [5, 4, 3, 2, 1 ] , 2) . All this means is that I can produce values (create instances of the abstraction) of integers and reals. But nothing more (useful) . Regards, Steven Perryman
From: Dmitry A. Kazakov on 14 Apr 2010 05:55
On Wed, 14 Apr 2010 10:31:35 +0100, S Perryman wrote: > Dmitry A. Kazakov wrote: > >> On Tue, 13 Apr 2010 14:18:15 -0700 (PDT), raould wrote: > >> A mathematician would talk about different structures e.g. groups, lattices, >> rings, fields. Elements of these structures have different behavior. >> Internals of the elements, which would be an equivalent of "data", is not >> even considered, it is uninteresting. > > Actually, there is a "data" aspect that is abstract. > An integer is a sign, and a sequence of digits. Yes, it is a part of integer behavior that a unique finite sequence of decimal digits can be obtained from an integer. Another frequently used sequence is the sequence of sets: 0 = � 1 = {�} 2 = {{�}} 3 = {{{�}}} etc. > A real is also the above, but with an 'index' that denotes the start of the > suffix of the sequence that is the fractional part. > > So -12345 is the abstraction ( - , [ 5, 4, 3, 2, 1] ) . > And -123.45 is the abstraction ( - , [5, 4, 3, 2, 1 ] , 2) . Another difference is that the sequence can be infinite + not unique, e.g. 1 = 1.0 = 1.00 = 0.9(9) etc. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de |