GNU Fortran

Last updated
GNU Fortran
Developer(s) GNU Project
Initial releaseApril 20, 2005;19 years ago (2005-04-20) [1]
Stable release
13.2 [2] [1] / 27 July 2023;10 months ago (2023-07-27)
Repository
Written in C, C++
Operating system Cross-platform
Platform GNU
Type Compiler
License GNU General Public License (version 3 or later)
Website gcc.gnu.org/fortran/ OOjs UI icon edit-ltr-progressive.svg

GNU Fortran (GFortran) is an implementation of the Fortran programming language in the GNU Compiler Collection (GCC), an open-source and free software project maintained in the open-source programmer community under the umbrella of the GNU Project. It is the successor to previous compiler versions in the suite, such as g77.

Contents

History

As of July 2020, GFortran had almost fully implemented Fortran 2008, and about 20% of Fortran 2018. [3] [4] It supports the OpenMP [5] multi-platform shared memory multiprocessing, up to its latest version (4.5). [6] GFortran is also compatible with most language extensions and compilation options supported by g77, [7] and many other popular extensions of the Fortran language. [8]

Since GCC version 4.0.0, released in April 2005, [9] GFortran has replaced the older g77 compiler. The new Fortran front-end for GCC was rewritten from scratch, [10] after the principal author and maintainer of g77, Craig Burley, decided in 2001 to stop working on the g77 front end. [11] GFortran forked off from g95 in January 2003, which itself started in early 2000. The two codebases have "significantly diverged" according to GCC developers, [12] and g95 has not been maintained since 2013. Since 2010 the front-end, like the rest of the GCC project, has been migrated to C++, where it was previously written in C. [13] Development of the compiler by volunteer users continues [14] and each new version of GCC incorporates better support for the latest language standards and bug fixes.

See also

Related Research Articles

<span class="mw-page-title-main">GNU</span> Free software collection

GNU is an extensive collection of free software, which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popularly known as Linux. Most of GNU is licensed under the GNU Project's own General Public License (GPL).

<span class="mw-page-title-main">GNU Compiler Collection</span> Free and open-source compiler for various programming languages

The GNU Compiler Collection (GCC) is a collection of compilers from the GNU Project that support various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free software under the GNU General Public License. GCC is a key component of the GNU toolchain which is used for most projects related to GNU and the Linux kernel. With roughly 15 million lines of code in 2019, GCC is one of the biggest free programs in existence. It has played an important role in the growth of free software, as both a tool and an example.

<span class="mw-page-title-main">GNU Debugger</span> Source-level debugger

The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, Assembly, C, C++, D, Fortran, Haskell, Go, Objective-C, OpenCL C, Modula-2, Pascal, Rust, and partially others.

<span class="mw-page-title-main">XEmacs</span>

XEmacs is a graphical- and console-based text editor which runs on almost any Unix-like operating system as well as Microsoft Windows. XEmacs is a fork, based on a version of GNU Emacs from the late 1980s. Any user can download, use, and modify XEmacs as free software available under the GNU General Public License version 2 or any later version.

The GNU Compiler for Java (GCJ) is a discontinued free compiler for the Java programming language. It was part of the GNU Compiler Collection.

<span class="mw-page-title-main">GNAT</span> Free-software compiler for the Ada programming language

GNAT is a free-software compiler for the Ada programming language which forms part of the GNU Compiler Collection (GCC). It supports all versions of the language, i.e. Ada 2012, Ada 2005, Ada 95 and Ada 83. Originally its name was an acronym that stood for GNU NYU Ada Translator, but that name no longer applies. The front-end and run-time are written in Ada.

<span class="mw-page-title-main">GNU Project</span> Free software project

The GNU Project is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its license.

<span class="mw-page-title-main">MinGW</span> Free and open-source software for developing applications in Microsoft Windows

MinGW, formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications.

<span class="mw-page-title-main">OpenMP</span> Open standard for parallelizing

OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, FreeBSD, HP-UX, Linux, macOS, and Windows. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior.

