Related articles |
---|
[QUERY] A "ignorant newbie" question about compiler-writing. synaptik@why.net (1997-01-02) |
Re: [QUERY] A "ignorant newbie" question about compiler-writing. dennis@netcom.com (1997-01-03) |
Re: [QUERY] A "ignorant newbie" question about compiler-writing. jlilley@empathy.com (1997-01-03) |
Re: [QUERY] A "ignorant newbie" question about compiler-writing. robison@kai.com (Arch Robison) (1997-01-03) |
Re: [QUERY] A "ignorant newbie" question about compiler-writing. mw@ipx2.rz.uni-mannheim.de (1997-01-04) |
Re: [QUERY] A "ignorant newbie" question about compiler-writing. kanze@gabi-soft.fr (1997-01-29) |
Re: [QUERY] A "ignorant newbie" question about compiler-writing. kanze@gabi-soft.fr (1997-01-29) |
Re: [QUERY] A "ignorant newbie" question about compiler-writing. mw@ipx2.rz.uni-mannheim.de (1997-01-30) |
[11 later articles] |
From: | dennis@netcom.com (Dennis Yelle) |
Newsgroups: | comp.compilers |
Date: | 3 Jan 1997 23:10:38 -0500 |
Organization: | Very little |
References: | 97-01-013 |
Keywords: | design |
synaptik@why.net (synaptik) writes:
>My question is... what is it that makes compiler development so
>difficult? Forgive my ignorance, but I have always thought it would
>be a fun project, but then become disillusioned when I pick up a book
>on compiler theory and it doesn't appear "straight forward."
>
>To me, the process seems simple:
>
>--Write a preprocessor that "digests" the source (include-file
>insertion, commment-and-whitespace removal, and macro expansion)
>--Write a "compiler" that parses the digested 'C' source into the
>targetted format.
>
>(In my case, the targetted format would be a byte-code definition; I
>want to implement this in a quasi-interpretted fashion.)
You are right, the C preprocessor is actually a simple thing.
Especially since ANSI told us that it doesn't know about sizeof(). If
you have never done anything like this before, I think that a stand
alone C preprocessor would be a nice project.
The C language itself is surprisingly complex. It seems simple to me
because I learned it after I learned Fortran, Pascal, and Assembler
for a few machines. But, actually, there is a lot to it. It just
seems simple because much of it seems so natural, for those of us with
the "right" background. You have a good idea about generating some
kind of byte-code to be interpreted. This eliminates two anoying
problems: generating actual machine instructions, and learning the
object file format that the linker wants to see.
As to your actual question: "What is so difficult about writing a C
compiler?" I am reminded that when the first spreadsheet programs
were released some of thought that writing a spreadsheet was a weekend
project. And for some of us it was.
The only way YOU will find out what is so difficult for YOU is to
actually start the project. Since I don't know your abilities, and I
don't know how much spare time you have, I really can't give you the
answer. But, as I said above: If you have never done anything like
this before, I think that a stand alone C preprocessor would be a nice
project.
--
dennis@netcom.com (Dennis Yelle)
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.