1@c Copyright (C) 1988-2016 Free Software Foundation, Inc. 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 6@chapter Programming Languages Supported by GCC 7 8@cindex GCC 9@cindex GNU Compiler Collection 10@cindex GNU C Compiler 11@cindex Ada 12@cindex Fortran 13@cindex Go 14@cindex Java 15@cindex Objective-C 16@cindex Objective-C++ 17GCC stands for ``GNU Compiler Collection''. GCC is an integrated 18distribution of compilers for several major programming languages. These 19languages currently include C, C++, Objective-C, Objective-C++, Java, 20Fortran, Ada, and Go. 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 28compilers for all supported languages. 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, 41Mercury, and COBOL@. To use these, they must be built together with 42GCC proper. 43 44@cindex C++ 45@cindex G++ 46@cindex Ada 47@cindex GNAT 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. 52 53@cindex compiler compared to C++ preprocessor 54@cindex intermediate C version, nonexistent 55@cindex C intermediate output, nonexistent 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 61preprocessor}, which is an integral feature of the C, C++, Objective-C 62and Objective-C++ languages. 63