Hacker News new | ask | show | jobs
by Decabytes 899 days ago
So I recently took at broad look at some of the old C compilers and wrote an article about it. One interesting thing of note is a lot of compilers in the mid 70s compilers like the Small-C compiler actually only compiled a subset of the C programming language. This was because the 8-bit systems were much more resource constrained the then PDP-11s that C was developed on, and C was difficult to compile. It's hard to believe computers once struggled to run C code, and that definitely contributes to why you see more Pascal, Assembly, and Basic during that time period
4 comments

> So I recently took at broad look at some of the old C compilers and wrote an article about it.

Do you have a link or reference? Doesn't appear to be on your blog?

https://www.deusinmachina.net/t/programming

I don't think the Small-C compiler was all that popular with professionals (or even hobbyists). It was incomplete, slow and produced (on the Z80) poor code.

C was indeed not ideal for 8 bitter (hence the astonishment around this topic). CP/M istself was written in PL/0 (I suppose with a sprinkle of assembler). Macro assemblers were popular then for shrink-wrap software. Custom software was often done in BASIC.

Professionals used cross compilers (or cross assemblers) when they had a chance. Microsoft BASIC e.g. was developed on a PDP-10.

Also: these old compilers ran on the target system. If all features are supported, the compiler might not fit into memory, and need many passes to work.
I know, from personal experience, that a lot of C64 games were written on PCs, cross-assembled and squirted to the C64 target.

This included graphics.

Circa 1989 so it was the backend of C64 development.

Also UNIX, VAX and CP/M systems, and not only in regards to C64.
Which is why I say the whole Kernigahm's rant regarding Pascal is kind of bogus.

On one side most Pascal dialects did not have the issues he had with raw ISO Pascal.

And outside UNIX server rooms, all C implementations were also dialects anyway, so it should count both ways.

By the way, besides Small-C, have you also considered RatC, another dialect of it?