comp.lang.ada
 help / color / mirror / Atom feed
From: rharwood@east.pima.edu
Subject: Re: Command line arguments
Date: 30 Apr 91 05:40:29 GMT	[thread overview]
Message-ID: <1991Apr29.224029.1@east.pima.edu> (raw)
In-Reply-To: 3275@enea.se

In article <3275@enea.se>, sommar@enea.se (Erland Sommarskog) writes:
> Undoubtedly it would be pleasant if all Ada compilers on
> Unix were interchangeable on argv/argc, but that something
> like a POSIX binding not Ada 9X.
> 
> Since you retrieve the arguments differently in different OSs,
> reading the command line is something which by definition is
> not portable(*) so it can't be in the language. Remember that 
> the command-line interface itself is OS dependent.
> 
> (*) Yes, I know that argc/argv is commonly available with C
> implementations. But if you're going to get the command-line
> interface right in, say, VMS, you better use the CLI$ routines.

Erland, I agree 100%.  Here's perhaps some more "justification".

Perhaps the "correct" way for portability would be to write a package for EACH
PROGRAM (or system) that has functions which return the possible values of
switches and other command line "entries", like the following parameters for a
PC-based file DUMP routine I recently wrote:

  type bases is (hex, ascii, octal);
  function address_format return bases;
  function file_to_dump return string;

Then your "main" routine calls these functions, no matter what the external
environment is.  NOW comes the "non-portable" interface, where the actual
BODIES of those functions above must call the OS-specific routines to determine
the command line arguments.  It would conceptually be possible to write two
external interface routines:

(1) one which works under the "unit test" mode and runs on the "host" system
such as the VAX or PC-compatible

(2) another which runs only on the target hardware, perhaps an embedded 80186
or 1750A machine.

Ada is NOT the first language where information hiding has advantages...  We
must THINK in terms of portability and encapsulation during DESIGN. At CODE
time is too late!  <"plop-plop"... stepping of off soap box>

Ray
-----
Ray Harwood           |Data Basix           |Associate Faculty,    
Voice: (602)721-1988  |PO Box 18324         |   Pima Community College
FAX:   (602)721-7240  |Tucson, AZ 85731     |Instructor in Ada and Pascal
CompuServe: 76645,1370|AppleLink: DATA.BASIX|Internet: rharwood@east.pima.edu

  reply	other threads:[~1991-04-30  5:40 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1991-04-23 20:51 Data Files David M. Onder
1991-04-25 14:37 ` Ralph Reid III
1991-04-29 22:16   ` Command line arguments Erland Sommarskog
1991-04-30  5:40     ` rharwood [this message]
1991-04-30 13:57     ` Steve Gabrilowitz
1991-05-01 23:57       ` Charles H. Sampson
1991-05-02 11:20         ` Joe Orost
1991-05-06 21:56           ` Erland Sommarskog
     [not found] <Pine.GSO.3.96.981011153419.29087A-100000@yeager.cs.Buffalo.EDU>
1998-10-11  0:00 ` Matthew Heaney
1998-10-12  0:00 ` Dale Stanbrough
1998-10-12  0:00   ` Tom Moran
  -- strict thread matches above, loose matches on Subject: below --
2000-05-28  0:00 Command Line arguments Pedro Diaz Jimenez
2000-05-28  0:00 ` Robert Dewar
2000-05-29  0:00 ` Gautier
2000-05-29  0:00   ` Antonio Dur�n Dom�nguez
2000-05-29  0:00     ` Jeff Carter
2000-05-29  0:00     ` Robert Dewar
2000-05-30  0:00     ` Antonio Dur�n Dom�nguez
2000-05-30  0:00     ` Gautier
2000-05-31  0:00 ` Alfred Hilscher
replies disabled

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