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