From: Shark8 <onewingedshark@gmail.com>
Cc: mailbox@dmitry-kazakov.de
Subject: Re: Is this expected behavior or not
Date: Sat, 16 Mar 2013 09:55:53 -0700 (PDT)
Date: 2013-03-16T09:55:53-07:00 [thread overview]
Message-ID: <dfbf65c5-4f2e-4bb2-8b66-8db8ccb36d04@googlegroups.com> (raw)
In-Reply-To: <3p6p8k0yfly7.ctazdw7fc5so$.dlg@40tude.net>
On Saturday, March 16, 2013 1:41:27 AM UTC-6, Dmitry A. Kazakov wrote:
> On Fri, 15 Mar 2013 22:52:02 -0700 (PDT), Shark8 wrote:
>
> > True; but there could be some more interesting cases, say, for Ada 2020.
> > Something like:
> >
> > Abstract Type UNIVERSAL_STRING(Element : UNIVERSAL_CHARACTER) is
> > Array(Positive Range <>) of Element'Type;
>
> That would not work. I presume that here you want to create a root type for
> the class of string types and get at the members of the class (specific
> types like Wide_String) using a constraint. The problem is that string
> types must have different representations. The mechanism of constraining
> does not support.
Kind of, but not really; I'm thinking a sort of combination of generics and classes (in the general sense, not the OOP-sense): a way to specify a general behavior for a type-class. (i.e. having the ability to fully-specify things like attributes [not really shown in this example].)
> Thus either subtypes will have same representation or you
> won't have a class.
I'm thinking of it more in the terms of generic operations: independent of representation.
> Another problem is that string types must have more
> than one interface to deal with UTF-8 etc. An UTF-8 string is *both* an
> array of Wide_Wide_Character (= Unicode code points) and an array or
> sequence of Character (octets).
Ah, things get tricky here; Unicode is kind of a bear when you consider 'characters' because its codepoints aren't necessarily characters. An example would be the so-called "combining characters" which you can use for things like accents or ZALGO-text. (See these, respectively: http://en.wikipedia.org/wiki/Combining_character and, http://eeemo.net/ )
An important implication of this is that string search/manipulation becomes MUCH more complex. (`+a = à) means that you now have to search for multiple possibilities when your target is "à" -> the single-glyph code-point, or the combining-character points... and that's not taking into consideration whether you should consider a & à & (a+diacritic) to be the same or unique entities -- and casing is another combinatorial factor.
It would be a big mistake to assume character = code-point when dealing with Unicode.
> An UTF-16 string is an array of Wide_Wide_Character and an array of Wide_String.
UTF-16 is perhaps the worst possible encoding you can have for Unicode. With UTF-8 you don't need to worry about byte-order (everything's sequential) and with UTF-32 you don't need to decode the information (each element *IS* a code-point)... but UTF-16 offers neither of these.
------------------------------------------------------
I guess what I'm trying to say is that if we did it right, we could modify/expand the type-system so that something like UNIVERSAL_INTEGER could be made/explicitly-specified. (And if done extremely well, something like UNIVERSAL_STRING where perhaps the only thing differentiating the strings would be the 'instantiation' with their proper character-type* and manipulation-functions.) -- GNAT already has the 'Universal_Literal_String which works in either of the following lines:
Ada.Wide_Wide_Text_IO.Put_Line( Ada.Numerics.Pi'Universal_Literal_String )
Ada.Text_IO.Put_Line( Ada.Numerics.Pi'Universal_Literal_String )
In any case; I think it worth considering not just outward/downward expansion of the language, but inward/upward [unification] as well.
next prev parent reply other threads:[~2013-03-16 16:55 UTC|newest]
Thread overview: 242+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-11 19:42 Is this expected behavior or not Anh Vo
2013-03-11 20:01 ` Robert A Duff
2013-03-11 20:41 ` Shark8
2013-03-12 9:27 ` Dmitry A. Kazakov
2013-03-12 17:19 ` Robert A Duff
2013-03-12 17:42 ` Dmitry A. Kazakov
2013-03-12 18:04 ` Georg Bauhaus
2013-03-12 18:21 ` Dmitry A. Kazakov
2013-03-12 22:23 ` Georg Bauhaus
2013-03-13 8:49 ` Dmitry A. Kazakov
2013-03-13 9:45 ` J-P. Rosen
2013-03-13 13:31 ` Dmitry A. Kazakov
2013-03-13 14:34 ` Georg Bauhaus
2013-03-13 15:51 ` Dmitry A. Kazakov
2013-03-13 16:56 ` Jeffrey Carter
2013-03-13 17:09 ` Shark8
2013-03-13 17:32 ` Georg Bauhaus
2013-03-13 19:28 ` Dmitry A. Kazakov
2013-03-13 21:01 ` Randy Brukardt
2013-03-13 21:18 ` Dmitry A. Kazakov
2013-03-14 21:51 ` Randy Brukardt
2013-03-15 1:10 ` Adam Beneschan
2013-03-15 21:22 ` Randy Brukardt
2013-03-15 9:20 ` Dmitry A. Kazakov
2013-03-15 21:43 ` Randy Brukardt
2013-03-16 7:56 ` Dmitry A. Kazakov
2013-03-18 22:52 ` Randy Brukardt
2013-03-19 10:32 ` Dmitry A. Kazakov
2013-03-13 21:37 ` Georg Bauhaus
2013-03-14 11:18 ` Dmitry A. Kazakov
2013-03-14 12:37 ` Georg Bauhaus
2013-03-14 14:26 ` Dmitry A. Kazakov
2013-03-14 14:57 ` Georg Bauhaus
2013-03-14 15:51 ` Anh Vo
2013-03-14 16:21 ` J-P. Rosen
2013-03-14 17:29 ` Dmitry A. Kazakov
2013-03-14 18:16 ` Georg Bauhaus
2013-03-15 9:33 ` Dmitry A. Kazakov
2013-03-15 10:05 ` Georg Bauhaus
2013-03-15 11:15 ` Dmitry A. Kazakov
2013-03-14 22:12 ` Randy Brukardt
2013-03-15 9:46 ` Dmitry A. Kazakov
[not found] ` <ewe0v3ck1xdo$.e8rtuof27ke6$.dlg@40tude.net >
2013-03-15 21:17 ` Randy Brukardt
2013-03-16 7:51 ` Dmitry A. Kazakov
2013-03-16 9:30 ` Georg Bauhaus
2013-03-16 10:27 ` Dmitry A. Kazakov
2013-03-16 11:37 ` Georg Bauhaus
2013-03-16 13:04 ` Dmitry A. Kazakov
2013-03-16 16:10 ` Georg Bauhaus
2013-03-16 17:47 ` Dmitry A. Kazakov
2013-03-18 22:36 ` Randy Brukardt
2013-03-19 10:14 ` Dmitry A. Kazakov
2013-03-19 14:23 ` Georg Bauhaus
2013-03-19 15:13 ` Dmitry A. Kazakov
2013-03-19 16:52 ` Georg Bauhaus
2013-03-19 17:31 ` Dmitry A. Kazakov
2013-03-19 20:07 ` J-P. Rosen
2013-03-19 20:45 ` Dmitry A. Kazakov
2013-03-19 21:59 ` J-P. Rosen
2013-03-20 10:04 ` Dmitry A. Kazakov
2013-03-20 11:01 ` J-P. Rosen
2013-03-20 13:21 ` Dmitry A. Kazakov
2013-03-20 23:31 ` Randy Brukardt
2013-03-21 9:08 ` Dmitry A. Kazakov
2013-03-22 10:23 ` J-P. Rosen
2013-03-22 14:54 ` Dmitry A. Kazakov
2013-03-22 22:18 ` J-P. Rosen
2013-03-22 23:05 ` Shark8
2013-03-23 8:32 ` Dmitry A. Kazakov
2013-03-23 8:14 ` Dmitry A. Kazakov
2013-03-23 9:02 ` J-P. Rosen
2013-03-23 10:19 ` Dmitry A. Kazakov
2013-03-23 21:53 ` J-P. Rosen
2013-03-24 8:17 ` Dmitry A. Kazakov
2013-03-24 8:27 ` J-P. Rosen
2013-03-24 13:01 ` AdaMagica
2013-03-25 8:32 ` Dmitry A. Kazakov
2013-03-25 9:19 ` Georg Bauhaus
2013-03-25 10:08 ` Dmitry A. Kazakov
2013-03-19 21:37 ` Randy Brukardt
2013-03-20 8:48 ` Dmitry A. Kazakov
2013-03-14 16:22 ` Shark8
2013-03-14 17:08 ` Dmitry A. Kazakov
2013-03-13 22:34 ` Robert A Duff
2013-03-14 9:09 ` Dmitry A. Kazakov
2013-03-14 9:27 ` Georg Bauhaus
2013-03-13 17:05 ` Shark8
2013-03-13 17:45 ` Simon Wright
2013-03-13 19:37 ` Dmitry A. Kazakov
2013-03-13 19:54 ` Simon Wright
2013-03-13 20:54 ` Dmitry A. Kazakov
2013-03-13 21:28 ` Simon Wright
2013-03-14 9:16 ` Dmitry A. Kazakov
2013-03-14 16:42 ` Simon Wright
2013-03-14 17:05 ` Dmitry A. Kazakov
2013-03-13 22:12 ` Robert A Duff
2013-03-13 21:47 ` Jeffrey Carter
2013-03-13 21:09 ` Randy Brukardt
2013-03-13 22:48 ` Shark8
2013-03-14 22:01 ` Randy Brukardt
2013-03-15 3:27 ` Shark8
2013-03-15 21:05 ` Randy Brukardt
2013-03-15 21:46 ` Robert A Duff
2013-03-16 5:52 ` Shark8
2013-03-16 7:41 ` Dmitry A. Kazakov
2013-03-16 16:55 ` Shark8 [this message]
2013-03-16 17:36 ` Dmitry A. Kazakov
2013-03-16 21:51 ` Shark8
2013-03-17 9:36 ` Dmitry A. Kazakov
2013-03-18 23:13 ` Randy Brukardt
2013-03-19 9:12 ` Dmitry A. Kazakov
2013-03-19 21:19 ` Randy Brukardt
2013-03-20 11:21 ` Dmitry A. Kazakov
2013-03-20 23:57 ` Randy Brukardt
2013-03-21 10:30 ` Dmitry A. Kazakov
2013-03-21 23:27 ` Randy Brukardt
2013-03-22 16:07 ` Dmitry A. Kazakov
2013-03-22 20:10 ` Shark8
2013-03-22 20:51 ` Dmitry A. Kazakov
2013-03-22 23:34 ` Robert A Duff
2013-03-23 8:41 ` Dmitry A. Kazakov
2013-03-23 2:29 ` Nasser M. Abbasi
2013-03-23 2:33 ` Randy Brukardt
2013-03-23 4:44 ` Shark8
2013-03-25 22:24 ` Randy Brukardt
2013-03-26 1:15 ` Shark8
2013-03-23 9:53 ` Dmitry A. Kazakov
2013-03-25 22:58 ` Randy Brukardt
2013-03-26 10:52 ` Dmitry A. Kazakov
2013-03-26 21:31 ` Randy Brukardt
2013-03-27 9:37 ` Dmitry A. Kazakov
2013-03-27 19:42 ` Randy Brukardt
2013-03-28 13:50 ` Dmitry A. Kazakov
2013-03-28 21:55 ` Randy Brukardt
2013-03-29 12:26 ` Dmitry A. Kazakov
2013-03-30 0:49 ` Randy Brukardt
2013-03-30 2:55 ` Shark8
2013-04-01 23:43 ` Messaging question [was: Is this expected behavior or not] Randy Brukardt
2013-03-30 9:20 ` Is this expected behavior or not Dmitry A. Kazakov
2013-04-02 0:40 ` Randy Brukardt
2013-04-02 8:44 ` Dmitry A. Kazakov
2013-04-02 21:54 ` Randy Brukardt
2013-04-03 8:54 ` Dmitry A. Kazakov
2013-04-04 0:04 ` Randy Brukardt
2013-04-04 8:26 ` Dmitry A. Kazakov
2013-04-04 20:31 ` Randy Brukardt
2013-04-05 9:57 ` Dmitry A. Kazakov
2013-04-05 12:45 ` Stefan.Lucks
2013-04-05 12:49 ` Stefan.Lucks
2013-04-05 14:19 ` Dmitry A. Kazakov
2013-04-05 14:44 ` Stefan.Lucks
2013-04-05 16:11 ` Dmitry A. Kazakov
2013-04-05 19:02 ` Stefan.Lucks
2013-04-05 19:34 ` Dmitry A. Kazakov
2013-04-05 20:23 ` Stefan.Lucks
2013-04-06 7:39 ` Dmitry A. Kazakov
2013-04-07 18:10 ` Stefan.Lucks
2013-04-07 18:23 ` Dmitry A. Kazakov
2013-04-05 20:38 ` Stefan.Lucks
2013-04-05 14:36 ` Dmitry A. Kazakov
2013-04-05 15:16 ` Stefan.Lucks
2013-04-05 16:29 ` Dmitry A. Kazakov
2013-04-05 19:55 ` Stefan.Lucks
2013-04-06 1:45 ` Randy Brukardt
2013-04-06 7:54 ` Dmitry A. Kazakov
2013-04-07 18:17 ` Stefan.Lucks
2013-04-07 18:28 ` Dmitry A. Kazakov
2013-04-08 7:48 ` Stefan.Lucks
2013-04-08 8:59 ` Dmitry A. Kazakov
2013-04-08 15:35 ` Stefan.Lucks
2013-04-08 19:08 ` Dmitry A. Kazakov
2013-04-09 7:18 ` Stefan.Lucks
2013-04-09 8:17 ` Dmitry A. Kazakov
2013-04-09 15:20 ` Stefan.Lucks
2013-04-09 16:15 ` Dmitry A. Kazakov
2013-04-09 22:59 ` Randy Brukardt
2013-04-09 22:57 ` Randy Brukardt
2013-04-10 7:30 ` Dmitry A. Kazakov
2013-04-10 8:00 ` Root_String'Class? (Was: Is this expected behavior or not) Jacob Sparre Andersen
2013-04-10 21:48 ` Randy Brukardt
2013-04-09 22:53 ` Is this expected behavior or not Randy Brukardt
2013-04-09 22:45 ` Randy Brukardt
2013-04-10 7:37 ` Dmitry A. Kazakov
2013-04-10 22:15 ` Randy Brukardt
2013-04-11 7:33 ` Dmitry A. Kazakov
2013-04-11 22:37 ` Randy Brukardt
2013-04-12 7:47 ` Dmitry A. Kazakov
2013-04-13 0:26 ` Randy Brukardt
2013-04-13 0:35 ` Randy Brukardt
2013-04-13 7:07 ` Dmitry A. Kazakov
2013-04-06 1:38 ` Randy Brukardt
2013-04-06 1:20 ` Randy Brukardt
2013-04-06 5:20 ` Usefulness of OOP (was Is this expected behavior or not) J-P. Rosen
2013-04-06 10:31 ` Dmitry A. Kazakov
2013-04-06 18:43 ` Georg Bauhaus
2013-04-07 7:00 ` Is this expected behavior or not Dmitry A. Kazakov
2013-04-09 23:24 ` Randy Brukardt
2013-04-10 8:20 ` Dmitry A. Kazakov
2013-04-10 22:07 ` Randy Brukardt
2013-04-11 7:59 ` Dmitry A. Kazakov
2013-04-11 11:10 ` Georg Bauhaus
2013-04-11 13:49 ` J-P. Rosen
2013-04-11 15:07 ` Dmitry A. Kazakov
2013-04-12 4:39 ` J-P. Rosen
2013-04-12 8:00 ` Dmitry A. Kazakov
2013-04-12 9:09 ` J-P. Rosen
2013-04-12 17:00 ` Jeffrey Carter
2013-04-11 23:02 ` Randy Brukardt
2013-04-12 8:17 ` Dmitry A. Kazakov
2013-04-12 9:41 ` Georg Bauhaus
2013-04-12 11:46 ` Dmitry A. Kazakov
2013-04-13 17:38 ` Georg Bauhaus
2013-04-13 0:22 ` Randy Brukardt
2013-04-13 6:49 ` Dmitry A. Kazakov
2013-04-16 1:41 ` Randy Brukardt
2013-04-16 8:03 ` Dmitry A. Kazakov
2013-04-16 22:57 ` Randy Brukardt
2013-04-17 7:18 ` Dmitry A. Kazakov
2013-04-17 9:23 ` Georg Bauhaus
2013-04-17 9:57 ` Dmitry A. Kazakov
2013-04-17 19:38 ` Georg Bauhaus
2013-04-18 11:52 ` Dmitry A. Kazakov
2013-04-19 2:16 ` Randy Brukardt
2013-04-19 7:39 ` Dmitry A. Kazakov
2013-04-19 9:07 ` Georg Bauhaus
2013-04-19 9:11 ` Georg Bauhaus
2013-04-19 12:09 ` Dmitry A. Kazakov
2013-04-19 22:14 ` Randy Brukardt
2013-04-20 6:39 ` Dmitry A. Kazakov
2013-03-19 0:38 ` Shark8
2013-03-19 8:53 ` Dmitry A. Kazakov
2013-03-16 20:45 ` Robert A Duff
2013-03-16 9:29 ` Georg Bauhaus
2013-03-16 20:49 ` Robert A Duff
2013-03-14 22:41 ` Florian Weimer
2013-03-12 23:21 ` Randy Brukardt
2013-03-12 23:14 ` Randy Brukardt
2013-03-11 20:43 ` Anh Vo
2013-03-11 22:32 ` Randy Brukardt
2013-03-11 22:38 ` Robert A Duff
2013-03-12 9:17 ` Dmitry A. Kazakov
2013-03-13 0:10 ` Shark8
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox