mirror of git://gcc.gnu.org/git/gcc.git
* gfortran.texi (GNU Fortran and GCC): Rewrite
From-SVN: r120428
This commit is contained in:
parent
e6b38f67a1
commit
de43c613ab
|
|
@ -1,3 +1,7 @@
|
||||||
|
2007-01-03 Brooks Moses <brooks.moses@codesourcery.com>
|
||||||
|
|
||||||
|
* gfortran.texi (GNU Fortran and GCC): Rewrite
|
||||||
|
|
||||||
2007-01-03 Brooks Moses <brooks.moses@codesourcery.com>
|
2007-01-03 Brooks Moses <brooks.moses@codesourcery.com>
|
||||||
|
|
||||||
* gfortran.texi (Introduction): Lower "Part I:
|
* gfortran.texi (Introduction): Lower "Part I:
|
||||||
|
|
|
||||||
|
|
@ -351,49 +351,35 @@ programs will call it for you.
|
||||||
@node GNU Fortran and GCC
|
@node GNU Fortran and GCC
|
||||||
@section GNU Fortran and GCC
|
@section GNU Fortran and GCC
|
||||||
@cindex GNU Compiler Collection
|
@cindex GNU Compiler Collection
|
||||||
|
@cindex GCC
|
||||||
|
|
||||||
GCC used to be the GNU ``C'' Compiler,
|
GNU Fortran is a part of GCC, the @dfn{GNU Compiler Collection}. GCC
|
||||||
but is now known as the @dfn{GNU Compiler Collection}.
|
consists of a collection of front ends for various languages, which
|
||||||
GCC provides the GNU system with a very versatile
|
translate the source code into a language-independent form called
|
||||||
compiler middle end (shared optimization passes),
|
@dfn{GENERIC}. This is then processed by a common middle end which
|
||||||
and back ends (code generators) for many different
|
provides optimization, and then passed to one of a collection of back
|
||||||
computer architectures and operating systems.
|
ends which generate code for different computer architectures and
|
||||||
The code of the middle end and back end are shared by all
|
operating systems.
|
||||||
compiler front ends that are in the GNU Compiler Collection.
|
|
||||||
|
|
||||||
A GCC front end is essentially a source code parser
|
Functionally, this is implemented with a driver program (@command{gcc})
|
||||||
and an intermediate code generator. The code generator translates the
|
which provides the command-line interface for the compiler. It calls
|
||||||
semantics of the source code into a language independent form called
|
the relevant compiler front-end program (e.g., @command{f951} for
|
||||||
@dfn{GENERIC}.
|
Fortran) for each file in the source code, and then calls the assembler
|
||||||
|
and linker as appropriate to produce the compiled output. In a copy of
|
||||||
|
GCC which has been compiled with Fortran language support enabled,
|
||||||
|
@command{gcc} will recognize files with @file{.f}, @file{.f90}, and
|
||||||
|
@file{.f95} extensions as Fortran source code, and compile it
|
||||||
|
accordingly. A @command{gfortran} driver program is also provided,
|
||||||
|
which is identical to @command{gcc} except that it automatically links
|
||||||
|
the Fortran runtime libraries into the compiled program.
|
||||||
|
|
||||||
The parser takes a source file written in a
|
This manual specifically documents the Fortran front end, which handles
|
||||||
particular computer language, reads and parses it,
|
the programming language's syntax and semantics. The aspects of GCC
|
||||||
and tries to make sure that the source code conforms to
|
which relate to the optimization passes and the back-end code generation
|
||||||
the language rules.
|
are documented in the GCC manual; see
|
||||||
Once the correctness of a program has been established,
|
@ref{Top,,Introduction,gcc,Using the GNU Compiler Collection (GCC)}.
|
||||||
the compiler will build a data structure known as the
|
The two manuals together provide a complete reference for the GNU
|
||||||
@dfn{Abstract Syntax tree},
|
Fortran compiler.
|
||||||
or just @dfn{AST} or ``tree'' for short.
|
|
||||||
This data structure represents the whole program
|
|
||||||
or a subroutine or a function.
|
|
||||||
The ``tree'' is passed to the GCC middle end,
|
|
||||||
which will perform optimization passes on it. The optimized AST is then
|
|
||||||
handed off too the back end which assembles the program unit.
|
|
||||||
|
|
||||||
Different phases in this translation process can be,
|
|
||||||
and in fact @emph{are} merged in many compiler front ends.
|
|
||||||
GNU Fortran has a strict separation between the
|
|
||||||
parser and code generator.
|
|
||||||
|
|
||||||
The goal of the GNU Fortran project is to build a new front end for GCC.
|
|
||||||
Specifically, a Fortran 95 front end.
|
|
||||||
In a non-@command{gfortran} installation,
|
|
||||||
@command{gcc} will not be able to compile Fortran source code
|
|
||||||
(only the ``C'' front end has to be compiled if you want to build GCC,
|
|
||||||
all other languages are optional).
|
|
||||||
If you build GCC with @command{gfortran}, @command{gcc} will recognize
|
|
||||||
@file{.f/.f90/.f95} source files and accepts Fortran specific
|
|
||||||
command line options.
|
|
||||||
|
|
||||||
|
|
||||||
@c ---------------------------------------------------------------------
|
@c ---------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue