~ubuntu-branches/debian/stretch/gcc-6-doc/stretch

« back to all changes in this revision

Viewing changes to .pc/from-debian-gcc-gdc-6-doc.diff/gcc/doc/frontends.texi

  • Committer: Package Import Robot
  • Author(s): Guo Yixuan (郭溢譞)
  • Date: 2016-05-06 21:45:33 UTC
  • Revision ID: package-import@ubuntu.com-20160506214533-1ro717riyxkhd4kn
Tags: 6.1.0-1
* New upstream branch. (Closes: #822667)
* Synced patches with gcc-6, 6.1.1-1.
* Use https URIs for Vcs-*.
* Bumped standards version to 3.9.8, no changes needed.
* Update debian/copyright.

Show diffs side-by-side

added added

removed removed

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