frontends.texi: Rewrite.

2004-03-21  Zack Weinberg  <zack@codesourcery.com>
            Chris Devers  <cdevers@pobox.com>
            Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/frontends.texi: Rewrite.
	* doc/gcc.texi: Update last modification date.

f:
	* g77.texi: Update link to "G++ and GCC".

treelang:
	* treelang.texi: Update link to "G++ and GCC".

From-SVN: r79777
This commit is contained in:
Joseph Myers 2004-03-21 13:33:25 +00:00
parent cfb453f3da
commit 6ad79f188d
7 changed files with 66 additions and 60 deletions

View File

@ -1,3 +1,10 @@
2004-03-21 Zack Weinberg <zack@codesourcery.com>
Chris Devers <cdevers@pobox.com>
Joseph S. Myers <jsm@polyomino.org.uk>
* doc/frontends.texi: Rewrite.
* doc/gcc.texi: Update last modification date.
2004-03-21 Josef Zlomek <zlomekj@suse.cz>
* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug

View File

@ -4,67 +4,57 @@
@c For copying conditions, see the file gcc.texi.
@node G++ and GCC
@chapter Compile C, C++, Objective-C, Ada, Fortran, Java, or treelang
@cindex Objective-C
@cindex Fortran
@cindex Java
@cindex Ada
@cindex treelang
Several versions of the compiler (C, C++, Objective-C, Ada,
Fortran, Java and treelang) are integrated; this is why we use the name
``GNU Compiler Collection''. GCC can compile programs written in any of these
languages. The Ada, Fortran, Java and treelang compilers are described in
separate manuals.
@chapter Programming Languages Supported by GCC
@cindex GCC
``GCC'' is a common shorthand term for the GNU Compiler Collection. This is both
the most general name for the compiler, and the name used when the
emphasis is on compiling C programs (as the abbreviation formerly
stood for ``GNU C Compiler'').
@cindex GNU Compiler Collection
@cindex GNU C Compiler
@cindex Ada
@cindex Fortran
@cindex Java
@cindex Objective-C
@cindex treelang
GCC stands for ``GNU Compiler Collection''. GCC is an integrated
distribution of compilers for several major programming languages. These
languages currently include C, C++, Objective-C, Java, Fortran, and Ada.
The abbreviation @dfn{GCC} has multiple meanings in common use. The
current official meaning is ``GNU Compiler Collection'', which refers
generically to the complete suite of tools. The name historically stood
for ``GNU C Compiler'', and this usage is still common when the emphasis
is on compiling C programs. Finally, the name is also used when speaking
of the @dfn{language-independent} component of GCC: code shared among the
The language-independent component of GCC includes the majority of the
optimizers, as well as the ``back ends'' that generate machine code for
various processors.
@cindex COBOL
@cindex Mercury
@cindex Pascal
The part of a compiler that is specific to a particular language is
called the ``front end''. In addition to the 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.
@cindex C++
@cindex G++
When referring to C++ compilation, it is usual to call the compiler
``G++''. Since there is only one compiler, it is also accurate to call
it ``GCC'' no matter what the language context; however, the term
``G++'' is more useful when the emphasis is on compiling C++ programs.
@cindex Ada
@cindex GNAT
Similarly, when we talk about Ada compilation, we usually call the
compiler ``GNAT'', for the same reasons.
We use the name ``GCC'' to refer to the compilation system as a
whole, and more specifically to the language-independent part of the
compiler. For example, we refer to the optimization options as
affecting the behavior of ``GCC'' or sometimes just ``the compiler''.
Front ends for other languages, such as Mercury and Pascal exist but
have not yet been integrated into GCC@. These front ends, like that for C++,
are built in subdirectories of GCC and link to it. The result is an
integrated compiler that can compile programs written in C, C++,
Objective-C, or any of the languages for which you have installed front
ends.
In this manual, we only discuss the options for the C, Objective-C, and
C++ compilers and those of the GCC core. Consult the documentation
of the other front ends for the options to use when compiling programs
written in other languages.
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.
@cindex compiler compared to C++ preprocessor
@cindex intermediate C version, nonexistent
@cindex C intermediate output, nonexistent
G++ is a @emph{compiler}, not merely a preprocessor. G++ builds object
code directly from your C++ program source. There is no intermediate C
version of the program. (By contrast, for example, some other
implementations use a program that generates a C program from your C++
source.) Avoiding an intermediate C representation of the program means
that you get better object code, and better debugging information. The
GNU debugger, GDB, works with this information in the object code to
give you comprehensive C++ source-level editing capabilities
(@pxref{C,,C and C++,gdb.info, Debugging with GDB}).
@c FIXME! Someone who knows something about Objective-C ought to put in
@c a paragraph or two about it here, and move the index entry down when
@c there is more to point to than the general mention in the 1st par.
Historically, compilers for many languages, including C++ and Fortran,
have been implemented as ``preprocessors'' which emit another high
level language such as 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.

View File

@ -97,7 +97,7 @@ Boston, MA 02111-1307 USA
@sp 2
@center Richard M. Stallman
@sp 3
@center Last updated 2 January 2004
@center Last updated 21 March 2004
@sp 1
@center for GCC @value{version-GCC}

View File

@ -1,3 +1,7 @@
2004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
* g77.texi: Update link to "G++ and GCC".
2004-03-21 Gerald Pfeifer <gerald@pfeifer.com>
* g77.texi (Aligned Data): Remove obsolete paragraph including a

View File

@ -2,7 +2,7 @@
@c %**start of header
@setfilename g77.info
@set last-update 2003-05-13
@set last-update 2004-03-21
@set copyrights-g77 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
@include root.texi
@ -799,8 +799,8 @@ files and accepts Fortran-specific command-line options, plus some
command-line options that are designed to cater to Fortran users
but apply to other languages as well.
@xref{G++ and GCC,,Compile C; C++; Objective-C; Ada; Fortran;
or Java,gcc,Using the GNU Compiler Collection (GCC)},
@xref{G++ and GCC,,Programming Languages Supported by GCC,gcc,Using
the GNU Compiler Collection (GCC)},
for information on the way different languages are handled
by the GCC compiler (@command{gcc}).

View File

@ -1,3 +1,7 @@
2004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
* treelang.texi: Update link to "G++ and GCC".
2004-02-20 Richard Henderson <rth@redhat.com>
* Make-lang.in (treelang-warn): Add -Wno-variadic-macros.

View File

@ -12,8 +12,8 @@
@set version-treelang 1.0
@set last-update 2001-07-30
@set copyrights-treelang 1995,1996,1997,1998,1999,2000,2001,2002
@set last-update 2004-03-21
@set copyrights-treelang 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
@set email-general gcc@@gcc.gnu.org
@set email-bugs gcc-bugs@@gcc.gnu.org or bug-gcc@@gnu.org
@ -885,7 +885,8 @@ files and accepts Treelang-specific command-line options, plus some
command-line options that are designed to cater to Treelang users
but apply to other languages as well.
@xref{G++ and GCC,,Compile C; C++; or Objective-C,GCC,Using and Porting GCC},
@xref{G++ and GCC,,Programming Languages Supported by GCC,GCC,Using
the GNU Compiler Collection (GCC)},
for information on the way different languages are handled
by the GCC compiler (@code{gcc}).