]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/doc/frontends.texi
Update copyright years.
[thirdparty/gcc.git] / gcc / doc / frontends.texi
CommitLineData
f1717362 1@c Copyright (C) 1988-2016 Free Software Foundation, Inc.
38d07189 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
9b83a715 6@chapter Programming Languages Supported by GCC
38d07189 7
9b83a715 8@cindex GCC
9@cindex GNU Compiler Collection
10@cindex GNU C Compiler
11@cindex Ada
38d07189 12@cindex Fortran
e440a328 13@cindex Go
38d07189 14@cindex Java
9b83a715 15@cindex Objective-C
749e254d 16@cindex Objective-C++
9b83a715 17GCC stands for ``GNU Compiler Collection''. GCC is an integrated
18distribution of compilers for several major programming languages. These
749e254d 19languages currently include C, C++, Objective-C, Objective-C++, Java,
e440a328 20Fortran, Ada, and Go.
9b83a715 21
22The abbreviation @dfn{GCC} has multiple meanings in common use. The
23current official meaning is ``GNU Compiler Collection'', which refers
24generically to the complete suite of tools. The name historically stood
25for ``GNU C Compiler'', and this usage is still common when the emphasis
26is on compiling C programs. Finally, the name is also used when speaking
27of the @dfn{language-independent} component of GCC: code shared among the
149f5e18 28compilers for all supported languages.
9b83a715 29
30The language-independent component of GCC includes the majority of the
31optimizers, as well as the ``back ends'' that generate machine code for
32various processors.
33
34@cindex COBOL
35@cindex Mercury
36@cindex Pascal
37The part of a compiler that is specific to a particular language is
38called the ``front end''. In addition to the front ends that are
39integrated components of GCC, there are several other front ends that
40are maintained separately. These support languages such as Pascal,
b3d47662 41Mercury, and COBOL@. To use these, they must be built together with
9b83a715 42GCC proper.
38d07189 43
44@cindex C++
45@cindex G++
38d07189 46@cindex Ada
47@cindex GNAT
9b83a715 48Most of the compilers for languages other than C have their own names.
49The C++ compiler is G++, the Ada compiler is GNAT, and so on. When we
50talk about compiling one of those languages, we might refer to that
51compiler by its own name, or as GCC@. Either is correct.
38d07189 52
53@cindex compiler compared to C++ preprocessor
54@cindex intermediate C version, nonexistent
55@cindex C intermediate output, nonexistent
9b83a715 56Historically, compilers for many languages, including C++ and Fortran,
57have been implemented as ``preprocessors'' which emit another high
58level language such as C@. None of the compilers included in GCC are
59implemented this way; they all generate machine code directly. This
60sort of preprocessor should not be confused with the @dfn{C
749e254d 61preprocessor}, which is an integral feature of the C, C++, Objective-C
62and Objective-C++ languages.