Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Ada > Re: Ada.Strings...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 40 of 109 Topic 5630 of 5831
Post > Topic >>

Re: Ada.Strings.Bounded

by Eric Hughes <eric.eh9@[EMAIL PROTECTED] > Apr 12, 2008 at 11:50 AM

On Apr 5, 3:43 am, Pascal Obry <pas...@[EMAIL PROTECTED]
> wrote:
>     What to do if we have Put_Line defined for String and
>     Unbounded_String? Which version gets called?

I know this answer is a bit heretical, but the answer I'd pick is
"either one".  Non-deterministic execution, if you'd like the
technical term.  Which in practice means that the compiler can pick a
deterministic path and just use that one.

The reason for this is that String and Unbounded_String are not
arbitrarily related in conception.  Ada, as presently constituted, is
unable of representing the details of this relation****p.  Users of
these types know what they're supposed to do, but the language does
not capture this.  A correct implementation of Put_Line should have
the property that the result of Put_Line on a String is the same as
the result of Put_Line on an Unbounded_String converted from the same
String.  This is the substance of algebraic specification.  So,
assuming (contrary to fact) such a specification, it should not matter
for correctness which version executed.

It would affect performance, true.  But it's performance about
symbolic manipulations (in the representation of the type) with
symbols that do not appear in the language itself.  Since these
symbols do not appear in the definition of String, it's the wrong path
to try to specify performance choices _at this level of abstraction_.
Some form of (expanded) representation clause is the right place to do
this.  Representation clauses are the natural way in Ada to specify
implementation choices.

Back the larger type issue, the ARM contains the types
universal_integer, universal_real, universal_fixed; these are listed
as predefined in ARM 3.2.1/10.  (Erratum: not all the predefined types
are listed here.)  I find it droll that the term "predefined" is not
defined.  It doesn't need to be, really, though.  "Everybody knows"
what numbers are supposed to do.  The axioms of arithmetic are well-
known, even if all the ordinary numbers of mathematics are
unimplementable on computers (only bounded-length representations are,
even if the bound is indefinite).

I believe many of the issues involving strings could be addressed by
introducing a predefined type universal_string.  And then the hard
part: making everything work out right.  _Inter alia_, all conversions
between string types would have to preserve the underlying
universal_string value.  I would raise Length_Error if a silent
truncation were to occur, under the theory that truncation is an
operation on values (as distinguished from objects and variables) that
should *never* be made silently.  And having universal_string should
eliminate most of those unary conversion operators to move between
different string types.

As not-too-much of an aside, this is why the ordinary Strings package
is fatally flawed, because its padding manipulations are just NOT how
universal_string values act.  Padding is a bastard child of an
implementation choice (fixed length array) and a discrimination
between characters that matter and the padding character, which
doesn't.  That package should really be named Padded_Strings.

Now, my real hope is that universal_string wouldn't need to be
predefined at all, but specified algebraically or logically within a
future version of Ada.  But for now the next step is to start with a
predefined type.

Eric
 




 109 Posts in Topic:
