From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Practicalities of Ada for app development
Date: Tue, 12 Jun 2012 09:55:36 +0200
Date: 2012-06-12T09:55:36+02:00 [thread overview]
Message-ID: <uun3cl2g15d3$.18fa2fjhdq4y1.dlg@40tude.net> (raw)
In-Reply-To: 4fd65a15$0$9507$9b4e6d93@newsspool1.arcor-online.net
On Mon, 11 Jun 2012 22:50:33 +0200, Georg Bauhaus wrote:
> Reason: numeric literals typically mean a number of some "arithmetic"
> type.
No, a numeric literal means what it tells "a number."
> U+number is similar to the explicit checking of units (and possibly
> values) in
>
> Some_Time_Object := 45 * Seconds;
>
> presented in Barnes's book.
Technically Barnes is not quite right. A correct expression should be:
Some_Duration_Object := 45.0 * s;
1. 45.0 is floating-point;
2. You cannot multiply time, you do durations (time intervals);
3. "s" or "second" is the proper name of the unit.
http://www.dmitry-kazakov.de/ada/units.htm
> When using U+number, the checks are performed by one subprogram ("+").
Code points are numbers, not dimensioned numbers. Dimensioned numbers form
a structure different from one of the code points. You are confusing type
and dimension. Dimension is one characteristic of some types, e.g. a
constraint, but not every type is dimensioned.
> A different design might (but need not) require checking in many places.
> U+number feels a bit like using a "constructor" for literals.
Literal per definition cannot be a constructor. Its name reveals that:
literal is denotes a value, e.g. a number, "literally." Furthermore,
literal is a syntactic notion (expression term), while constructors are
related to the program semantics (create objects from raw memory).
Anyway, the point stands: in a properly typed languages you need no special
forms of literals. I guess that U+n stems from C-ish nL, nU etc. These are
syntactic inventions necessary in C because the language is incapable to
resolve ambiguity using the result type. C is bottom up. Ada is not bottom
up. You can overload numeric literals in almost any context in Ada. So you
don't need silly tricks like U+n.
>> BTW, as practice shows, code points are used rarely and almost always as an
>> argument for conversion to a UTF-8 string.
>
> OK. I imagine, though, that most US programming styles will suggest not to
> write non-7-bit source text. When I need a UTF-8 encoded literal PI, wouldn't
> I then need to write something like the following?
>
> PI : constant UTF_8_String :=
> Character'Val (16#CF#)
> & Character'Val (16#80#)
> & Character'Val (16#0A#);
No. The proper way to do this is:
UTF8_Pi : constant String := Image (16#0C30#);
http://www.dmitry-kazakov.de/ada/strings_edit.htm#Strings_Edit.UTF8
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2012-06-14 18:59 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-08 20:48 Practicalities of Ada for app development wrp
2012-06-08 21:35 ` Jeffrey Carter
2012-06-09 0:40 ` Adam Beneschan
2012-06-09 6:38 ` Jeffrey Carter
2012-06-21 17:14 ` Randy Brukardt
2012-06-21 18:16 ` Adam Beneschan
2012-06-21 19:18 ` J-P. Rosen
2012-06-21 20:30 ` Adam Beneschan
2012-06-21 21:09 ` Randy Brukardt
2012-06-22 4:59 ` Simon Wright
2012-06-22 5:32 ` Tero Koskinen
2012-06-22 19:51 ` Randy Brukardt
2012-06-21 21:15 ` J-P. Rosen
2012-06-22 10:43 ` Tero Koskinen
2012-06-21 21:00 ` Randy Brukardt
2012-06-21 21:18 ` J-P. Rosen
2012-06-22 19:55 ` Randy Brukardt
2012-06-23 6:43 ` J-P. Rosen
2012-06-09 4:30 ` BrianG
2012-06-09 7:11 ` Georg Bauhaus
2012-06-13 10:20 ` quiet_lad
2012-06-09 6:55 ` gautier_niouzes
2012-06-09 7:04 ` Georg Bauhaus
2012-06-09 9:25 ` Nomen Nescio
2012-06-09 9:36 ` Dmitry A. Kazakov
2012-06-10 3:46 ` Yannick Duchêne (Hibou57)
2012-06-12 20:10 ` i3text
2012-06-13 7:55 ` Dmitry A. Kazakov
2012-06-21 17:21 ` Randy Brukardt
2012-06-13 10:28 ` quiet_lad
2012-06-13 13:07 ` Dmitry A. Kazakov
2012-06-09 16:09 ` tmoran
2012-06-13 10:29 ` quiet_lad
2012-06-09 23:18 ` darkestkhan
2012-06-10 3:56 ` Yannick Duchêne (Hibou57)
2012-06-10 14:04 ` Dmitry A. Kazakov
2012-06-10 16:51 ` Yannick Duchêne (Hibou57)
2012-06-10 17:00 ` Dmitry A. Kazakov
2012-06-10 17:18 ` Yannick Duchêne (Hibou57)
2012-06-10 19:33 ` Dmitry A. Kazakov
2012-06-10 21:36 ` Nomen Nescio
2012-06-11 8:22 ` Dmitry A. Kazakov
2012-06-11 14:27 ` Georg Bauhaus
2012-06-11 14:43 ` Dmitry A. Kazakov
2012-06-11 16:19 ` Jacob Sparre Andersen
2012-06-11 18:38 ` Dmitry A. Kazakov
2012-06-11 17:14 ` Georg Bauhaus
2012-06-11 18:38 ` Dmitry A. Kazakov
2012-06-11 20:50 ` Georg Bauhaus
2012-06-11 21:43 ` Yannick Duchêne (Hibou57)
2012-06-12 7:55 ` Dmitry A. Kazakov [this message]
2012-06-12 9:48 ` Georg Bauhaus
2012-06-12 11:44 ` Dmitry A. Kazakov
2012-06-12 12:17 ` Georg Bauhaus
2012-06-12 12:18 ` Dmitry A. Kazakov
2012-06-11 18:29 ` Adam Beneschan
2012-06-11 19:16 ` Jeffrey Carter
2012-06-11 21:47 ` Yannick Duchêne (Hibou57)
2012-06-21 17:39 ` Randy Brukardt
2012-06-21 17:34 ` Randy Brukardt
2012-06-10 18:15 ` darkestkhan
2012-06-10 19:25 ` Dmitry A. Kazakov
2012-06-11 6:34 ` Jacob Sparre Andersen
2012-06-21 17:41 ` Randy Brukardt
2012-06-10 15:49 ` Shark8
2012-06-10 17:04 ` Yannick Duchêne (Hibou57)
2012-06-10 19:47 ` Dmitry A. Kazakov
2012-06-11 0:37 ` Nasser M. Abbasi
2012-06-11 8:37 ` Dmitry A. Kazakov
2012-06-12 6:24 ` Yannick Duchêne (Hibou57)
2012-06-12 7:59 ` Dmitry A. Kazakov
2012-06-13 10:35 ` quiet_lad
2012-06-13 13:09 ` Dmitry A. Kazakov
2012-06-14 3:21 ` quiet_lad
2012-06-14 7:58 ` Dmitry A. Kazakov
2012-06-14 8:39 ` Yannick Duchêne (Hibou57)
2012-06-14 9:26 ` Dmitry A. Kazakov
2012-06-21 17:51 ` Randy Brukardt
2012-06-11 0:00 ` Nasser M. Abbasi
2012-06-11 3:23 ` Jeffrey Carter
2012-06-11 21:10 ` Nomen Nescio
2012-06-11 21:55 ` Adam Beneschan
2012-06-12 8:07 ` Nomen Nescio
2012-06-12 15:28 ` Fritz Wuehler
2012-06-12 21:34 ` Nomen Nescio
2012-06-14 11:12 ` Nomen Nescio
2012-06-21 18:01 ` Randy Brukardt
2012-06-12 21:12 ` Nomen Nescio
2012-06-13 0:04 ` Adam Beneschan
2012-06-13 3:04 ` Shark8
2012-06-13 8:21 ` Dmitry A. Kazakov
2012-06-13 18:21 ` Shark8
2012-06-13 19:11 ` Dmitry A. Kazakov
2012-06-13 22:01 ` Yannick Duchêne (Hibou57)
2012-06-14 8:02 ` Dmitry A. Kazakov
2012-06-14 9:10 ` Yannick Duchêne (Hibou57)
2012-06-14 9:33 ` Dmitry A. Kazakov
2012-06-21 18:10 ` Randy Brukardt
2012-06-13 8:35 ` Yannick Duchêne (Hibou57)
2012-06-13 8:37 ` Georg Bauhaus
2012-06-13 10:14 ` Georg Bauhaus
2012-06-11 22:49 ` Jeffrey Carter
2012-06-13 10:31 ` quiet_lad
2012-06-13 12:57 ` Maciej Sobczak
2012-06-14 4:18 ` quiet_lad
2012-06-14 7:35 ` Ludovic Brenta
2012-06-14 10:02 ` Georg Bauhaus
2012-06-12 19:17 ` i3text
2012-06-12 19:52 ` Vadim Godunko
2012-06-27 18:39 ` Eryndlia Mavourneen
2012-06-27 18:46 ` Eryndlia Mavourneen
2012-06-28 13:23 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox