From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,791530e499e6a7f9 X-Google-Attributes: gid103376,public From: "Jeffrey D. Cherry" Subject: Re: ada writing guide Date: 2000/04/13 Message-ID: <38F5DF8C.1A01E5A4@utech.net>#1/1 X-Deja-AN: 610690066 Content-Transfer-Encoding: 7bit References: <8d1rso$bir$2@bunyip.cc.uq.edu.au> <8d1vhj$hdr$1@nnrp1.deja.com> <8d2hig$7e6$1@nnrp1.deja.com> X-Accept-Language: en,pdf Content-Type: text/plain; charset=us-ascii X-Trace: azure.impulse.net 955637686 195 207.154.67.59 Organization: Logicon MIME-Version: 1.0 Newsgroups: comp.lang.ada Date: 2000-04-13T00:00:00+00:00 List-Id: Robert Dewar wrote: > > I find the extra ); on its own line offensive and unnatural, > just as clear, and much easier on the eye to write > > > procedure Foo > > (D : in out Data; > > C : in Data); > > In GNAT we prefer to put things on a single line: > > > procedure Foo (D : in out Data; C : Data); > > If they fit comfortably on one line, and use the form with > one line per parameter only if that is not the case. I quite agree that if a complete declaration can appear on one line, it should not be arbitrarily broken up into two or more lines. I also agree with the ");" looking silly when it's on a line by itself. The part about "in" mode for parameters (not quoted above, but in the original post) I would also agree with, especially with function parameters. Now here is where I stray ... just a bit. I like the following form for a subprogram declaration: procedure Foo( D : in out Data; C : in Data); There are two subtle differences. First, I like to put the opening parenthesis on the line with the subprogram name. This allows the parameter names to line up starting in the same column. Second, I don't leave a space between the subprogram name and the opening parenthesis. I'm pretty comfortable with the first point while the second I find is debatable. Personally, I eliminate the space between a subprogram name and its opening parenthesis because it handles parentheses consistently when they are associated with an identifier. However, this might _not_ be the more readable practice. Consider the following contrived example: procedure Silly is function foobar(a : float) return integer is begin -- foobar return integer(float'truncation(a)); end foobar; f : float := 3.33; i : integer; n : array(1..5) of integer := (5, 6, 7, 8, 9); begin -- Silly i := foobar(f) + n(2); end Silly; Notice the consistency in the assignment statement. But is it more readable to write: i := foobar (f) + n(2); This may give the reader a subtle indication that foobar is a function call while n is an array. I am curious to hear what others think of this practice ... is it just silly to worry about or does it indeed improve the readability of an expression? -- Regards, Jeffrey D. Cherry Senior IV&V Analyst Logicon Space and Information Operations Logicon Inc. a Northrop Grumman company