Untyped Ada?
"Phaedrus" <  2008-03-31 14:44:43 
Re: Untyped Ada?
"Randy Brukardt"  2008-03-31 19:16:01 
Re: Untyped Ada?
tmoran@[EMAIL PROTECTED]   2008-04-01 02:19:09 
Re: Untyped Ada?
"Dmitry A. Kazakov&q  2008-04-01 09:44:02 
Re: Untyped Ada?
Jean-Pierre Rosen <ros  2008-04-01 10:28:59 
Re: Untyped Ada?
"Phaedrus" <  2008-04-01 13:44:25 
Re: Untyped Ada?
Pascal Obry <pascal@[E  2008-04-01 19:09:26 
Re: Untyped Ada?
"Phaedrus" <  2008-04-01 14:00:15 
Re: Untyped Ada?
"Dmitry A. Kazakov&q  2008-04-02 09:31:07 
Re: Untyped Ada?
<adaworks@[EMAIL PROTE  2008-04-04 11:02:08 
Re: Untyped Ada?
Ludovic Brenta <ludovi  2008-04-01 23:51:39 
Re: Untyped Ada?
Graham <graham.stark@[  2008-04-04 08:16:04 
Re: Untyped Ada?
Pascal Obry <pascal@[E  2008-04-04 18:10:31 
Re: Untyped Ada?
DScott <Merlin43PhD@[E  2008-04-04 11:32:39 
Re: Untyped Ada?
"Dmitry A. Kazakov&q  2008-04-04 19:38:19 
Re: Untyped Ada?
Adam Beneschan <adam@[  2008-04-04 09:18:42 
Re: Untyped Ada?
Georg Bauhaus <rm.plus  2008-04-04 20:52:38 
Re: Untyped Ada?
"Dmitry A. Kazakov&q  2008-04-05 10:07:42 
Re: Untyped Ada?
Graham <graham.stark@[  2008-04-04 12:14:38 
Re: Untyped Ada?
tmoran@[EMAIL PROTECTED]   2008-04-04 16:06:29 
Re: Untyped Ada?
"Dmitry A. Kazakov&q  2008-04-05 10:44:00 
Re: Ada.Bounded_Strings
Adam Beneschan <adam@[  2008-04-04 14:09:27 
Re: Ada.Bounded_Strings
Robert A Duff <bobduff  2008-04-04 19:35:37 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-04 14:15:13 
Re: Ada.Strings.Bounded
Gautier <gautier@[EMAI  2008-04-05 06:39:44 
Re: Ada.Strings.Bounded
Pascal Obry <pascal@[E  2008-04-05 11:43:39 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-05 12:10:41 
Re: Ada.Strings.Bounded
Gautier <gautier@[EMAI  2008-04-05 13:36:42 
Re: Ada.Strings.Bounded
Pascal Obry <pascal@[E  2008-04-05 14:14:41 
Re: Ada.Strings.Bounded
"Randy Brukardt"  2008-04-05 19:31:48 
Re: Ada.Bounded_Strings
Adam Beneschan <adam@[  2008-04-04 18:46:52 
Re: Ada.Bounded_Strings
"Randy Brukardt"  2008-04-04 23:55:56 
Re: Ada.Bounded_Strings
"Dmitry A. Kazakov&q  2008-04-05 09:30:30 
Re: Ada.Bounded_Strings
"Randy Brukardt"  2008-04-05 19:44:26 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-07 07:57:55 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-07 17:23:19 
Re: Ada.Strings.Bounded
stefan-lucks@[EMAIL PROTE  2008-04-07 18:34:54 
Re: Ada.Strings.Bounded
"(see below)" &  2008-04-07 18:34:17 
Re: Untyped Ada?
Eric Hughes <eric.eh9@  2008-04-12 09:50:24 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-12 11:50:56 
Re: Ada.Strings.Bounded
Georg Bauhaus <rm.tsoh  2008-04-12 21:46:45 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-12 23:09:12 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-13 09:31:17 
Re: Ada.Strings.Bounded
Robert A Duff <bobduff  2008-04-13 16:02:49 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-13 09:53:16 
Re: Ada.Strings.Bounded
Robert A Duff <bobduff  2008-04-13 16:10:36 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-13 16:20:24 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-14 11:07:47 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-13 16:52:00 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-14 10:00:04 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-14 08:11:04 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-14 08:25:41 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-14 20:36:25 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-14 08:50:21 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-14 20:52:16 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-15 10:02:31 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-15 16:58:12 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-16 10:16:44 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-16 20:28:52 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-15 17:23:56 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-16 10:00:23 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-14 09:09:27 
Re: Ada.Strings.Bounded
Georg Bauhaus <rm.tsoh  2008-04-14 20:13:03 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-14 18:35:05 
Re: Ada.Strings.Bounded
Georg Bauhaus <rm.tsoh  2008-04-15 22:33:31 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-14 18:39:46 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-14 19:07:25 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-15 06:56:57 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-15 07:20:15 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-15 19:46:12 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-15 19:51:17 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-15 20:11:04 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-16 07:40:32 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-20 17:44:56 
Re: Ada.Strings.Bounded
Robert A Duff <bobduff  2008-04-21 10:08:16 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-21 20:50:16 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-21 09:35:36 
Re: Ada.Strings.Bounded
Robert A Duff <bobduff  2008-04-21 14:04:56 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-22 19:49:10 
Re: Ada.Strings.Bounded
Samuel Tardieu <sam@[E  2008-04-22 20:26:31 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-21 17:19:52 
Re: Ada.Strings.Bounded
Robert A Duff <bobduff  2008-04-22 11:41:29 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-22 20:59:27 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-21 17:31:37 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-21 17:49:39 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-21 18:02:45 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-22 08:25:13 
Re: Ada.Strings.Bounded
Robert A Duff <bobduff  2008-04-22 11:54:34 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-22 08:30:24 
Re: Ada.Strings.Bounded
Robert A Duff <bobduff  2008-04-22 12:08:49 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-22 11:47:05 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-22 21:19:27 
Re: Ada.Strings.Bounded
Robert A Duff <bobduff  2008-04-22 15:41:10 
Re: Ada.Strings.Bounded
Georg Bauhaus <rm.dash  2008-04-23 12:42:32 
Re: Ada.Strings.Bounded
"Randy Brukardt"  2008-04-23 19:29:17 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-23 14:32:16 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-22 12:56:20 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-22 13:15:24 
Re: Ada.Strings.Bounded
Peter Hermann <ica2ph@  2008-04-23 13:14:24 
Re: Ada.Strings.Bounded
"Dmitry A. Kazakov&q  2008-04-23 16:40:28 
Re: Ada.Strings.Bounded
Eric Hughes <eric.eh9@  2008-04-22 15:55:09 
Re: Ada.Strings.Bounded
christoph.grein@[EMAIL PR  2008-04-22 23:40:55 
Re: Ada.Strings.Bounded
christoph.grein@[EMAIL PR  2008-04-22 23:54:06 
Re: Ada.Strings.Bounded
christoph.grein@[EMAIL PR  2008-04-23 05:52:24 
Re: Ada.Strings.Bounded
Georg Bauhaus <rm.dash  2008-04-23 15:34:06 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-23 08:03:42 
Re: Ada.Strings.Bounded
Adam Beneschan <adam@[  2008-04-23 08:12:24 
Re: Ada.Strings.Bounded
"(see below)" &  2008-04-23 16:36:52 
Re: Ada.Strings.Bounded
Ray Blaak <rAYblaaK@[E  2008-04-23 17:09:42 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat Jul 26 1:10:49 CDT 2008.