comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: discriminant questions
Date: Tue, 27 Sep 2011 21:06:53 +0200
Date: 2011-09-27T21:06:53+02:00	[thread overview]
Message-ID: <b8tc3giylpxn.akxva284ptss$.dlg@40tude.net> (raw)
In-Reply-To: 4e8210ab$0$6550$9b4e6d93@newsspool4.arcor-online.net

On Tue, 27 Sep 2011 20:06:35 +0200, Georg Bauhaus wrote:

> On 27.09.11 17:38, Dmitry A. Kazakov wrote:
>> On Tue, 27 Sep 2011 17:11:03 +0200, Georg Bauhaus wrote:
>> 
>>> On 27.09.11 14:14, Dmitry A. Kazakov wrote:
>>>> On Tue, 27 Sep 2011 12:18:28 +0200, Georg Bauhaus wrote:
>>>>
>> [...]
>>>  So you end up explaining tasks
>>> and protected objects anyway.  And you might be able to explain
>>> why seemingly advantageous "primitives" like "concurrent" and
>>> "lock" had been preferred to a library based approach.
>> 
>> As another example take elliptic integral of the first kind: F(x,k).
> 
> I had been talking about programming constructs, not specialized
> mathematical functions that may or may not be expressed in terms
> of more primitive mathematical functions.

A difference?

> That is, I'm assuming that programmers want a loop construct
> in Ada, not just goto.

Or recursion, or callbacks from some hidden iteration loop?

> I'm assuming that they don't want to have to define loop in
> terms of goto, even when this has certain advantages.

Do you think that they want to iterate containers using iterators?

My point is that loop as primitive should apply to user-defined stuff, like
containers. That means that the language should allow to "override" not
only the loop's body, but also its continue-or-exit part.

> I'm assuming that if programmers always had to build
> (or have someone do it for them) specific concurrency constructs
> out of concurrency primitives, than this is too time consuming.

Sorry, but this is what parallel programming is about.

> The of mine, quoted above, came out wrong: it should say that
> "task" and "protected object" were chosen, not CAS or some such,
> with libraries around it.

Tasks are not equivalent to CAS, you cannot create a task using CAS. You
need tasks independently on presence of CAS.

> There is a staircase, so to speak, from very primitive features
> up to more "heavy" features.

No. There is a huge difference between what is "heavy" 1) for machine, 2)
for programmer, 3) for customer. As an example take square root. Is it
"primitive"?

> Yes, in Ada 2012 we may reinvent basics in terms of more primitive
> language features such as conditional goto, 'Succ/'Pred, and
> and increment and decrement operations:
[...]

Don't confuse language construction with the Hilbert's program!

>> Why
>> bother to with subprograms, accuracy of real types, real types themselves,
>> approximation techniques for such a simple thing?
> 
> Ada's way of specifying fundamental types refers to concepts
> relatively far away from hardware, IMO.

While the field "pattern" is "double", it this what are you saying? Ada has
a more general concept, which is not heavier than "double", neither for the
hardware, nor for the programmer, nor for the customers. This is the right
way to design a good language.

>> The answer to your question was given by Occam 700 years ago.
> 
> How much hair would the rasor have cut from Ada's definition
> of its heavy concurrency primitives?

Heavy? Do you think that messages, channels, mutexes, events would be
lighter?

Anyway, the performance burden is not directly bound to being fundamental.
E.g. static types as a generalization of data value are for free.
 
> A question related to the "reach" of features: Are there patterns
> of programming embedded control software that could very well
> be reflected in language features?  I think they are, but not
> in Ada, which is too primitive here.

Nope, the patterns used in embedded control systems I am dealing with are
so rustic, that they better fit to an assembler or C. Ada is rocket science
compared to them.

>>> At Ada-auth, they usually say something about customer response to
>>> implementation defined pragmas and such.
>> 
>> Customer response to the language standard? Are you joking?
> 
> Response to experimental features such as pragma Assert; contracts
> specified with pragma Precondition and such; or conditional
> expressions, I think.

