comp.lang.ada
 help / color / mirror / Atom feed
From: Robert Dewar <robert_dewar@my-deja.com>
Subject: Re: Required Metrics
Date: 2000/05/05
Date: 2000-05-05T00:00:00+00:00	[thread overview]
Message-ID: <8eukm0$ssm$1@nnrp1.deja.com> (raw)
In-Reply-To: _HnQ4.7884$wb7.550012@news.flash.net

In article <_HnQ4.7884$wb7.550012@news.flash.net>,
  "Ken Garlington" <Ken.Garlington@computer.org> wrote:

> > I think that's the wrong take entirely. In the case of
metrics
> > (see Bob Duff's post), there is a broad feeling that these
are
> > completely bogus requirements for modern compilers.
>
> Here's the first problem I have with this statement. Either
>
> (a) it's not true, and so this is a real issue

  It's true, but always remember the issue here is not whether
  the documentation might or might not be useful, but whether
  it belongs in a language standard.

> (b) it is true, and has been true for some time, in which case
>     how did it manage to get into the standard?

  It has always been true that documentation requirements like
  this do not belong in the standard. As to why they got in, I
  think your posts have vividly illustrated the thinking behind
  those who argued for putting them in. To me a classical
  case of confusing desirable implementation features with
  formal semantic requirements.

> (c) something changed between 1994-ish and now (really well
> before now,

  No, nothing has changed

> since apparently no one has ever met this part of the
> standard),

  You keep saying this, which means you still do not understand
  the issue here, which is that we are talking about formal
  semantic requirements.

  On the contrary, everyone has met it, since from a formal
  point of view, documentation is not defined, and therefore
  can be defined anyway you want. As Bob Duff points out,
  you can define the compiler itself as an operational
  definition of its own behavior, and therefore it
  constitutes documentation in a formal sense. Providing
  the sources is a more realistic form of this approach
  to documentation, but still may not meet your *non-formal*
  implementation requirements.

> and if so,
> what changed?

  I think you could argue that things have indeed change from
  the point of view of informal documentation requirements here.
  And that probably accounts for the overwhelming lack of
  interest in getting more accessible forms of this
  documentation, since it was (like much of the RT annex)
  framed with bare board single processor implementations
  in mind, whereas modern reality is more likely implementation
  over an OS or 3rd party RTOS.

  But that does not affect the discussion about whether such
  requirements should be formal semantic requirements in the
  language. The answer to that is, and has always been, no.
  The fact that such requirements got in was just a compromise
  necessitated by a standards process involving many people,
  not all of whom understand what formal language requirements
  are about, and who don't mind having undefined wooly
  requirements in what should be a precise specification.

> Here's the second (and larger) problem, as I've mentioned
> before. Why should
> "feelings" be related to requirements?

  They should not be. The problem with these requirements
  was precisely that the "feeling" expressed by you forcefully
  that Ada implementations should be "required" to provide
  useful documentation got translated into requirements.

> Why go through the motions to
> formally establish the requirement and get a consensus
documented and
> approved, if there's not an equal intent to do something
formal (an AI, at
> least) to remove such a "bogus" requirement?

  Lots of us knew these requirements were bogus, including
  key people on the design team (e.g. Bob Duff). You fight
  many battles in a consensus process. This one was not
  worth fighting at the time, since the effect of these
  requirements is negligible in practice. We knew they
  would end up being useless of course, but we also
  knew they would not be harmful.

> It appears like the classic
> case of people writing down a requirements document just
> because the
> customer says you have to do one,

  Well, you paint with too broad a brush. This particular
  phenomenon (documentation requirements) was indeed a
  matter of responding to customers who did not really
  understand the issue. But the great majority of the
  Ada RM is not vaguely related to this process.

> but promptly ignoring it through the rest
> of the life cycle. Regardless of the facts of the matter,
> should the Ada
> community give such an appearance?

  Of course not, but as you have made very clear, there are
  significant players in the Ada community who do not understand
  that requirements like this do not belong in the RM, so even
  now it might be a difficult battle to win, and frankly it is
  not worth it, since it is unimportant.

> > If they
> > ever had any meaning it would only be for bare-board
compilers
> > for very specific architectures.

  Note that I am talking about the value of these items as
  pragmatic implementation features, not formal requirements
  when I say this.

> However, I'd claim that there are still a significant number
> of real-time systems that do, in fact, get implemented on
> bare-board systems.

  It's certainly a dieing breed. We see almost no demand for
  this, not zero, but barely on the radar screen. The trend
  is clearly to 3rd party RTOS based systems (VxWorks, and
  also see Greenhills new Integrity push).

> I don't
> know which are the "specific architectures," but certainly
real-time systems
> use a variety of them. Since we're talking about the real-time
annex, then
> surely the environments in which real-time systems operate
should be a
> strong consideration for the appropriateness of such a
requirement.

  I think if you are in such an environment, you should require
  your implementor to provide whatever information you need.
  The RM will be no help in this task, since the issue is not
  formal requirements, but rather providing information in the
  manner YOU require.

> For example, is there a GNORT target for which the metrics are
> meaningful?

  Seeing as GNORT excludes tasking and the real time annex in
  its entirety, no :-)

