|[10 earlier articles]|
|Re: History and evolution of compilers firstname.lastname@example.org (Norman Hilton) (1997-10-10)|
|Re: History and evolution of compilers email@example.com (1997-10-14)|
|Re: History and evolution of compilers firstname.lastname@example.org (1997-10-14)|
|Re: History and evolution of compilers email@example.com (1997-10-16)|
|Re: History and evolution of compilers firstname.lastname@example.org (1997-10-17)|
|Re: History and evolution of compilers email@example.com (Michael McKernan) (1997-11-02)|
|Re: History and evolution of compilers firstname.lastname@example.org (1997-11-03)|
|Date:||3 Nov 1997 21:10:16 -0500|
|References:||97-09-130 97-10-008 97-10-017 97-10-033 97-10-049 97-10-069 97-11-022|
The moderator opined:
>[The compiler generated pretty good code on the PDP-6, but did badly on
>the 360 because it didn't know anything about the 360's base register
>addressing. I can believe that Fortran H was horribly late, since all
>the other OS/360 software was, too. -John]
Digitek Corporation was founded by Ryan/McFarland and I believe they
started out by producing Fortran compilers using their proprietary POP
language. Their Fortran G compiler which they produced for IBM was a
small, fast compiler.
I don't know how you can say it did badly on the 360 because "it
didn't know anything about the 360's base registers". They always hand
tailored their compilers to the target architecture. How can they
produce any object code for a base addressing machine if they didn't
take that into consideration?
Digitek also produced compilers for JOVIAL and Pl/1.
I believe Digitek Corp. folded and Ryan/MacFarland formed another
company which produced Fortran/2 for the PC.
[Jeez, who'd have thought people would get so touchy about a 30 year
old Fortran compiler? I used Fortran G a lot, it compiled fast, the
diagnostics were adequate (although without Fortran H's magisterial
quality), and the code was reliable. But the output code really was
rotten -- rather than establishing a base register for the code of a
routine, it'd always load an address pointer and do a branch register.
That's what I meant about not knowing about the 360's base registers.
As I recall, it also didn't try to reuse values in registers even in
trivial cases, so you got a certain amount of "Store A" followed by
"Load A", sometimes into the same register. On the other hand, it did
run on a 64K machine which I imagine cramped its style. -John]
Return to the
Search the comp.compilers archives again.