comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: I'm facing an issue with: call to abstract procedure must be dispatching
Date: Wed, 9 Dec 2015 13:03:46 +0100
Date: 2015-12-09T13:03:46+01:00	[thread overview]
Message-ID: <1j28s23yiy4it$.86sbf42gu6wk.dlg@40tude.net> (raw)
In-Reply-To: n49134$vba$1@dont-email.me

On Wed, 9 Dec 2015 11:53:43 +0100, G.B. wrote:

> On 08.12.15 22:08, Dmitry A. Kazakov wrote:
> 
>> There are people in c.l.a who believe in procedural decomposition and
>> inference from the type structure. It is incompatible with fundamental
>> Ada's principles of strong typing and separation of interface and
>> implementation. But that is my opinion.
> 
> There are those in c.l.ada, including Dmitry Kazakov ;-) ;-) ;-),
> who suggested that the parameter profile of a subprogram can
> be seen as a type.

You mean procedural types? Ada does not have them, only the
access-to-subprogram kludge.

> For practical matters in single programs,
> this looks perfectly fine to me. Considering, if everything in
> a program is a reusable building block, when is there any use?

What about the process of fitting? In order to reuse you need an interface
how and where does it fit. You cannot do that without types, e.g. of the
parameters. The second question is the context where you may to reuse the
block. How do you describe the context? In terms of types, the context is
everywhere the types of the interface exist (this includes subtype
constraints). That makes your "block" a mere primitive operation of those
types.

The bottom line, you can have your lazy blocks only when not reusable and
weakly typed.

> (Moreover, what is the type of constructs that do actually reuse
> if everything became an Ada type?)

I didn't say that everything is a type. I only said that procedural
decomposition is superseded by OO decomposition. Largely because
programming in terms of singular values is superseded by programming in
terms of sets of values (type) and sets of types (generic programming).
This is a normal evolutionary process to handle increasing SW complexity.

This is orthogonal to other language constructs, though most of them do
rely on types anyway, e.g. if, for, case statements require certain class
of types to work. As such they could be viewed as syntax sugar for some
primitive operations.

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


  reply	other threads:[~2015-12-09 12:03 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-08 16:45 I'm facing an issue with: call to abstract procedure must be dispatching Serge Robyns
2015-12-08 16:59 ` G.B.
2015-12-08 17:04 ` Dmitry A. Kazakov
2015-12-08 17:24   ` Serge Robyns
2015-12-08 17:42     ` Dmitry A. Kazakov
2015-12-08 18:00       ` Serge Robyns
2015-12-08 18:22         ` Dmitry A. Kazakov
2015-12-08 20:21           ` Serge Robyns
2015-12-08 21:08             ` Dmitry A. Kazakov
2015-12-08 21:55               ` Serge Robyns
2015-12-08 22:43                 ` Serge Robyns
2015-12-08 22:55                   ` Jeffrey R. Carter
2015-12-09 23:03                     ` Randy Brukardt
2015-12-10  8:38                       ` Serge Robyns
2015-12-10 23:43                         ` Randy Brukardt
2015-12-09  8:48                 ` Dmitry A. Kazakov
2015-12-09 10:53               ` G.B.
2015-12-09 12:03                 ` Dmitry A. Kazakov [this message]
2015-12-09 13:42                   ` G.B.
2015-12-09 14:23                     ` Dmitry A. Kazakov
2015-12-08 22:55             ` Jeffrey R. Carter
2015-12-08 23:04               ` Serge Robyns
2015-12-08 23:42                 ` Jeffrey R. Carter
2015-12-09 13:40                 ` Jere
2015-12-09 13:48                   ` G.B.
2015-12-09 15:33                     ` Jere
2015-12-13 21:37                 ` Shark8
2015-12-14  2:20                   ` Jeffrey R. Carter
2015-12-15  7:26                     ` Shark8
2015-12-08 17:30 ` Jeffrey R. Carter
2015-12-08 17:48   ` Serge Robyns
2015-12-08 18:46     ` Jeffrey R. Carter
2015-12-08 20:28       ` Serge Robyns
2015-12-08 22:20     ` 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