> > It is not that the vendor "does not like" this particular
> > requirement in our case, it is simply that
> >
> > a) it is meaningless, but we do meet the requirement anyway,
> > perhaps not in the most useful way, but since it is pretty
> > much useless, there is not much point in trying to do
> > useless
> > things in a useful manner!


> Again, the issue of whether it's an appropriate requirement is
> interesting, but it's not the real issue. I'm still not
> convinced that you meet the
> requirement in the current release, for that matter.

  Well try to prove this formally. First you will need a
  formal definition of "documentation" *derived from the
  RM*. That will be hard. For example, are you sure that
  this documentation must be in English? What if I provide
  it in Navaho or Klingon, is that sufficient, or, more to
  the point here, what if I provide it in Ada 95.
  Furthermore, if your idea is that you want to see
  metrics in milliseconds, then this is clearly infeasible
  in general working over third party systems, so the
  conditions of RM 1.1.3(6) would apply:

    6  Contain no variations except those explicitly permitted
       by this
       International Standard, or those that are impossible or
       impractical to avoid given the implementation's execution
       environment;

> More importantly, since
> this is not about a specific compiler, I'm not convinced
> _anyone_ has
> bothered to meet the requirement.

  You still think of this as a requirement that can be met or
  not met. And it is this invalid thinking that lead to having
  these kind of requirements in the RM. Since the requirement
  is semantically vacuous, I think it is clear that all
  compilers meet it.

> I don't have proof that this is the case,
> but it concerns me. Most importantly, it seems this argument
> can be used to
> justify all sorts of mischief.

  That's FUD unless you can back it up. I see no possible
  spill over from requirements that are meaningless to
  handling of requirements that are well stated and
  semantically meaningful.

> > b) our customers have zero interest in us doing any more
> > than we do now.
> >
> > As we often find, CLA readers and contributors seem to have
> > rather different priorities from actual Ada users when we
get
> > to discussing various theoretical issues surrounding the RM
:-)

> Again, I find the argument of user priorities a very slippery
> slope, which can be used to invisibly drop any number of
> requirements.

  No, that's completely wrong, and I begin to think that it
  is a hopeless task to convince you. No requirements have
  been dropped by anyone here.

  The only issue is that you have in your mind some
  interpretation of these requirements that is not in the
  RM, and you note that compilers do not follow Ken
  Garlington's interpretation of these requirements.

  Very possibly so, but that has nothing to do with whether
  the requirements are followed.

  Now take the visibility rules of Ada in chapter 8. Here
  we don't care what Ken thinks about them, because

    a) they are well defined

    b) it is well defined whether a compiler implements
       them correctly.

  A totally different situation.

  It is really critical in a formal language standard that
  all requirements be objective and well defined. Once again
  requirements for "good" documentation are as silly as
  requirements for good performance.

  As I mentioned before, there were actually people seriously
  asking for quantitative requirements on performance of tasking
  constructs in terms of processor clock cycles. I know, that's
  hard to believe that anyone could be that misguided but it's
  true. The undefined metrics requirements were a compromise to
  deal with this unreasonable extreme. Since they are undefined
  and harmless, it was a way of getting things done without
  running into a road block.

