190075Sobrien@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2132718Skan@c 1999, 2000, 2001, 2004 Free Software Foundation, Inc. 390075Sobrien@c This is part of the GCC manual. 490075Sobrien@c For copying conditions, see the file gcc.texi. 590075Sobrien 690075Sobrien@node G++ and GCC 7132718Skan@chapter Programming Languages Supported by GCC 890075Sobrien 9132718Skan@cindex GCC 10132718Skan@cindex GNU Compiler Collection 11132718Skan@cindex GNU C Compiler 12132718Skan@cindex Ada 1390075Sobrien@cindex Fortran 1490075Sobrien@cindex Java 15117395Skan@cindex treelang 16132718SkanGCC stands for ``GNU Compiler Collection''. GCC is an integrated 17132718Skandistribution of compilers for several major programming languages. These 18220755Sdimlanguages currently include C, C++, Java, Fortran, and Ada. 1990075Sobrien 20132718SkanThe abbreviation @dfn{GCC} has multiple meanings in common use. The 21132718Skancurrent official meaning is ``GNU Compiler Collection'', which refers 22132718Skangenerically to the complete suite of tools. The name historically stood 23132718Skanfor ``GNU C Compiler'', and this usage is still common when the emphasis 24132718Skanis on compiling C programs. Finally, the name is also used when speaking 25132718Skanof the @dfn{language-independent} component of GCC: code shared among the 26132718Skancompilers for all supported languages. 2790075Sobrien 28132718SkanThe language-independent component of GCC includes the majority of the 29132718Skanoptimizers, as well as the ``back ends'' that generate machine code for 30132718Skanvarious processors. 31132718Skan 32132718Skan@cindex COBOL 33132718Skan@cindex Mercury 34132718Skan@cindex Pascal 35132718SkanThe part of a compiler that is specific to a particular language is 36132718Skancalled the ``front end''. In addition to the front ends that are 37132718Skanintegrated components of GCC, there are several other front ends that 38132718Skanare maintained separately. These support languages such as Pascal, 39169689SkanMercury, and COBOL@. To use these, they must be built together with 40132718SkanGCC proper. 41132718Skan 4290075Sobrien@cindex C++ 4390075Sobrien@cindex G++ 4490075Sobrien@cindex Ada 4590075Sobrien@cindex GNAT 46132718SkanMost of the compilers for languages other than C have their own names. 47132718SkanThe C++ compiler is G++, the Ada compiler is GNAT, and so on. When we 48132718Skantalk about compiling one of those languages, we might refer to that 49132718Skancompiler by its own name, or as GCC@. Either is correct. 5090075Sobrien 5190075Sobrien@cindex compiler compared to C++ preprocessor 5290075Sobrien@cindex intermediate C version, nonexistent 5390075Sobrien@cindex C intermediate output, nonexistent 54132718SkanHistorically, compilers for many languages, including C++ and Fortran, 55132718Skanhave been implemented as ``preprocessors'' which emit another high 56132718Skanlevel language such as C@. None of the compilers included in GCC are 57132718Skanimplemented this way; they all generate machine code directly. This 58132718Skansort of preprocessor should not be confused with the @dfn{C 59220755Sdimpreprocessor}, which is an integral feature of the C and C++ languages. 60