The original author of the GNU C Compiler (GCC) is Richard Stallman, the founder of the GNU project. In 1984 The GNU project was started to create a complete Unix-like operating system as free software, in order to promote freedom and co-operation among computer users and programmers. GCC system produced by the GNU Project for supporting various programming languages.
Every Unix-like operating system needs a C compiler, and as there were no free compilers in existence at that time. GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and Linux, including the Linux kernel. The GNU project had to develop one from scratch. The work was funded by donations from individuals and companies to the free software foundation. This means a non-profit organization set up to support the work of the GNU project.
The first release of GCC was made in 1987. This was a significant breakthrough, being the first portable ANSI C optimizing compiler released as free software. Since that time GCC has become one of the most important tools in the development of free software. A major revision of the compiler came with the 2.0 series in 1992, which added the ability to compile C++. In 1997 an experimental branch of the compiler (EGCS) was created, to improve c++ support. Following this work, EGCS was adopted as the new main-line of GCC development, and these features became widely available in the 3.0 release of GCC in 2001. The current stable version of GCC is 9.2, which was released on August 12, 2019.
Over time GCC has been extended to support many additional languages, including Fortran, ADA, JAVA, and Objective-C. The acronym GCC is now used to refer to the “GNU Compiler Collection”. So, Its development is guided by the GCC Steering Committee, A group composed of representatives from GCC user communities in the industry, research, and academia.
Features of GCC
Firstly, GCC is a portable compiler. It runs on most platforms available today and can produce output for many types of processors. In addition to the processors used in Personal Computers, it also supports microcontrollers, DSPs and 64-bit CPUs.
GCC is not only a native compiler, but it can also cross-compile any program, producing executable files for a different system from the one used by GCC itself. This allows the software to be compiled for embedded systems which are not capable of running a compiler. GCC is written in C with a strong focus on portability and can compile itself. So, it can be adapted to new systems easily.
Furthermore, GCC has multiple language frontends, for parsing different languages. So, Programs in each language can be compiled or cross-compiled for any architecture. For example, in an ADA program can be compiled for a microcontroller or a C program for a supercomputer.
As a result, GCC has a modular design, allowing support for new languages and architectures to be added. Adding a new language front-end to GCC enables the use of that language on any architecture, provided that the necessary run-time facilities are available. Similarly, adding support for a new architecture makes it available to all languages.
Finally and most importantly, GCC is free software, distributed under the GNU General Public License (GPL). So, this means you have the freedom to use and to modify GCC, as with all GNU software. Furthermore, you have the freedom to share the enhancements you make to GCC. As a result of this freedom, you can also make use of enhancements to GCC developed by others.
Several companies make a business out of supplying and supporting GCC ports to various platforms.