comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: State of the compiler market
Date: Fri, 30 Jun 2017 10:10:01 +0200
Date: 2017-06-30T10:10:01+02:00	[thread overview]
Message-ID: <oj510o$1e0d$1@gioia.aioe.org> (raw)
In-Reply-To: oj4unh$9nt$1@dont-email.me

On 30/06/2017 09:34, J-P. Rosen wrote:
> Le 30/06/2017 à 09:18, Dmitry A. Kazakov a écrit :
>> Encoding must be a part of the string type. This is essential for
>> dealing with OS/API bindings. E.g. an UTF-8 string must provide a view
>> of an array of octets (for OS/API calls) and a view of an array of code
>> points (for the application). The second view must constitute a class.
>> We don't need explicit conversions between string types.
>>
> This is your opinion. I don't see why it must constitute a class.

Because there is no reason to have exponentially exploding number of 
To_XXX_String functions. Semantically all strings are chains of code points.

> I tend
> to use the simplest structure available for my need, hence avoid tagged
> types unless they are the most appropriate structure.

A type need not to be tagged in order to have a class. Different string 
types have different representations anyway. There is no sense to put a 
tag in there, that will not make view conversion work. The tag will be 
in the String'Class only.

> Moreover, encodings are useful only at the boundary between the
> application and the external world, internal processing should use the
> internal form, i.e. characters (characters are the abstract notion to
> which a code point is associated). Therefore, conversions at the
> boundary seem quite appropriate

True, however for performance reasons many applications tend to deal 
with UTF-8 octets rather than with code points. I doubt anybody uses 
characters at all.

>> But the point is that the language should not have string types at all.
>> The type system should be capable to define things as described above at
>> the library level.
> Then you should be happy. There is absolutely no magic about String in
> Ada (as opposed to most other languages), and string types ARE simply
> defined in a package (namely Standard). They are known to the compiler
> only for attributes that return a string type.

The magic is called array. You have to use magic spell "type ... is 
array (...) of ..." with severe limitation coming with.

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


  reply	other threads:[~2017-06-30  8:10 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-23  0:26 State of the compiler market john
2017-02-23  3:17 ` Luke A. Guest
2017-02-23  5:16 ` Per Sandberg
2017-02-23  6:01 ` gautier_niouzes
2017-02-23  9:01   ` joakimds
2017-02-23 18:03 ` Jeffrey R. Carter
2017-02-24  9:23   ` Per Sandberg
2017-02-24  9:32     ` Paul Rubin
2017-02-23 21:22 ` Randy Brukardt
2017-02-24 16:36 ` john
2017-02-25 10:48 ` Ingo M.
2017-02-25 11:07   ` Jeffrey R. Carter
2017-02-25 14:25     ` Ingo M.
2017-02-25 17:30       ` Jeffrey R. Carter
2017-02-25 11:29   ` Dmitry A. Kazakov
2017-02-25 13:46     ` G.B.
2017-02-25 14:46     ` Ingo M.
2017-02-25 15:21       ` Dmitry A. Kazakov
2017-02-25 15:49         ` Ingo M.
2017-02-25 16:11           ` Dmitry A. Kazakov
2017-02-25 19:03       ` G.B.
2017-02-26  0:11         ` Luke A. Guest
2017-02-26  8:44           ` Dmitry A. Kazakov
2017-02-26  0:20 ` Luke A. Guest
2017-02-26  2:26   ` Randy Brukardt
2017-02-26  9:14     ` Paul Rubin
2017-02-26 17:35       ` antispam
2017-02-26 22:32         ` Paul Rubin
2017-02-27  2:38           ` antispam
2017-02-27  2:54             ` Paul Rubin
2017-02-27  3:54               ` antispam
2017-02-28 20:51       ` Randy Brukardt
2017-02-28 21:29         ` Luke A. Guest
2017-03-01  8:43           ` reinkor
2017-03-01 14:20             ` Adacore and licensing (again), was: " Simon Clubley
2017-03-01 17:02               ` reinert
2017-03-01 18:34                 ` Simon Clubley
2017-03-05 19:38                   ` Robert Eachus
2017-03-05 23:17                     ` Luke A. Guest
2017-03-06  1:12                       ` Dennis Lee Bieber
2017-03-06  2:56                       ` Robert Eachus
2017-03-07 20:47                     ` Simon Clubley
2017-03-08  0:23                       ` Lucretia
2017-03-08 10:26                         ` Simon Wright
2017-03-01 14:28             ` volkert
2017-03-01 15:01               ` J-P. Rosen
2017-03-01 16:05               ` G.B.
2017-03-06 23:15               ` john
2017-03-07 16:42                 ` Dennis Lee Bieber
2017-06-27  8:29             ` Jacob Sparre Andersen
2017-06-28 10:40               ` Lucretia
2017-06-28 11:44                 ` Dmitry A. Kazakov
2017-06-28 13:54                   ` Luke A. Guest
2017-06-28 14:16                     ` Dmitry A. Kazakov
2017-06-29  1:26                 ` Shark8
2017-06-29  5:46                   ` gautier_niouzes
2017-06-29 11:36                     ` Lucretia
2017-06-29 12:23                       ` gautier_niouzes
2017-06-29 12:50                         ` Dmitry A. Kazakov
2017-06-29 14:47                         ` Lucretia
2017-06-29 17:23                           ` G.B.
2017-06-29 18:27                             ` Jacob Sparre Andersen
2017-06-29 19:04                               ` Lucretia
2017-06-29 19:01                             ` Lucretia
2017-06-30  5:27                               ` J-P. Rosen
2017-06-30  7:18                                 ` Dmitry A. Kazakov
2017-06-30  7:34                                   ` J-P. Rosen
2017-06-30  8:10                                     ` Dmitry A. Kazakov [this message]
2017-06-30 10:10                                       ` J-P. Rosen
2017-06-30 10:53                                         ` Dmitry A. Kazakov
2017-06-30  7:51                                   ` Jacob Sparre Andersen
2017-06-30  8:20                                     ` Dmitry A. Kazakov
2017-06-30 11:11                                 ` Lucretia
2017-06-30 11:23                                   ` Lucretia
2017-06-29 12:57                       ` Petter Fryklund
2017-06-30 13:57                       ` Alejandro R. Mosteo
2017-06-30 14:19                         ` Lucretia
2017-07-01  8:06                           ` darkestkhan
2017-07-01  9:17                             ` Dmitry A. Kazakov
2017-02-26 10:14     ` Dirk Craeynest
2017-02-27  9:56       ` Ivan Levashev
2017-06-27  8:00 ` Jacob Sparre Andersen
replies disabled

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