<span class="mw-page-title-main">LLVM</span> Compiler backend for multiple programming languages

LLVM is a set of compiler and toolchain technologies that can be used to develop a frontend for any programming language and a backend for any instruction set architecture. LLVM is designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes. The name LLVM originally stood for Low Level Virtual Machine, though the project has expanded and the name is no longer officially an initialism.

<span class="mw-page-title-main">SCons</span>

SCons is a computer software build tool that automatically analyzes source code file dependencies and operating system adaptation requirements from a software project description and generates final binary executables for installation on the target operating system platform. Its function is analogous to the traditional GNU build system based on the make utility and the autoconf tools.

<span class="mw-page-title-main">Watcom C/C++</span>

Watcom C/C++ is an integrated development environment (IDE) product from Watcom International Corporation for the C, C++, and Fortran programming languages. Watcom C/C++ was a commercial product until it was discontinued, then released under the Sybase Open Watcom Public License as Open Watcom C/C++. It features tools for developing and debugging code for DOS, OS/2, Windows, and Linux operating systems, which are based upon 16-bit x86, 32-bit IA-32, or 64-bit x86-64 compatible processors.

<span class="mw-page-title-main">Code::Blocks</span> Free, open source, cross-platform IDE

Code::Blocks is a free, open-source, cross-platform IDE that supports multiple compilers including GCC, Clang and Visual C++. It is developed in C++ using wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities and features are defined by the provided plugins. Currently, Code::Blocks is oriented towards C, C++, and Fortran. It has a custom build system and optional Make support.

<span class="mw-page-title-main">GNU Pascal</span> Compiler for the Pascal programming language

GNU Pascal (GPC) is a Pascal compiler composed of a frontend to GNU Compiler Collection (GCC), similar to the way Fortran and other languages were added to GCC. GNU Pascal is ISO 7185 compatible, and it implements most of the ISO 10206 Extended Pascal standard.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

G95 is a free, portable, open-source Fortran 95 compiler. It implements the Fortran 95 standard, part of the Fortran 2003 standard, as well as some old and new extensions including features for the Fortran 2008 standard like coarray Fortran. It also supports the F programming language subset.

Clang is a compiler front end for the C, C++, Objective-C, and Objective-C++ programming languages, as well as the OpenMP, OpenCL, RenderScript, CUDA, SYCL, and HIP frameworks. It acts as a drop-in replacement for the GNU Compiler Collection (GCC), supporting most of its compilation flags and unofficial language extensions. It includes a static analyzer, and several code analysis tools.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

Mingw-w64 is a free and open-source suite of developments tools that generate Portable Executable (PE) binaries for Microsoft Windows. It was forked in 2005–2010 from MinGW.

References

  1. 1 2 "GCC Releases – GNU Project – Free Software Foundation (FSF)". GNU Project. Retrieved 2019-02-23.
  2. "GCC 13 Release Series - GNU Project - Free Software Foundation (FSF)". gcc.gnu.org. Retrieved 2023-09-11.
  3. "Chart of Fortran 2003 Features supported by GNU Fortran". GNU . Retrieved 2009-06-25.
  4. "Chart of Fortran 2008 Features supported by GNU Fortran". GNU . Retrieved 2009-06-25.
  5. "Parallel Computing in Fortran with OpenMP".
  6. "OpenMP (The GNU Fortran Compiler)".
  7. "Discussion of incompatibilities between g77 and gfortran". GNU . Retrieved 2007-01-26.
  8. "Extensions implemented in GNU Fortran (The GNU Fortran Compiler)".
  9. "GCC 4.0 Release Series - GNU Project".
  10. "GFORTRAN and G77 - the GNU Fortran 95 Compiler".
  11. "Why I'm Stopping My G77 Work".
  12. "The other GCC-based Fortran compiler". GNU . Retrieved 2007-04-11.
  13. "GCC allows C++ – to some degree - the H Open: News and Features".
  14. "Letter from GCC/gfortran contributor with a brief history". Fortran Discourse. 2023-02-12. Retrieved 2023-02-24.