> It's useful for
> discussing the options for implementing a requirement (e.g. a
fancy
> calculator for computing the metric vs. "here's the sources,
have at it"),
> but good software engineering would say that failing to meet a
> requirement
> due to perceived user desire

  The trouble with these undefined requirements is that the
  only POSSIBLE meaning is in terms of "perceivced user
  desires". In other words if we try to ask if a compiler
  meets certain documentation requirements, we cannot look
  to any formal definitions and we cannot look to the RM,
  the ONLY way of determining whether such requirements have
  been met is to interrogate "perceived user desire".

  Yes, that's a horrible state of affairs and that's what
  this thread is all about, but it is really stil a tempest
  in a teapot in terms of overall significance.

  By the way, the ACVC review board discussed this briefly.
  They immediately agreed that these requirements were too
  ill-defined to even consider including them in conformance
  assessment. There was no controversy in this decision, it
  was clear to this committee that these "requirements" have
  to be treated differently, namely ignored completely when
  it comes to formal conformance testing.


Sent via Deja.com http://www.deja.com/
Before you buy.




  reply	other threads:[~2000-05-05  0:00 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-04-29  0:00 Required Metrics Ken Garlington
2000-04-29  0:00 ` swhalen
2000-05-01  0:00   ` Required Metrics (GNAT et al) Ken Garlington
2000-05-01  0:00     ` swhalen
2000-05-01  0:00       ` Ken Garlington
2000-05-01  0:00 ` Required Metrics Ted Dennison
2000-05-01  0:00   ` Ken Garlington
2000-05-04  0:00     ` Roger Barnett
2000-05-05  0:00       ` Robert Dewar
2000-05-04  0:00     ` Robert Dewar
2000-05-05  0:00       ` Ken Garlington
2000-05-05  0:00         ` Robert Dewar
2000-05-05  0:00           ` Ted Dennison
2000-05-06  0:00             ` Robert Dewar
2000-05-07  0:00           ` Robert I. Eachus
2000-05-07  0:00             ` Robert Dewar
2000-05-18  0:00               ` Robert I. Eachus
2000-05-18  0:00                 ` Robert A Duff
2000-05-19  0:00                   ` Robert I. Eachus
2000-05-21  0:00                   ` Robert Dewar
2000-06-03  0:00                     ` Robert I. Eachus
2000-05-07  0:00             ` Ken Garlington
2000-05-07  0:00               ` Robert Dewar
2000-05-07  0:00                 ` Ken Garlington
2000-05-07  0:00                   ` Robert Dewar
2000-05-08  0:00             ` Ole-Hjalmar Kristensen
2000-05-08  0:00               ` Robert Dewar
2000-05-08  0:00               ` Robert Dewar
2000-05-18  0:00               ` Robert I. Eachus
2000-05-18  0:00                 ` Ken Garlington
2000-05-01  0:00   ` Tucker Taft
2000-05-01  0:00     ` Ken Garlington
2000-05-02  0:00       ` Ted Dennison
2000-05-04  0:00         ` Robert Dewar
2000-05-04  0:00           ` Ted Dennison
2000-05-05  0:00           ` Ken Garlington
2000-05-05  0:00             ` Robert Dewar
2000-05-02  0:00       ` Ken Garlington
2000-05-02  0:00         ` Ted Dennison
2000-05-03  0:00         ` Robert Dewar
2000-05-03  0:00           ` Ken Garlington
2000-05-03  0:00             ` Robert A Duff
2000-05-04  0:00               ` Ken Garlington
2000-05-04  0:00                 ` Robert Dewar
2000-05-04  0:00                   ` Robert A Duff
2000-05-04  0:00                     ` Robert Dewar
2000-05-05  0:00                   ` Ken Garlington
2000-05-04  0:00             ` Robert Dewar
2000-05-04  0:00               ` Ken Garlington
2000-05-05  0:00                 ` Robert Dewar
2000-05-04  0:00             ` Robert Dewar
2000-05-04  0:00               ` Wes Groleau
2000-05-04  0:00               ` Ken Garlington
2000-05-05  0:00                 ` Robert Dewar [this message]
2000-05-06  0:00                   ` Ken Garlington
2000-05-06  0:00                     ` Ken Garlington
2000-05-06  0:00                       ` Robert Dewar
2000-05-07  0:00                         ` Ken Garlington
2000-05-07  0:00                           ` Robert Dewar
2000-05-08  0:00                         ` Ole-Hjalmar Kristensen
2000-05-06  0:00                       ` Robert Dewar
2000-05-06  0:00                     ` Robert Dewar
2000-05-07  0:00                       ` Ken Garlington
2000-05-07  0:00                         ` Robert Dewar
2000-05-07  0:00                           ` Ken Garlington
2000-05-07  0:00                             ` Robert Dewar
2000-05-07  0:00                               ` Ken Garlington
2000-05-07  0:00                                 ` Robert Dewar
replies disabled

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