From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: The old "Object.Method" syntax debate
Date: Sat, 31 May 2003 11:29:47 +0200
Date: 2003-05-31T11:29:47+02:00 [thread overview]
Message-ID: <bb9shl$78a8t$4@ID-77047.news.dfncis.de> (raw)
In-Reply-To: slrnbdedau.nq.lutz@taranis.iks-jena.de
Lutz Donnerhacke wrote:
> * Dmitry A. Kazakov wrote:
>> Lutz Donnerhacke wrote:
>>> procedure method(a : in out object; ...);
>>> for object'method use method;
>>
>> Or better
>>
>> object'method renames method;
>
> I do not like to introduce just another syntax for attribute definitions.
>
>>> Problem 1: Pointer of component => Pointer to aggregate
>>
>> Solved with MI = Class-wide pointer -> Dispatch
>
> I do not have tagged data types. Due to hardware design requirements I can
> not have tagged data types.
It is a strange view. In my present embedded project I am widely using
tagged types (it is not a 16-bit controller, though). I do not think that
any kludge I might invent would outperform the compiler generated code.
>>> Problem 2: Defining Byte_Order of record representations
>>
>> I didn'tunderstand this. Why Value := Low + High * 256 is unsufficient. I
>> never had problems in passing integers over sockets. But I admit, I know
>> no solution for an efficient dealing with floats (in binary format).
>
> A portable program using record representation clauses is not possible to
> write in Ada95 (besides you restrict yourself to boolean components only).
> If you like to show me something other, please consider a 6bit bytesize
> and 36bit wordsize processor ...
>
> The portable solution for complex data types is writing distinct parsing
> and constructing routines. This is inefficient and can not applied to
> memory mapped data. I do not accept this limitation of Ada95.
It seems that you consider Ada <-> Ada communication, which is a minor case.
My problem is Ada <-> Something communication. It is a delusion to hope
that any sort of representation clause might exclude parsing (do not forget
protocal error detection). Did you see proprietary CAN-bus protocols? You
would need rather Freud than Ada to deal with that! (:-))
>>> Problem 3: Static expressions of discriminants in record representations
>>
>> Yes it is a pain. But the major problem as I see it is breaking
>> separation of implementation and interface by discriminants.
>
> I do not see any seperation by declarative programming.
>
>> Clearly there has to be public and private (implementational)
>> discriminants.
>
> No. An external (memory mapped) data structure has only public components.
> Representation issues does no deal with private and public differences
> either.
I suppose you will first copy an object from the dual-ported RAM to
conventinal RAM before dealing with the data. Those objects better have
different representation.
>> With true constructors this could be solved.
>
> Initialisation routines exists and do not solve the problem. Constructor
> routines do not solve the memory mapping either. So what?
If I can construct in-place, I am free to chose a type representation at
will (a bit array if things are really bad). The price is a slover data
access, of course.
--
Regards,
Dmitry A. Kazakov
www.dmitry-kazakov.de
next prev parent reply other threads:[~2003-05-31 9:29 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-21 15:26 The old "Object.Method" syntax debate Marc A. Criley
2003-05-21 15:47 ` David C. Hoos
2003-05-21 16:21 ` Jacob Sparre Andersen
2003-05-21 16:34 ` Robert A Duff
2003-05-21 16:43 ` Preben Randhol
2003-05-21 17:13 ` Robert A Duff
2003-05-21 17:13 ` David C. Hoos
2003-05-21 18:21 ` Preben Randhol
2003-05-21 19:43 ` David C. Hoos
2003-05-21 20:36 ` Preben Randhol
2003-05-22 3:24 ` David C. Hoos
2003-05-22 2:31 ` Alexander Kopilovitch
2003-05-21 18:32 ` Preben Randhol
2003-05-22 9:41 ` Xavier Nicollin
2003-05-22 14:56 ` Robert A Duff
2003-05-22 16:02 ` Xavier Nicollin
2003-05-23 2:56 ` Wesley Groleau
2003-05-21 16:50 ` David C. Hoos
2003-05-21 16:36 ` Preben Randhol
2003-05-21 16:55 ` Vinzent Hoefler
2003-05-21 18:03 ` Preben Randhol
2003-05-21 18:17 ` David C. Hoos
2003-05-21 18:22 ` Preben Randhol
2003-05-21 20:53 ` tmoran
2003-05-22 2:11 ` Preben Randhol
2003-05-22 4:04 ` Dale Stanbrough
2003-05-22 7:34 ` Ole-Hjalmar Kristensen
2003-05-23 0:35 ` Hyman Rosen
2003-05-21 17:02 ` David C. Hoos
2003-05-21 17:55 ` Warren W. Gay VE3WWG
2003-05-21 19:54 ` Bobby D. Bryant
2003-05-21 20:37 ` Preben Randhol
2003-05-22 14:32 ` Rodrigo Garcia
2003-05-22 15:39 ` David C. Hoos
2003-05-23 7:49 ` Rodrigo Garcia
2003-05-23 8:34 ` Dmitry A. Kazakov
2003-05-23 18:35 ` Alexander Kopilovitch
2003-05-25 5:38 ` Robert I. Eachus
2003-05-25 9:13 ` Dmitry A. Kazakov
2003-05-27 9:50 ` John McCabe
2003-05-27 16:02 ` Warren W. Gay VE3WWG
2003-05-28 8:24 ` Dmitry A. Kazakov
2003-05-28 12:36 ` Lutz Donnerhacke
2003-05-28 13:14 ` Preben Randhol
2003-05-28 15:01 ` Lutz Donnerhacke
2003-05-29 9:17 ` Dmitry A. Kazakov
2003-05-30 10:41 ` Lutz Donnerhacke
2003-05-30 20:13 ` Randy Brukardt
2003-06-02 9:11 ` Lutz Donnerhacke
2003-05-31 9:29 ` Dmitry A. Kazakov [this message]
2003-05-28 3:02 ` Alexander Kopilovitch
2003-05-28 8:07 ` John McCabe
2003-05-29 0:55 ` Alexander Kopilovitch
2003-05-22 17:03 ` Gautier Write-only
2003-05-23 14:43 ` Steve
2003-05-23 14:51 ` Preben Randhol
2003-05-23 15:21 ` John McCabe
2003-05-23 23:43 ` Robert A Duff
2003-05-25 5:42 ` Hyman Rosen
2003-05-25 14:40 ` Steve
2003-05-25 21:21 ` Gautier Write-only
2003-05-23 7:58 ` John McCabe
2003-05-23 8:39 ` Preben Randhol
2003-05-23 15:12 ` John McCabe
2003-05-23 15:18 ` Preben Randhol
2003-05-23 17:32 ` Stephen Leake
2003-05-27 9:09 ` John McCabe
2003-05-28 11:47 ` Georg Bauhaus
2003-05-28 16:14 ` Stephen Leake
2003-05-28 18:23 ` Georg Bauhaus
2003-05-23 20:45 ` steve_H
-- strict thread matches above, loose matches on Subject: below --
2003-05-23 17:39 Lionel.DRAGHI
2003-05-23 17:59 Lionel.DRAGHI
2003-05-27 9:17 ` John McCabe
2003-06-03 17:23 Lionel.DRAGHI
2003-06-04 8:27 ` John McCabe
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox