From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Implementing an Ada compiler and libraries.
Date: Wed, 09 May 2007 16:48:01 -0400
Date: 2007-05-09T16:48:01-04:00 [thread overview]
Message-ID: <wccfy65n2pq.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 1178721451.073700.10730@y80g2000hsf.googlegroups.com
Lucretia <lucretia9@lycos.co.uk> writes:
> But I'm interested in seeing how I can get the compiler to not have to
> reparse other source files (when with'd) in order to compile a unit.
Presumably by storing information (symbol tables and whatnot) in
permanent disk files. If you do that, I think you should design it as a
_pure_ optimization. That is, the system should behave exactly as if
everything is compiled from source every time, except that it's faster.
Don't mimic the Ada 83 compilers that had a notion of "compiling things
into the library", where a source file sitting right there in the source
directory is ignored, unless "compiled into...".
If you do this, you need to design a permanent (on disk) representation
that is small. I think it's possible, but it's not easy -- the
"obvious" representation of symbol tables will be 10 times larger than
the source code. If it's 10 times larger, then it defeats the purpose
-- reading it in from disk will be slower than re-analyzing the original
source code.
You also suggested storing the info in the object files. Yes, that is
possible, given a reasonable object file format that allows arbitrary
information to be stored, in addition to the actual machine code.
Building a complete Ada implementation is a daunting task (many
person-years). You said you're doing a subset of Ada 2005, and I assume
you're doing this "just for fun". Keep your subset small, or you will
never finish.
- Bob
next prev parent reply other threads:[~2007-05-09 20:48 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-09 14:37 Implementing an Ada compiler and libraries Lucretia
2007-05-09 16:51 ` Dmitry A. Kazakov
2007-05-09 17:21 ` Lucretia
2007-05-10 7:59 ` Dmitry A. Kazakov
2007-05-10 8:51 ` Duncan Sands
2007-05-10 17:39 ` Lucretia
2007-05-10 18:06 ` Lucretia
2007-05-10 19:30 ` Dmitry A. Kazakov
2007-05-11 7:14 ` Gautier
2007-05-11 17:39 ` Lucretia
2007-05-11 17:43 ` Lucretia
2007-05-11 18:20 ` Robert A Duff
2007-05-11 18:49 ` Lucretia
2007-05-11 20:34 ` Georg Bauhaus
2007-05-11 22:37 ` Lucretia
2007-05-11 22:06 ` Robert A Duff
2007-05-11 22:41 ` Lucretia
2007-05-16 19:40 ` Randy Brukardt
2007-05-09 20:48 ` Robert A Duff [this message]
2007-05-10 3:38 ` Lucretia
2007-05-16 19:58 ` Randy Brukardt
2007-05-09 21:15 ` Gautier
2007-05-10 3:39 ` Lucretia
2007-05-10 15:34 ` Stefan Bellon
2007-05-10 16:25 ` Jean-Pierre Rosen
2007-05-10 17:07 ` Ludovic Brenta
2007-05-10 17:14 ` Stefan Bellon
2007-05-10 16:37 ` Ludovic Brenta
2007-05-10 16:43 ` Stefan Bellon
2007-05-10 16:49 ` Ludovic Brenta
2007-05-10 17:02 ` Stefan Bellon
2007-05-10 19:57 ` Jacob Sparre Andersen
2007-05-10 20:31 ` Simon Wright
2007-05-10 17:37 ` Pascal Obry
2007-05-11 10:09 ` Ludovic Brenta
2007-05-11 16:33 ` Pascal Obry
2007-05-10 17:36 ` Pascal Obry
2007-05-10 17:42 ` Lucretia
2007-05-10 17:34 ` Pascal Obry
2007-05-10 17:48 ` Lucretia
2007-05-10 20:01 ` Duncan Sands
2007-05-10 21:00 ` Pascal Obry
2007-05-10 21:00 ` Pascal Obry
2007-05-11 11:04 ` Duncan Sands
2007-05-13 12:03 ` Ludovic Brenta
2007-05-11 8:39 ` Georg Bauhaus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox