Aucbvax.5929
fa.info-vax
utcsrgv!utzoo!decvax!ucbvax!info-vax
Sat Jan 23 11:08:37 1982
Language portability
>From gwyn@utexas-11 Sat Jan 23 11:03:53 1982
I've been concerned with program porting for several years, so I decided
to add my 2 cents worth:

Fortran applications tend to be portable.  Unfortunately, DEC Fortrans
extend the language in non-standard ways, and VMS Fortran encourages the
coder to use VAX-specific system calls in-line.  Of course, one can
still write portable code, but it requires a deliberate attempt to do so.
I don't worry about the difference in floating-point accuracy etc. since
all languages will have that problem, and there are well-known solutions
for it.

Pascal is much less portable than people imagine.  The common subset of
Pascal that is supported by most compilers is generally inadequate for
serious system programming or large projects.  After converting the code
from Ratfor to Pascal for "Software Tools in Pascal" (Addison-Wesley,
1981), Brian Kernighan wrote Bell Labs CSTR #100 entitled "Why Pascal Is
Not My Favorite Programming Language" to summarize the deficiencies of
the portable standard Pascal subset.

C is not machine-dependent, although one can (and many do) write machine-
specific code in C.  This is good for real systems work, and the "lint"
verifier does a good job of flagging potentially non-portable constructs.
I consider "lint" part of the compiler, just as IBM had two PL/I compilers
and CDC had two Fortran compilers.  C is almost strongly-typed if "lint"
is considered part of the compiler, but not so strongly that one can't
handle arrays of a priori unknown length as procedure arguments (as in
Pascal).  I know of C compilers for the following CPU architectures:
BBN C Machine   CDC Cyber       PDP-11  VAX-11  Perkin-Elmer    IBM 370
Western Electric 32-bitter      8080    Prime   M68000  Z8000   DEC-10/20
in fact, most of the interesting machines.  Around spring I expect DEC
may announce a C for VMS, but you can get one now from Whitesmiths (no
stdio library last I heard, most unfortunately, but they supply a similar
one of their own design).

Bliss is perhaps better than C insofar as portability goes, but I don't
know of very many architectures supporting Bliss.  The PDP-11 Bliss even
cannot run on a PDP-11!

One can also run Joe Sventek's portable operating system on top of many
vendors' real OSs.  This looks very much like a UNIX at the user level.
Many RSX users obtain a decent interface by this means, with the ability
to use the DEC-specific RSX utilities, etc.
-------

-----------------------------------------------------------------
gopher://quux.org/ conversion by John Goerzen <[email protected]>
of http://communication.ucsd.edu/A-News/


This Usenet Oldnews Archive
article may be copied and distributed freely, provided:

1. There is no money collected for the text(s) of the articles.

2. The following notice remains appended to each copy:

The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996
Bruce Jones, Henry Spencer, David Wiseman.