This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [using gcc book] ch1 objective-c blurb


Chris Devers <cdevers@pobox.com> writes:

> If it would put things in perspective, feel free to read all of chapter
> one from <http://devers.homeip.net:8080/gccbook/edited/gcc_chd.pdf>.
> The chapter is short, but not quite short enough to be appropriate to
> paste into an email to the list.  If anyone wants the plain ascii or
> texinfo offlist, feel free to ask me for the current snapshot.
>
> In light of the comments about all these implementation details, I'm
> starting to wonder if chapter one is terse to the point of being
> inaccurate, and saying anything at all about ObjC will server to only
> further muddy the waters... :-/

I'd say it's confusingly worded in its entirety, and contains a number
of statements which are no longer true or no longer relevant.  I think
a complete rewrite is in order -- suggested text below.

Note generally that treelang is not a full-blown programming language.
It's a demonstration front end, of primary interest to GCC developers,
and is not built or installed by default.  It should be mentioned only
briefly in the user manual, and not given equal footing with languages
intended for users of GCC.

----

@chapter Programming Languages Supported by GCC

GCC stands for ``GNU Compiler Collection.''  It is an integrated
distribution of compilers for six major programming languages (at the
time of writing): C, C++, Objective-C, Ada, Fortran, and Java.  The
abbreviation @dfn{GCC} has three meanings in common use.  It is the
name for the collection as a whole.  It is also the name used when the
emphasis is on compiling C programs; this is historical.  (The
abbreviation formerly stood for ``GNU C Compiler.'')  Finally, it is
the name used when speaking of the @dfn{language-independent}
component of GCC: code shared among the compilers for all six
languages.  This component includes the majority of the optimizers,
and the so-called ``back ends'' that generate machine code for various
processors.

Most of the compilers for languages other than C have their own names:
the C++ compiler is G++, the Ada compiler is GNAT, and so on.  When we
talk about compiling one of those languages, we might refer to that
compiler by its own name, or as GCC@.  Either is correct.

The part of a compiler that is specific to a particular language is
called the ``front end.'' In addition to the six front ends that are
integrated components of GCC, there are several other front ends that
are maintained separately.  These support languages such as Pascal,
Mercury, and COBOL.  To use these, they must be built together with
GCC proper.

Historically, compilers for many languages, including C++ and Fortran,
have been implemented as ``preprocessors'' which emit another high
level language, often C@.  None of the compilers included in GCC are
implemented this way; they all generate machine code directly.  (This
sort of preprocessor should not be confused with the @dfn{C
preprocessor}, which is an integral feature of the C, C++, and
Objective-C languages.)

----

How's that?

zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]