comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Copy vector in Ada
Date: Mon, 5 Nov 2012 09:31:41 +0100
Date: 2012-11-05T09:31:41+01:00	[thread overview]
Message-ID: <uti0vhlidr0b$.4tkmig1870rr$.dlg@40tude.net> (raw)
In-Reply-To: 2164bc1a-a841-46ed-bfef-4ddcae4d64f7@googlegroups.com

On Sun, 4 Nov 2012 12:49:13 -0800 (PST), Maciej Sobczak wrote:

> W dniu niedziela, 4 listopada 2012 08:25:11 UTC+1 u�ytkownik Dmitry A. Kazakov napisa�:
> 
>>> No and I don't even intend to do it. Mixing assignment with polymorphism
>>> is evil and cannot be implemented reasonably anyway.
>> 
>> How so? Assignment is clearly a polymorphic operation.
> 
> It is not "clearly" to me. Assigning Rectangles to Triangles does not make any sense.

Does the example presume that both are in the same hierarchy of types, e.g.
"shape"? Whether assignment makes sense depends on that.
 
>>> either - assignment cannot be reasonably implemented apart from the case
>>> of matching tags,
>> 
>> You mean an implementation generated by the compiler? In such cases the
>> programmer must be required to override.
> 
> I also mean what the programmer might possibly provide - Rectanges vs. Triangles and so on.

He will replace a triangular shape with a rectangular one.

>>> (and that's OK as the concept is broken anyway).
>> 
>> Concept of what? In C++ you can assign int to double.
> 
> No, you cannot. You can assign double to double and there is an implicit
> conversion from int to double.

This is an implementation detail.

> Both are also numbers with quite
> straightforward interpretation so these tricks are meaningful. This is
> nowhere similar to Rectangles vs. Triangles and stuff.

Both are straightforward geometric shapes. It is not the language business
to judge about the problem space.

>> In Ada you can assign Positive to Integer.
> 
> It is the same type.

They are NOT *semantically* same:

   X : Positive := -1;
   Y : Integer := -1;

>> Is this broken?
> 
> Rectangles vs. Triangles is broken.

What is broken? You make some assumptions about the semantics of
assignment, which may or may not hold. Again, it is not the language
business. [*] It is all up to programmer to decide if he wanted assignment
defined on {Rectangle, Triangle}**2. Depending on that, he will chose an
appropriate mapping of the desired semantics onto the language types. In
this order.

--------------------
* FSA, type systems etc are far too weak to capture complex structures like
real numbers or geometric shapes. This is why the programmer always knows
better. There cannot be a universal computer model of either.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2012-11-08  5:40 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-31 16:26 Copy vector in Ada katolsster
2012-10-31 16:37 ` Jeffrey Carter
2012-11-02 11:10   ` katarina.l.olsson
2012-11-02 11:19     ` Yannick Duchêne (Hibou57)
2012-11-02 22:03       ` Maciej Sobczak
2012-11-02 23:45         ` Yannick Duchêne (Hibou57)
2012-11-03  0:15           ` Zhu, Qun-Ying
2012-11-03  3:47             ` Peter C. Chapin
2012-11-03 15:47               ` Yannick Duchêne (Hibou57)
2012-11-03 14:34           ` Maciej Sobczak
2012-11-03 15:54             ` Yannick Duchêne (Hibou57)
2012-11-03 16:03               ` Yannick Duchêne (Hibou57)
2012-11-03 21:57                 ` Maciej Sobczak
2012-11-04  7:25                   ` Dmitry A. Kazakov
2012-11-04 20:49                     ` Maciej Sobczak
2012-11-05  8:31                       ` Dmitry A. Kazakov [this message]
2012-11-05  8:50                         ` Maciej Sobczak
2012-11-05  9:20                           ` Dmitry A. Kazakov
2012-11-05 17:22                             ` Yannick Duchêne (Hibou57)
2012-11-05 18:42                               ` Dmitry A. Kazakov
2012-11-05 20:18                                 ` Yannick Duchêne (Hibou57)
2012-11-05 20:33                                   ` Dmitry A. Kazakov
2012-11-05 21:34                                     ` Yannick Duchêne (Hibou57)
2012-11-05 23:45                                       ` Shark8
2012-11-05 23:58                                         ` Hibou57 (Yannick Duchêne)
2012-11-06  2:17                                           ` Yannick Duchêne (Hibou57)
2012-11-06  7:28                                             ` Types vs Subtypes (was: Re: Copy vector in Ada) Simon Wright
2012-11-06 11:33                                             ` Copy vector in Ada Georg Bauhaus
2012-11-06 19:47                                               ` Yannick Duchêne (Hibou57)
2012-11-06 19:53                                                 ` Yannick Duchêne (Hibou57)
2012-11-07 12:03                                                 ` Georg Bauhaus
2012-11-07 13:09                                                   ` Dmitry A. Kazakov
2012-11-07 16:17                                                     ` Yannick Duchêne (Hibou57)
2012-11-07 16:11                                                   ` Yannick Duchêne (Hibou57)
2012-11-07 18:06                                                     ` Georg Bauhaus
2012-11-07 20:04                                                       ` Dmitry A. Kazakov
2012-11-07 21:00                                                         ` Yannick Duchêne (Hibou57)
2012-11-08  8:31                                                           ` Dmitry A. Kazakov
2012-11-08  9:58                                                         ` Georg Bauhaus
2012-11-08 14:28                                                           ` Dmitry A. Kazakov
2012-11-05 16:30                         ` Yannick Duchêne (Hibou57)
2012-11-02 14:10     ` Georg Bauhaus
2012-11-02 15:28       ` Shark8
2012-11-09  6:22         ` Randy Brukardt
2012-11-19 22:37 ` Katarina Olsson
2012-11-19 22:39 ` Katarina Olsson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox