OSDN Git Service

* MAINTAINERS: Remove chill maintainers.
[pf3gnuchains/gcc-fork.git] / gcc / doc / frontends.texi
1 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
2 @c 1999, 2000, 2001 Free Software Foundation, Inc.
3 @c This is part of the GCC manual.
4 @c For copying conditions, see the file gcc.texi.
5
6 @node G++ and GCC
7 @chapter Compile C, C++, Objective-C, Ada, Fortran, or Java
8
9 @cindex Objective-C
10 @cindex Fortran
11 @cindex Java
12 @cindex Ada
13 Several versions of the compiler (C, C++, Objective-C, Ada, 
14 Fortran, and Java) are integrated; this is why we use the name
15 ``GNU Compiler Collection''.  GCC can compile programs written in any of these
16 languages.  The Ada, Fortran, and Java compilers are described in
17 separate manuals.
18
19 @cindex GCC
20 ``GCC'' is a common shorthand term for the GNU Compiler Collection.  This is both
21 the most general name for the compiler, and the name used when the
22 emphasis is on compiling C programs (as the abbreviation formerly
23 stood for ``GNU C Compiler'').
24
25 @cindex C++
26 @cindex G++
27 When referring to C++ compilation, it is usual to call the compiler
28 ``G++''.  Since there is only one compiler, it is also accurate to call
29 it ``GCC'' no matter what the language context; however, the term
30 ``G++'' is more useful when the emphasis is on compiling C++ programs.
31
32 @cindex Ada
33 @cindex GNAT
34 Similarly, when we talk about Ada compilation, we usually call the
35 compiler ``GNAT'', for the same reasons.
36
37 We use the name ``GCC'' to refer to the compilation system as a
38 whole, and more specifically to the language-independent part of the
39 compiler.  For example, we refer to the optimization options as
40 affecting the behavior of ``GCC'' or sometimes just ``the compiler''.
41
42 Front ends for other languages, such as Mercury and Pascal exist but
43 have not yet been integrated into GCC@.  These front ends, like that for C++,
44 are built in subdirectories of GCC and link to it.  The result is an
45 integrated compiler that can compile programs written in C, C++,
46 Objective-C, or any of the languages for which you have installed front
47 ends.
48
49 In this manual, we only discuss the options for the C, Objective-C, and
50 C++ compilers and those of the GCC core.  Consult the documentation
51 of the other front ends for the options to use when compiling programs
52 written in other languages.
53
54 @cindex compiler compared to C++ preprocessor
55 @cindex intermediate C version, nonexistent
56 @cindex C intermediate output, nonexistent
57 G++ is a @emph{compiler}, not merely a preprocessor.  G++ builds object
58 code directly from your C++ program source.  There is no intermediate C
59 version of the program.  (By contrast, for example, some other
60 implementations use a program that generates a C program from your C++
61 source.)  Avoiding an intermediate C representation of the program means
62 that you get better object code, and better debugging information.  The
63 GNU debugger, GDB, works with this information in the object code to
64 give you comprehensive C++ source-level editing capabilities
65 (@pxref{C,,C and C++,gdb.info, Debugging with GDB}).
66
67 @c FIXME!  Someone who knows something about Objective-C ought to put in
68 @c a paragraph or two about it here, and move the index entry down when
69 @c there is more to point to than the general mention in the 1st par.