Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Dec 2000 07:17:12 -0500 (EST)
From:      Thomas David Rivers <rivers@dignus.com>
To:        dmmiller@cvzoom.net, steve@sse0691.bri.hp.com
Cc:        stable@FreeBSD.ORG
Subject:   Re: lint
Message-ID:  <200012051217.HAA56851@lakes.dignus.com>
In-Reply-To: <20001205111025.I22946@moose.bri.hp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Steve Roome <steve@sse0691.bri.hp.com> wrote:
> No doubt there's hundreds of people who subscribe to these lists who
> think it's a remarkably simple job, and then they'll be those who
> think it's hard but acheivable. I think it would, in reality require a
> lot of very clued up people working closely together for an indefinite
> period of time.
> 
> A bit like some folks who have been writing something called gcc for a
> while now.
> 
> 	Steve

 Well, 

  Having been "in the compiler business" for almost 17 years; let me
 see if I can be an "expert witness" here.   (Let me list as
 my qualifications being the primary author of one commercial C
 compiler - see http://www.dignus.com, and being a compiler group
 manager for some years, as well as compiler technical-guy.)

  Fortunately, C is a language that one person can get their hands
 around - it takes a little over a man year before the first compiler
 (with bugs) sees the light of day.

  There are several decisions that have to be made before you
 can start, which affect your overall design; e.g. what style
 of parser; what style of intermediate code; what style of code
 generator, etc...

  Then, you'll want to add an optimizer.

  Then, you'll need to properly handle debugging information.

  Then, you'll want to add C++ (this is a *very* big project
 in and of itself.)

  Oh - and don't forget - the FreeBSD kernel makes heavy use
 of gcc extensions; we'll need those.

  Oh - and don't forget - FreeBSD runs on a couple of platforms,
 please write compilers for all of those...

  Oh - and don't forget - CVSup is written in Modula - do we
 want Modula,FORTRAN,COBOL,... front-ends?

  Furthermore, more and more universities are no longer teaching
 compiler theory (which is a shame) because we all have gcc now...
 You can imagine that there is considerable learning investment
 in become a compiler-guy; usually at least a few years experience
 in optimization theory alone.  (Parsing theory, which many of
 the remaining university classes focus on, is the `easy' part :-) )

  As to original AT&T compilers; I recently discovered that Plan9 is 
 now "open source" (I haven't looked at the license myself) so it may
 provide compile sources - it seems to be C only, but does support
 many platforms.  From my perusal of the web pages; it's not clear
 if the source includes the compiler source...

  Also, there is the national compiler infrastructure project;
 put together by several universities, to supply and experiment
 on various pieces of compile technology... (i.e. with an existing
 infrastructure, it's easy to "try out" different things.)  I believe
 they have nice C front-ends; but their C++ front-end has to be
 purchased (again, C++ is very hard.)

  My ultimate point is; we should be thrilled to have gcc - it's
 a remarkable achievement considering that it is open-sourced (and
 many of the contributors are not paid.)   If we want to start
 a new project to write a new open-source compiler suite (which
 isn't a bad idea), then we should gather together the right team
 (virtually, at least) and somehow make it so they can do this
 work in earnest (i.e. pay them.)

  The WATCOM stuff may be a good start; we'll need to see what
 comes out of it (particularly in the C++ arena.)

	- Dave Rivers -

--
rivers@dignus.com                         Work: (919) 676-0847
Get your mainframe (370) `C' compiler at http://www.dignus.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200012051217.HAA56851>