On 09/21/2015 11:37 PM, Dave Wade wrote:
If you wanted portability then Fortran or Cobol were
pretty much all
you had. Whilst there may have been C compilers you probably didn't
have one, certainly in the world of commerce. Which is why our X.25
code was in Fortran..
There's always PRIMOS, the operating system used on Prime minis being in
FORTRAN. Although they later adopted PL/I, both versions of the system
definition ("include") files were maintained.
Then there are specific dialects of FORTRAN; e.g. LRLTRAN used at
Lawrence Livermore. Much of the STAR-OS was written in that--but said
dialect, in addition to having numerous extensions, also allowed inline
machine code statements.
National's assembler for Programmable Array Logic (PAL) chips, I
believe, was distributed as a FORTRAN product. Several microprocessor
cross-assemblers were likewise offered by their manufacturers.
In the 1960-70s, you really couldn't have a truly "portable" FORTRAN
product unless you hewed to USA BASIC FORTRAN IV, which is a very small
subset of what an F77 programmer might recognize as FORTRAN. But back
in the 60's, every manufacturer had its own variety of FORTRAN,
including (IIRC), UNIVAC's own "FORTRAN V". FORTRAN II in general was a
free-for-all, varying between machines from the same manufacturer.
------------------
On a somewhat related note, the earliest published work that I can find
that describes translation from one computer language to machine code
involving an intermediate language is the "FOR TRANSIT" for the IBM 650.
A manual scan by Paul Pierce is here:
http://www.piercefuller.com/collect/650man/fortransit.pdf
Basically, FORTRAN source is converted to 650 IT, which is then compiled
to SOAP, which performs the assembly function.
For those wondering about the notion of an "optimizing" assembler, one
has to realize that 650 instructions were executed from a drum and were
of the "1+1" addressing type. Calculating the optimal address of the
next instruction was very tedious and a perfect task for automatic
optimization.
--Chuck