[Info-vax] Whither VMS?
glen herrmannsfeldt
gah at ugcs.caltech.edu
Sun Oct 4 08:55:07 EDT 2009
Bob Eager <rde42 at spamcop.net> wrote:
(snip)
<> Because C came from the Unix environment and putting the Macro
<> Pre-preocessor in the compiler would have violated the paradigm Unix was
<> based on. Thus, "cpp" and, of course, M4 as separate programs.
< It was also necessary for space reasons. The amount of address space
< available on a PDP-11 with non-separate I/D space was only 64K. Of that,
< 8K (one page register) was set aside (AFAIR) for system communication,
< leaving 56K for programs.
The OS/360 PL/I (F) compiler was also designed to run on a 64K system.
(20K for OS/360 PCP, 44K for the compiler.) It also used a separate
pass for the preprocessor, it requested.
< c0 (the preprocessor) handled macros and includes. c1 was the compiler,
< which generated dreadful code as there was no space for the code
< generator to do optimisation. c2 was the optimiser, which did a lot of
< clever stuff. I think c1 was the limiting factor, needing pretty well all
< the available address space for program, and data structures.
< Just took a look - c1 was 15K, c1 was 21K, and c2 was 8K (approx). That's
< just code and static data. c1 would need a lot of dynamically allocated
< storage for symbol tables, parse trees, etc.
PL/I (F) will keep the symbol table on disk if necessary. At the
end of each compilation it indicates the available memory requried
to keep the symbol table off disk.
-- glen
More information about the Info-vax
mailing list