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