All three represent language design bugs, what was the point?

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



  reply	other threads:[~2011-09-27 19:06 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-17 16:30 discriminant questions ytomino
2011-09-17 17:19 ` Dmitry A. Kazakov
2011-09-17 17:46   ` ytomino
2011-09-17 19:41     ` Dmitry A. Kazakov
2011-09-17 22:55       ` ytomino
2011-09-18  8:50         ` Dmitry A. Kazakov
2011-09-18 10:54           ` ytomino
2011-09-18 11:35             ` Dmitry A. Kazakov
2011-09-18 12:41               ` ytomino
2011-09-18 13:17                 ` Dmitry A. Kazakov
2011-09-18 16:22                   ` ytomino
2011-09-18 16:32                   ` ytomino
2011-09-18 18:15                     ` Dmitry A. Kazakov
2011-09-18 23:44                       ` ytomino
2011-09-19  7:27                         ` Dmitry A. Kazakov
2011-09-18 14:43               ` Dmitry A. Kazakov
2011-09-18 16:46               ` Robert A Duff
2011-09-18 18:01                 ` Dmitry A. Kazakov
2011-09-18 19:20                   ` Maciej Sobczak
2011-09-19  7:39                     ` Dmitry A. Kazakov
2011-09-19 20:00                       ` Maciej Sobczak
2011-09-20  7:33                         ` Dmitry A. Kazakov
2011-09-20 15:45                           ` Maciej Sobczak
2011-09-20 16:48                             ` Dmitry A. Kazakov
2011-09-20 20:19                               ` Maciej Sobczak
2011-09-21  7:48                                 ` Dmitry A. Kazakov
2011-09-21 20:51                                   ` Maciej Sobczak
2011-09-22  8:07                                     ` Dmitry A. Kazakov
2011-09-22 20:57                                       ` Maciej Sobczak
2011-09-23  7:59                                         ` Dmitry A. Kazakov
2011-09-23 10:57                                           ` Georg Bauhaus
2011-09-23 22:30                                           ` Randy Brukardt
2011-09-23 22:50                                           ` Randy Brukardt
2011-09-24  6:46                                             ` Dmitry A. Kazakov
2011-09-26 22:48                                               ` Randy Brukardt
2011-09-27  8:10                                                 ` Dmitry A. Kazakov
2011-09-27 10:18                                                   ` Georg Bauhaus
2011-09-27 12:14                                                     ` Dmitry A. Kazakov
2011-09-27 15:11                                                       ` Georg Bauhaus
2011-09-27 15:38                                                         ` Dmitry A. Kazakov
2011-09-27 18:06                                                           ` Georg Bauhaus
2011-09-27 19:06                                                             ` Dmitry A. Kazakov [this message]
2011-09-29  0:01                                                               ` Georg Bauhaus
2011-09-29  8:26                                                                 ` Dmitry A. Kazakov
2011-09-30  1:24                                                                   ` Randy Brukardt
2011-09-30  8:10                                                                     ` Dmitry A. Kazakov
2011-09-30 10:07                                                                   ` Georg Bauhaus
2011-09-30 12:38                                                                     ` Dmitry A. Kazakov
2011-09-30 17:40                                                                       ` Georg Bauhaus
2011-09-30 18:55                                                                         ` Dmitry A. Kazakov
2011-09-23  9:23                                       ` Stephen Leake
2011-09-23  9:48                                         ` Dmitry A. Kazakov
2011-09-23 22:42                                           ` Randy Brukardt
2011-09-24  6:56                                             ` Dmitry A. Kazakov
2011-09-26 22:43                                               ` Randy Brukardt
2011-09-24 10:47                                             ` Stephen Leake
2011-09-24 12:54                                       ` Simon Wright
2011-09-24 14:46                                         ` Dmitry A. Kazakov
2011-09-24 16:21                                           ` Simon Wright
2011-09-24 16:43                                             ` Dmitry A. Kazakov
2011-09-22  2:52                                   ` Randy Brukardt
2011-09-22  8:11                                     ` Dmitry A. Kazakov
2011-09-20  0:01           ` Randy Brukardt
2011-09-20  7:38             ` Dmitry A. Kazakov
2011-09-20 11:11               ` AdaMagica
2011-09-20 12:09                 ` Dmitry A. Kazakov
2011-09-20 12:31                   ` AdaMagica
2011-09-20 12:57                     ` Dmitry A. Kazakov
2011-09-20 23:28                       ` ytomino
2011-09-21  5:03                         ` AdaMagica
2011-09-21  8:08                         ` Dmitry A. Kazakov
2011-09-21 10:03                           ` Georg Bauhaus
2011-09-21 10:29                             ` Dmitry A. Kazakov
2011-09-22  3:21                           ` Randy Brukardt
2011-09-22  3:05                   ` Randy Brukardt
2011-09-19 23:35         ` Randy Brukardt
2011-09-20 21:39           ` ytomino
2011-09-22  3:32             ` Randy Brukardt
2011-09-18 16:32 ` ytomino
2011-09-19 14:46   ` ytomino
2011-09-19 15:14     ` Dmitry A. Kazakov
2011-09-19 17:49       ` ytomino
2011-09-20  7:29         ` Georg Bauhaus
2011-09-20 19:50           ` ytomino
2011-09-20  8:08         ` Dmitry A. Kazakov
2011-09-20 18:47           ` ytomino
2011-09-21  8:16             ` Dmitry A. Kazakov
2011-09-21  9:55               ` ytomino
2011-09-22  3:26                 ` Randy Brukardt
replies disabled

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