comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm.dash-bauhaus@futureapps.de>
Subject: Re: Communications of ACM: Sir, Please Step Away from the ASR-33!
Date: Wed, 29 Dec 2010 17:32:31 +0100
Date: 2010-12-29T17:32:31+01:00	[thread overview]
Message-ID: <4d1b629f$0$7653$9b4e6d93@newsspool1.arcor-online.net> (raw)
In-Reply-To: <jlf2mrym1lki$.u51tsf1pswm5.dlg@40tude.net>

On 29.12.10 15:52, Dmitry A. Kazakov wrote:

>> No, using tools, they will be guided in the direction the
>> tool knows best.  Just like an Ada compiler will instruct
>> us to not leave out values in a case distinction.
> 
> Ada is capable of this because it has types. It is not because Ada knows
> anything about specific types, but because the programmer can use the type
> system to express constraints the compiler will then check. There is no
> magic knowledge Ada oracle sheds to guide programmers. All information is
> exclusively from the programmer.

The information in models is man-made, too.

> Any tool is no different, it is a
> dangerous delusion to believe otherwise.

There are differences among tools' domains.
(In what they are about, in what they can express.)

Tools are different, and so are the benefits.
Even when two tools are in the same class of tools:
An Ada compiler will treat a case statement in a way
that is different from the way a C compiler treats a switch.
Both are, by intent, case distinctions.

So even among compilers guidance is different.

The crucial part is that an Ada compiler guides you by
answering the question "Which case distinctions do I
have to change?" (provided you don't use C style "others"
for subtypes typically appearing in case statements).
A C compiler typically cannot do this.

Modeling tools will answer different questions.  But they will
answer them when answers are more difficult to find using only
Ada source text and human inference.  This is because, when
modeling, humans have expressed one set of notions. This
set is slightly different from the set expressed in Ada source.



>> Even StP went far to make
>> sure your model was checked in all sorts of directions.
> 
> Assembler checks the code in that sorts of direction too.

Assembly language cannot, for example, *express* IS-A
relations, Ada can (there is syntax for it), UML too,
and more than this.

You can have conventions in assembly language, like the first
parameter pushed for a call is a pointer to a memory location, and
the first word there is a pointer that either represents the
null pointer or is a pointer to another memory location of
similar structure. (...)  I think this isn't meant by *express*
IS-A.


>> The compiler is a guide where it "knows the area".
> 
> Why this area must be different for an Ada compiler and a UML diagram
> interpreter?

Ada and UML deal with a different set of objects and notions.
There is some correspondence, but the focus is different.

>> These associations,
>> relations, etc.  are not easily spotted, not in one
>> place, in a source program.  The compiler won't tell you.
> 
> and UML would?

Yes. BON, e.g., is a particularly simple way to express relations
and orders of communication.  UML has this, too. Formally,
unlike comments.


> Why a thing important to the program must
> be external to it?

The system architecture is such that concurrent processes
communicate via a data store. So the important thing happens
to be external to the program.  It is a requirement that I
cannot change. But a model can express the external control
as a system element nevertheless.

> Why this thing must be external in Ada, but internal in
> UML?

An external control can be an element of a UML diagram or
other modes of expression, but not in Ada (not directly).
The set of objects directly expressible in some modeling
language may be larger (or different).


>> Suppose there is a setup like the following: some external entity
>> acts as a mutex controlling concurrent activities of
>> co-operating "jobs".
> 
> Don't use low-level concurrency primitives. Ada has better means for that.

That's the non-argument I'd like to again ask to avoid:
the setup is given, as is.  When I can use Ada
to cope with the given setup, I'll have to act as if Ada
had no direct support for the CSP mechanisms permitted
in the given setup.  However, direct support is available
in other (modeling) formalisms. They can be mapped
to Ada (in several ways). I pick a mapping that matches
the setup.

The model is clear, the implementation in Ada is up
to the programmer.



  reply	other threads:[~2010-12-29 16:32 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-15 22:09 Communications of ACM: Sir, Please Step Away from the ASR-33! Michael R
2010-12-15 22:36 ` Florian Weimer
2010-12-17  0:53   ` Randy Brukardt
2010-12-31 14:26     ` Florian Weimer
2010-12-27 14:41 ` Jacob Sparre Andersen
2010-12-27 16:56   ` Georg Bauhaus
2010-12-27 17:45   ` Dmitry A. Kazakov
2010-12-27 18:41   ` Niklas Holsti
2010-12-27 20:40     ` Dmitry A. Kazakov
2010-12-28  9:32       ` Niklas Holsti
2010-12-28 10:13         ` Dmitry A. Kazakov
2010-12-28 11:01           ` Georg Bauhaus
2010-12-28 12:07             ` Dmitry A. Kazakov
2010-12-28 13:03               ` Georg Bauhaus
2010-12-28 13:56                 ` Dmitry A. Kazakov
2010-12-28 15:41                   ` Georg Bauhaus
2010-12-28 16:26                     ` Dmitry A. Kazakov
2010-12-29 12:56                       ` Georg Bauhaus
2010-12-29 14:52                         ` Dmitry A. Kazakov
2010-12-29 16:32                           ` Georg Bauhaus [this message]
2010-12-29 17:26                             ` Dmitry A. Kazakov
2010-12-29 19:31                               ` Georg Bauhaus
2010-12-29 23:35                                 ` Dmitry A. Kazakov
2010-12-30 18:28                                   ` Georg Bauhaus
2010-12-30 19:33                                     ` Dmitry A. Kazakov
2010-12-30 22:05                                       ` Simon Wright
2010-12-31  9:09                                         ` Dmitry A. Kazakov
2010-12-29 13:55                       ` Georg Bauhaus
2010-12-29 14:33                         ` Dmitry A. Kazakov
2010-12-28 14:39                 ` Simon Wright
2010-12-29 12:43                   ` Georg Bauhaus
2010-12-30 15:00 ` Marco
replies disabled

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