Re: Pascal vs. linkers, was The History of the ALGOL Effort

glen herrmannsfeldt <gah@ugcs.caltech.edu>
12 Sep 2006 00:01:46 -0400

          From comp.compilers

Related articles
[2 earlier articles]
Re: The History of the ALGOL Effort Juergen.Kahrs@vr-web.de (=?ISO-8859-1?Q?J=FCrgen_Kahrs?=) (2006-08-18)
Re: The History of the ALGOL Effort p_ludemann@yahoo.com (Peter Ludemann) (2006-08-29)
Re: The History of the ALGOL Effort henry@spsystems.net (2006-09-11)
Re: Pascal vs. linkers, was The History of the ALGOL Effort walter@bytecraft.com (Walter Banks) (2006-09-11)
Re: Pascal vs. linkers, was The History of the ALGOL Effort Juergen.Kahrs@vr-web.de (=?ISO-8859-1?Q?J=FCrgen_Kahrs?=) (2006-09-11)
Re: Pascal vs. linkers, was The History of the ALGOL Effort Peter_Flass@Yahoo.com (Peter Flass) (2006-09-11)
Re: Pascal vs. linkers, was The History of the ALGOL Effort gah@ugcs.caltech.edu (glen herrmannsfeldt) (2006-09-12)
Re: Pascal vs. linkers, was The History of the ALGOL Effort bonzini@gnu.org (Paolo Bonzini) (2006-09-12)
Re: Pascal vs. linkers, was The History of the ALGOL Effort Peter_Flass@Yahoo.com (Peter Flass) (2006-09-12)
Re: Pascal vs. linkers, was The History of the ALGOL Effort news@tom.iecc.com (2006-09-12)
Re: Pascal vs. linkers, was The History of the ALGOL Effort wclodius@lanl.gov (2006-09-12)
Re: Pascal vs. linkers, was The History of the ALGOL Effort cbarron413@adelphia.net (Carl Barron) (2006-09-13)
Re: Pascal vs. linkers, was The History of the ALGOL Effort walter@bytecraft.com (Walter Banks) (2006-09-16)
[1 later articles]
| List of all articles for this month |

From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: 12 Sep 2006 00:01:46 -0400
Organization: Compilers Central
References: 06-08-082 06-08-086 06-08-105 06-08-138 06-09-050 06-09-051
Keywords: history, linker, comment

Walter Banks wrote:
> C and PL360 grew out of separate roots. I think the reason that
> C had separate compilation was as least as much that the PDP11
> memory wouldn't hold enough symbols.


Well, linking and separate compilation has been around, as far as I
know, from the beginnings of Fortran. I believe one of the reasons is
to save time by not recompiling routines that didn't change.


There is a story, I believe in Brooks' "Mythical Man Month" about the
development of the OS/360 linker, something like the finest quality
static linker ever built. It is, as far as I know, one of the few
that can read its own output and actually do "linkage editing". That
is, one can replace one CSECT in an already linked load module,
without complete recompilation. As Brooks says, though, this was at
the time when the need for such a linker was going away, and the
result was that it was slower than the compilers.


> This was solved with link editors and separate compilation. A
> culture has grown out of C's linking traditions that remains long
> after linking is a necessity. I have never heard an overwhelming
> reason why C should have separate compilation.


To me, C has some similarities to Fortran. It seems to me more than
the other languages that would be used on small machines at the time.
The ability to write library routines in addition to any that are part
of the standard library seems useful enough. That could be different
than combining separate object modules, but isn't much different.


> Developing and selling C cross compilers for a living, I have found
> that linking issues have high support requirements and conventional
> linkers impact much of the gains that application wide optimization
> brings to the application.


Separate compilation is also convenient for mixed language programming.


-- glen


[Relocating loaders go back to the 1940s. They're older than
assemblers. I'm not sure when the first linker, as opposed to loader,
appeared, but I would be surprised if it were as late as
Fortran. -John]


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.