]>
Commit | Line | Data |
---|---|---|
7adcbafe | 1 | @c Copyright (C) 1988-2022 Free Software Foundation, Inc. |
b64a6a11 JM |
2 | @c This is part of the GCC manual. |
3 | @c For copying conditions, see the file gcc.texi. | |
4 | ||
5 | @node G++ and GCC | |
6ad79f18 | 6 | @chapter Programming Languages Supported by GCC |
b64a6a11 | 7 | |
6ad79f18 JM |
8 | @cindex GCC |
9 | @cindex GNU Compiler Collection | |
10 | @cindex GNU C Compiler | |
11 | @cindex Ada | |
b4c522fa | 12 | @cindex D |
b64a6a11 | 13 | @cindex Fortran |
7a938933 | 14 | @cindex Go |
6ad79f18 | 15 | @cindex Objective-C |
46e34f96 | 16 | @cindex Objective-C++ |
6ad79f18 JM |
17 | GCC stands for ``GNU Compiler Collection''. GCC is an integrated |
18 | distribution of compilers for several major programming languages. These | |
f2b22065 | 19 | languages currently include C, C++, Objective-C, Objective-C++, |
900b1c27 | 20 | Fortran, Ada, D, and Go. |
6ad79f18 JM |
21 | |
22 | The abbreviation @dfn{GCC} has multiple meanings in common use. The | |
23 | current official meaning is ``GNU Compiler Collection'', which refers | |
24 | generically to the complete suite of tools. The name historically stood | |
25 | for ``GNU C Compiler'', and this usage is still common when the emphasis | |
26 | is on compiling C programs. Finally, the name is also used when speaking | |
27 | of the @dfn{language-independent} component of GCC: code shared among the | |
f80352b8 | 28 | compilers for all supported languages. |
6ad79f18 JM |
29 | |
30 | The language-independent component of GCC includes the majority of the | |
31 | optimizers, as well as the ``back ends'' that generate machine code for | |
32 | various processors. | |
33 | ||
34 | @cindex COBOL | |
35 | @cindex Mercury | |
6ad79f18 JM |
36 | The part of a compiler that is specific to a particular language is |
37 | called the ``front end''. In addition to the front ends that are | |
38 | integrated components of GCC, there are several other front ends that | |
87677ac7 | 39 | are maintained separately. These support languages such as |
8a36672b | 40 | Mercury, and COBOL@. To use these, they must be built together with |
6ad79f18 | 41 | GCC proper. |
b64a6a11 JM |
42 | |
43 | @cindex C++ | |
44 | @cindex G++ | |
b64a6a11 JM |
45 | @cindex Ada |
46 | @cindex GNAT | |
6ad79f18 JM |
47 | Most of the compilers for languages other than C have their own names. |
48 | The C++ compiler is G++, the Ada compiler is GNAT, and so on. When we | |
49 | talk about compiling one of those languages, we might refer to that | |
50 | compiler by its own name, or as GCC@. Either is correct. | |
b64a6a11 JM |
51 | |
52 | @cindex compiler compared to C++ preprocessor | |
53 | @cindex intermediate C version, nonexistent | |
54 | @cindex C intermediate output, nonexistent | |
6ad79f18 JM |
55 | Historically, compilers for many languages, including C++ and Fortran, |
56 | have been implemented as ``preprocessors'' which emit another high | |
57 | level language such as C@. None of the compilers included in GCC are | |
58 | implemented this way; they all generate machine code directly. This | |
59 | sort of preprocessor should not be confused with the @dfn{C | |
46e34f96 ZL |
60 | preprocessor}, which is an integral feature of the C, C++, Objective-C |
61 | and Objective-C++ languages. |