From: mheaney@ni.net (Matthew Heaney)
Subject: Re: Coding Standards & GOTO
Date: 1997/09/22
Date: 1997-09-22T00:00:00+00:00 [thread overview]
Message-ID: <mheaney-ya023680002209971952370001@news.ni.net> (raw)
In-Reply-To: 3426B51E.7296@lmco.com
In article <3426B51E.7296@lmco.com>, William.Dale.Jr@lmco.com wrote:
>As my charter for implementing a new Ada 95 standard is to have only
>absolute rules that cannot be violated,
You are setting yourself up for failure, as there is no such thing as an
absolute rule.
>I am forced to through out most
>of AQ&S as mearly advice.
Why the pejorative "merely advice"? That's exactly what a coding standard
should be, advice on how to use language.
Read the section of OOSC-2 that discusses the difference between a rule and
a guideline.
>A major segment wants to use GOTO's ( visible
>objects in specs too ). I'd use the AQ&S right out of the box if I
>could.
A "rule" comprises "guidelines," plus a list of the times when the
guidelines don't apply, ie
rule = guidelines + exceptions
For example, state your rule for the use of goto as follows:
Rule For The Use Of The Goto Statement
Guideline:
o Use higher-level control structures such as if, case, and loops, rather
than a goto.
Exceptions:
o Use a goto when you're mechanically translating code from another
language into Ada (example, converting from Fortran to Ada, or when you're
using a scanner generator that emits Ada code).
o Use a goto when you're hand-coding a finite state machine, such as a scanner.
End of Rule
And what's wrong with objects in the spec? Have you read Ada.Text_IO
lately? Again, this calls for guidelines for when to declare an object in
the spec, and when not to. For example, when implementing a subsystem,
then an object shared among packages in the same subsystem can be declared
in the spec of a private package.
Also, a well-known object, used throughout the system, can be declared in a
spec:
package Targets.Objects is
type Target_Array is array (Positive range 1 .. 20) of Target;
The_Targets : Target_Array;
end;
What's wrong with that?
>Advice will be ignored, I'm sure, as all programmers know what's best
>for their code. ;-)
Not all programmers do know, and they appreciate the help. Check out
Taligent's Guide to Designing Programs.
--------------------------------------------------------------------
Matthew Heaney
Software Development Consultant
<mailto:matthew_heaney@acm.org>
(818) 985-1271
next prev parent reply other threads:[~1997-09-22 0:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-09-17 0:00 Is there an ADA analogue to the C++ continue statement? Heath, Terry D.
1997-09-18 0:00 ` Pascal Obry
1997-09-18 0:00 ` Robert A Duff
1997-09-18 0:00 ` Samuel Tardieu
1997-09-19 0:00 ` Robert Dewar
[not found] ` <3422F037.41CA@lmco.com>
1997-09-20 0:00 ` dan13
1997-09-21 0:00 ` Robert Dewar
[not found] ` <3426B51E.7296@lmco.com>
1997-09-22 0:00 ` Matthew Heaney [this message]
1997-09-23 0:00 ` Coding Standards & GOTO Mark A Biggar
1997-09-24 0:00 ` W. Wesley Groleau x4923
1997-09-24 0:00 ` Shmuel (Seymour J.) Metz
1997-09-24 0:00 ` Aaron Quantz
1997-09-26 0:00 ` Charles H. Sampson
1997-09-23 0:00 ` Charles Rose
1997-09-24 0:00 ` Matthew Heaney
1997-09-25 0:00 ` Shmuel (Seymour J.) Metz
1997-09-23 0:00 ` Coding Standards W. Wesley Groleau x4923
1997-09-22 0:00 ` Is there an ADA analogue to the C++ continue statement? Richard D Riehle
1997-09-23 0:00 ` GOTO considered Satanic (was: Is there an ADA analogue to the C++ continue statement?) Adam Beneschan
1997-09-24 0:00 ` Brian Rogoff
1997-09-25 0:00 ` Larry Kilgallen
1997-09-26 0:00 ` Matthew Heaney
1997-09-26 0:00 ` Brian Rogoff
1997-10-07 0:00 ` Robert I. Eachus
1997-09-24 0:00 ` W. Wesley Groleau x4923
1997-09-25 0:00 ` Alan Brain
1997-09-25 0:00 ` Shmuel (Seymour J.) Metz
1997-09-22 0:00 ` Is there an ADA analogue to the C++ continue statement? Richard A. O'Keefe
1997-09-29 0:00 ` John G. Volan
1997-09-18 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