time to write a compiler

meissner@osf.org
Mon, 5 Nov 90 11:53:11 -0500

          From comp.compilers

Related articles
time to write a compiler roman@gaudi.ccsf.caltech.edu (1990-10-31)
time to write a compiler meissner@osf.org (1990-11-05)
Re: time to write a compiler holliday@csgrad.cs.vt.edu (1990-11-06)
Re: time to write a compiler marcel@vlsi.cs.caltech.edu (1990-11-06)
Re: time to write a compiler ge@sci.kun.nl (1990-11-07)
Re: time to write a compiler bright@nazgul.UUCP (1990-11-08)
Re: time to write a compiler pohua@polaris.crhc.uiuc.edu (1990-11-09)
Re: time to write a compiler beckmann@das.harvard.edu (1990-11-09)
| List of all articles for this month |

Newsgroups: comp.compilers
From: meissner@osf.org
In-Reply-To: roman@gaudi.ccsf.caltech.edu's message of 31 Oct 90 18:06:32 GMT
Keywords: Fortran, question
Organization: Compilers Central
Date: Mon, 5 Nov 90 11:53:11 -0500

| From: roman@gaudi.ccsf.caltech.edu (Roman Salvador)
|
| I would like to find out the time it takes (more or less) to write a
| compiler (i.e. a Fortran 90 one).


It depends on lots of different factors, such as:


the skill level and experience of the person(s) doing the
work;


the complexity of the language proper;


the complexity of the library (if provided);


the tools available;


doing 'just' a front end and using an existing back end, or
writing the whole ball of wax;


the target machine(s);


the desired optimization level(s).


As another data point, I wrote the front end for the Data General MV/Eclipse
C compiler from scratch to plug into the common language code generator and
optimizer. It took about 9 months from the start of the project until I had
a reasonable compiler (and another couple of years until it was rock solid).
I seem to recall the library took about 4-6 months for the first cut, but
since I didn't do much of this work, and we eventually rewrote a lot of it to
tie in with a UNIX emulation library developed elsewhere, I may be off on
this. I had a free hand in writing the front end, since the previous person
on the project had left before doing much code development and I nuked what
was left.


Some things that I remember about this:


I had to develop the compiler in PL/1, and it took some time
to learn the language.


I had to relearn C, since I had last used the V6 C compiler,
and the language had changed since then.


I was still a new programmer (I had graduated about 1-2 years
previously).


The parser generator that I used had some severe restrictions
in the early days, since it was originally run in 16-bit mode,
and could not handle 16 levels of precedence + the rest of C,
so I had to do operator precedence in PL/1 rather than in the
grammar.


The reference manual (K&R) had some subtle flaws in it (you
couldn't derive a function which returned a pointer to a
function and took some arguments from the grammar).


Convincing the code generator and optimizer to add new features
that C needed (notably the ?: operator).


Convincing the debugger to expand the common symbol table
format, to handle user defined types, and C specific items.


--
Michael Meissner email: meissner@osf.org phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA, 02142
--


Post a followup to this message

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