Re: A C style compiler. (Derek B. Noonburg)
4 May 1998 23:03:20 -0400

          From comp.compilers

Related articles
A C style compiler. (Matthew Webb) (1998-04-29)
Re: A C style compiler. (1998-05-04)
Re: A C style compiler. (Francois-Rene Rideau) (1998-05-04)
| List of all articles for this month |

From: (Derek B. Noonburg)
Newsgroups: comp.compilers
Date: 4 May 1998 23:03:20 -0400
Organization: Verio Northern California's Usenet News Service
References: 98-04-110
Keywords: design

Matthew Webb <> writes:

> I am writting a OS in assembly language but to speed up the main
> development of it I would like to create assembly 'macro'
> assembly/compiler. Basically I would like to go half way from assembly
> to C. I need to create my own format as it is a new OS and does not
> have a platform executable yet.
> ...
> [My advice is "don't do that", since it's entirely possible to write
> a small, tight OS predominantly in C, e.g. QNX. -John]

Sure, but writing everything from scratch can be *fun*. (On the other
hand, if you're doing this because you think you'll get faster code or
something, John's right -- don't bother.)

You might want to take a look at the old Small C compiler. It was a
very simple C-subset compiler that generated 8080 (I think) assembly.
The compiler was written in Small C itself, but it should give you
lots of ideas. Ripping out the parts you want and translating to
assembly should be pretty simple. At the very least, you'll learn a
lot by reading through the code. (It doesn't use any of the stuff
from the Dragon Book that probably confused you.)

I actually half-finished a compiler for the TMS9900, written in
assembly, and based on Small C, back in high school.

The entire thing, source code and all, was published in Dr. Dobb's
Journal, many years ago. Maybe you can track it down at a library.
There's also a book called by James E. Hendrix called _A Small C
Compiler: Language, Usage, Theory, and Design_, though says
it's out of print.

- Derek
[It's reappeared on CD-ROM, see the FAQ. -John]


Post a followup to this message

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