[Info-vax] Whither VMS?

Bob Eager rde42 at spamcop.net
Sun Oct 4 08:24:08 EDT 2009


On Sun, 04 Oct 2009 11:17:17 +0000, Bill Gunshannon wrote:

>> Macro is an assembly language on steroids.  Bliss is an assembly
>> language on steroids.  C needs Altoids, not steroids, because it
>> stinks.  It doesn't even have a decent macro capability.
> 
> 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.

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.

-- 
Use the BIG mirror service in the UK:
 http://www.mirrorservice.org




More information about the Info-vax mailing list