FACTOID # 41: On the probability of not reaching 40 graph, the top 34 countries are all African.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > GNU Compiler Collection
GNU Compiler Collection
Developer: The GNU Project
Latest release: 4.2.0 / May 13, 2007
OS: Unix-like
Genre: Compiler
License: GPL
Website: gcc.gnu.org

The GNU Compiler Collection (usually shortened to GCC) is a set of programming language compilers produced by the GNU Project. It is free software distributed by the Free Software Foundation (FSF) under the GNU General Public License (GNU GPL) and GNU Lesser General Public License (GNU LGPL), and is a key component of the GNU toolchain. It is the standard compiler for the free software Unix-like operating systems and Apple Mac OS X. Image File history File links GCC_logo. ... Software development is the translation of a user need or marketing goal into a software product. ... GNU (pronounced ) is a computer operating system composed entirely of free software. ... A software release is the distribution, whether public or private, of an initial or new and upgraded version of a computer software product. ... May 13 is the 133rd day of the year (134th in leap years) in the Gregorian calendar. ... Year 2007 (MMVII) is the current year, a common year starting on Monday of the Gregorian calendar and the AD/CE era. ... // An operating system (OS) is a set of computer programs that manage the hardware and software resources of a computer. ... Diagram of the relationships between several Unix-like systems A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. ... Computer software can be organized into categories based on common function, type, or field of use. ... A diagram of the operation of a typical multi-language, multi-target compiler. ... A software license is a legal agreement which may take the form of a proprietary or gratuitous license as well as a memorandum of contract between a producer and a user of computer software. ... The GNU logo The GNU General Public License (GNU GPL or simply GPL) is a widely-used free software license, originally written by Richard Stallman for the GNU project. ... A website (alternatively, Web site) is a collection of Web pages, images, videos and other digital assets that is hosted on a Web server, usually accessible via the Internet or a LAN. A Web page is a document, typically written in HTML, that is almost always accessible via HTTP, a... A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ... A diagram of the operation of a typical multi-language, multi-target compiler. ... GNU (pronounced ) is a computer operating system composed entirely of free software. ... Clockwise from top: The logo of the GNU Project (the GNU head), the Linux kernel mascot Tux the Penguin, and the FreeBSD daemon Free software is a term coined by Richard Stallman and the Free Software Foundation[1] to refer to software that can be used, studied, and modified without... The Free Software Foundation (FSF) is a non-profit corporation founded in October 1985 by Richard Stallman to support the free software movement (free as in freedom), and in particular the GNU project. ... The GNU logo The GNU General Public License (GNU GPL or simply GPL) is a widely-used free software license, originally written by Richard Stallman for the GNU project. ... GNU logo The GNU Lesser General Public License (formerly the GNU Library General Public License) is a free software license published by the Free Software Foundation. ... The GNU toolchain is a blanket term given to the programming tools produced by the GNU project. ... Diagram of the relationships between several Unix-like systems A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. ... In computing, an operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations. ... Mac OS X (official IPA pronunciation: ) is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Inc. ...


Originally named the GNU C Compiler, because it only handled the C programming language, GCC 1.0 was released in 1987, and the compiler was extended to compile C++ in December of that year.[1] Front ends were later developed for Fortran, Pascal, Objective-C, Java, and Ada, among others.[2] C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose, high-level programming language with low-level facilities. ... Fortran (previously FORTRAN[1]) is a general-purpose[2], procedural,[3] imperative programming language that is especially suited to numeric computation and scientific computing. ... Wikibooks has a book on the topic of Pascal Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ... Objective-C, often referred to as ObjC and sometimes as Objective C or Obj-C, is a reflective, object-oriented programming language which adds Smalltalk-style messaging to C. Today it is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the... Java is a programming language originally developed by Sun Microsystems and released in 1995. ... Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull under contract to the United States Department of Defense during 1977–1983. ...

Contents

Overview

GCC was started by Richard Stallman in 1985. He extended an existing compiler to compile C. The compiler originally compiled Pastel, an extended, nonportable dialect of Pascal, and was written in Pastel. It was rewritten in C by Len Tower and Stallman,[3] and released in 1987[4] as the compiler for the GNU Project, in order to have a compiler available that was free software. Its development was supervised by the Free Software Foundation.[5] Richard Matthew Stallman (often abbreviated as RMS) (born March 16, 1953) is a software freedom activist, hacker, and software developer. ... Wikibooks has a book on the topic of Pascal Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ... Leonard Len H. Tower Jr. ... Clockwise from top: The logo of the GNU Project (the GNU head), the Linux kernel mascot Tux the Penguin, and the FreeBSD daemon Free software is a term coined by Richard Stallman and the Free Software Foundation[1] to refer to software that can be used, studied, and modified without... The Free Software Foundation (FSF) is a non-profit corporation founded in October 1985 by Richard Stallman to support the free software movement (free as in freedom), and in particular the GNU project. ...


In 1997, a group of developers, dissatisfied with the slow pace and closed nature of official GCC development, formed a project called EGCS (Experimental/Enhanced GNU Compiler System), which merged several experimental forks into a single project forked from GCC. EGCS development subsequently proved sufficiently more vital than GCC development, and EGCS was eventually "blessed" as the official version of GCC in April 1999. 1997 (MCMXCVII) was a common year starting on Wednesday of the Gregorian calendar. ... In computing, EGCS (Experimental/Enhanced GNU Compiler System, pronounced eggs) was a compiler system which forked from GCC in 1997 and was re-merged in April 1999. ... In software, a project fork or branch happens when a developer (or a group of them) takes code from a project and starts to develop independently of the rest. ... Year 1999 (MCMXCIX) was a common year starting on Friday (link will display full 1999 Gregorian calendar). ...


GCC is now maintained by a varied group of programmers from around the world. It has been ported to more kinds of processors and operating systems than any other compiler.[6] Die of an Intel 80486DX2 microprocessor (actual size: 12×6. ... // An operating system (OS) is a set of computer programs that manage the hardware and software resources of a computer. ...


As well as being the official compiler of the GNU system, including Linux-based variants (GNU/Linux), GCC has been adopted as the main compiler used to build and develop other operating systems, including the BSDs, Mac OS X, NeXTSTEP, and BeOS. Linux (IPA pronunciation: ) is a Unix-like computer operating system. ... Berkeley Software Distribution (BSD, sometimes called Berkeley Unix) is the Unix derivative distributed by the University of California, Berkeley, starting in the 1970s. ... Mac OS X (official IPA pronunciation: ) is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Inc. ... NEXTSTEP is the original object-oriented, multitasking operating system that NeXT Computer, Inc. ... BeOS is an operating system for personal computers which began development by Be Inc. ...


In addition to its use in free software, GCC is widely deployed as a tool in commercial and closed development environments. GCC is also used in popular embedded platforms like Symbian and Playstation.[citation needed] Symbian OS is an operating system with associated libraries, user interface frameworks and reference implementations of common tools, produced by Symbian. ... The Sony PlayStation ) is a video game console of the 32/64-bit era, first produced by Sony Computer Entertainment in the mid-1990s. ...


GCC is often the compiler of choice for developing software that is required to execute on a plethora of hardware. Differences in native compilers lead to difficulties in developing code that will compile correctly on all the compilers and build scripts that will run for all the platforms. By using GCC, the same parser is used for all platforms, so if the code compiles on one, chances are high that it compiles on all.


Languages

The standard compiler release 4.2 includes front ends for: C, C++ (G++), Java (GCJ), Ada (GNAT), Objective-C, Objective-C++, and Fortran (GFortran). Also available, but not in standard are: Modula-2, Modula-3, Pascal, PL/I, D, Mercury, VHDL. C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose, high-level programming language with low-level facilities. ... The GNU Compiler Collection (usually shortened to GCC) is a set of programming language compilers produced by the GNU Project. ... Java is a programming language originally developed by Sun Microsystems and released in 1995. ... The GNU Compiler for Java (GCJ) is a compiler for the Java programming language that is part of the GNU Compiler Collection (GCC). ... Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull under contract to the United States Department of Defense during 1977–1983. ... For German Naval Acoustic Torpedo see G7es torpedo, for the light jet aircraft see Folland Gnat and for the UAV see GNAT-750. ... Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language... Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language... Fortran (previously FORTRAN[1]) is a general-purpose[2], procedural,[3] imperative programming language that is especially suited to numeric computation and scientific computing. ... GFortran is the name of the GNU Fortran 95 compiler, which is part of the GNU Compiler Collection. ... Modula-2 is a computer programming language invented by Niklaus Wirth at ETH around 1978, as a successor to Modula, an intermediate language by him. ... This article or section does not adequately cite its references or sources. ... Wikibooks has a book on the topic of Pascal Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ... PL/I (Programming Language One, pronounced pee el one) is an imperative computer programming language designed for scientific, engineering, and business applications. ... D is an object-oriented, imperative, multiparadigm system programming language designed by Walter Bright of Digital Mars as a re-engineering of C++. This was done by re-designing many C++ features, and borrowing ideas from other programming languages. ... Mercury is a functional/logical programming language based on Prolog, but designed to be more useful for real-world programming problems. ... VHDL, or VHSIC Hardware Description Language, is commonly used as a design-entry language for field-programmable gate arrays and application-specific integrated circuits in electronic design automation of digital circuits. ...


The Fortran front end was g77 before version 4.0, which only supports Fortran 77. In newer versions, g77 was dropped in favor of the new GFortran front end that supports Fortran 95. A front end for CHILL was previously included, but has been dropped owing to a lack of maintenance. Fortran (also FORTRAN) is a statically typed, compiled, programming language originally developed in the 1950s and still heavily used for scientific computing and numerical computation half a century later. ... GFortran is the name of the GNU Fortran 95 compiler, which is part of the GNU Compiler Collection. ... Fortran (also FORTRAN) is a statically typed, compiled, programming language originally developed in the 1950s and still heavily used for scientific computing and numerical computation half a century later. ... Look up chill in Wiktionary, the free dictionary. ...


Architectures

GCC target processors as of version 4.1 include:

Lesser-known target processors supported in the standard release have included: DEC Alpha AXP 21064 Microprocessor The DEC Alpha, also known as the Alpha AXP, is a 64-bit RISC microprocessor originally developed and fabricated by Digital Equipment Corp (DEC). ... The ARM architecture (previously, the Advanced RISC Machine, and prior to that Acorn RISC Machine) is a 32-bit RISC processor architecture that is widely used in a number of embedded designs. ... The AVR®s are a family of RISC microcontrollers from Atmel. ... This article needs to be cleaned up to conform to a higher standard of quality. ... The 68HC12 (6812 or HC12 for short) is a 16-bit microcontroller family from Freescale Semiconductor. ... H8 is the name of a large family of 8-bit and 16-bit microcontrollers made by Renesas Technology Corp. ... It has been suggested that this article or section be merged with X86 assembly language. ... An Intel Pentium 4 chip; early Northwood build x86 or 80x86 is the generic name of a microprocessor architecture, first developed and manufactured by Intel. ... The AMD64 or x86-64 is a 64-bit processor architecture invented by AMD. It is a superset of the x86 architecture, which it natively supports. ... In computing, IA-64 (short for Intel Architecture-64) is a 64-bit processor architecture developed cooperatively by Intel Corporation and Hewlett-Packard (HP), and implemented in the Itanium and Itanium 2 processors. ... The Motorola 68000 is a 32-bit CISC microprocessor core designed and marketed by Freescale Semiconductor (formerly Motorola Semiconductor Products Sector). ... A MIPS R4400 microprocessor made by Toshiba. ... PA-RISC is a microprocessor architecture developed by Hewlett-Packards Systems & VLSI Technology Operation. ... The PDP-11 was a 16-bit minicomputer sold by Digital Equipment Corp. ... PowerPC is a RISC microprocessor architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM. Originally intended for personal computers, PowerPC CPUs have since become popular embedded and high-performance processors as well. ... The Renesas R8C is a 16-bit microcontroller that was developed as a smaller and cheaper version of the Renesas M16C . ... The Renesas M16C is a 16-bit embedded microcontroller originally developed and manufactured by Mitsubishi Electric Corporation. ... The title given to this article is incorrect due to technical limitations. ... Since December, 2001, IBM designates all its mainframes with the name eServer zSeries, with the e depicted in IBMs well-known red trademarked symbol. ... The SuperHichem (or SH) is brandname of a certain microcontroller and microprocessor architecture. ... Sun UltraSPARC II Microprocessor Sun UltraSPARC T1 (Niagara 8 Core) SPARC (Scalable Processor Architecture) is a RISC microprocessor instruction set architecture originally designed in 1985 by Sun Microsystems. ... VAX is a 32-bit computing architecture that supports an orthogonal instruction set (machine language) and virtual addressing (i. ...

  • D30V
  • DSP16xx
  • FR-30
  • FR-V
  • MCORE
  • MMIX
  • MN10200
  • MN10300

Additional processors have been supported by GCC versions maintained separately from the FSF version: AMD 29000 Microprocessor The AMD 29000, often simply 29k, was a popular family of RISC-based 32-bit microprocessors and microcontrollers from Advanced Micro Devices. ... Texas Instruments TMS320 is a blanket name for a series of digital signal processors from Texas Instruments. ... An ETRAX FS chip The ETRAX CRIS is a series of CPUs designed and manufactured by Axis Communications for use in embedded systems since 1993[1]. The name is an acronim of the chips features: Ethernet, Token Ring, AXis - Code Reduced Instruction Set. ... This page is about the Fujitsu Microprocessor. ... Intels i960 (or 80960) was a RISC-based microprocessor design that became popular during the early 1990s as an embedded microcontroller, becoming a best-selling CPU in that field, along with the competing AMD 29000. ... The Renesas M32R is a 32-bit embedded RISC microcontroller originally developed and manufactured by Mitsubishi Electric Corporation, succeeded by a FPGA-implemented MMUed M32R variant named mappi which runs Debian/GNU Linux, and is supported by the GNU Compiler Collection. ... The 68HC11 (6811 or HC11 for short) is a microcontroller (µC) family from Freescale Semiconductor, descended from the Motorola 6800 microprocessor, and a subfamily of the 68h family. ... MMIX is a 64-bit RISC virtual machine designed by Donald Knuth, with significant contributions by John Hennessy (who designed the MIPS chip) and Dick Sites (who was the architect of the Alpha chip). ... The 88000 (m88k for short) is a microprocessor design produced by Motorola. ... The 320xx or NS32000 is a series of microprocessors from National Semiconductor (NS, Natsemi). They were likely the first 32-bit general-purpose microprocessors on the market, but due to a number of factors never managed to become a major player. ... The ROMP or Research (Office Products Division) Micro Processor chip, also known in some circles as 032, was first in silicon in 1981 and was originally designed to be used in office products. ... The NEC Electronics Corporation V850 is a 32-bit embedded RISC microcontroller originally developed and manufactured by NEC, succeeded by V850 variants named V850E, and V850E2 which run uClinux, and is supported by GNU_Compiler_Collection. ... Xtensa is a 32-bit microprocessor designed by Tensilica. ...

When retargeting GCC to a new platform, bootstrapping is often used. The MicroBlaze is a soft processor core from Xilinx for use in Xilinx FPGAs. ... Nios II is the second-generation soft-core embedded processor after Nios from Altera. ... Nios is a soft configurable 16-bit processor designed to target FPGAs from Altera. ... The PDP-10 was a computer manufactured by Digital Equipment Corporation (DEC) from the late 1960s on; the name stands for Programmed Data Processor model 10. It was the machine that made time-sharing common; it looms large in hacker folklore because of its adoption in the 1970s by many... The MSP430 is a microcontroller family from Texas Instruments. ... The Z8000 was a 16-bit microprocessor introduced by ZiLOG in 1979. ... A retargetable compiler is a compiler that can relatively easily be modified to generate code for different CPU architectures. ... Bootstrapping is a term used in computer science to describe the techniques involved in writing a compiler (or assembler) in the target programming language which it is intended to compile. ...


Structure

GCC's external interface is generally standard for a Unix compiler. Users invoke a driver program named gcc, which interprets command arguments, decides which language compilers to use for each input file, runs the assembler on their output, and then possibly runs the linker to produce a complete executable binary. Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... See the terminology section, below, regarding inconsistent use of the terms assembly and assembler. ... Figure of the linking process, where object files and static libraries are assembled into a new library or executable. ...


Each of the language compilers is a separate program that takes in source code and produces assembly language. All have a common internal structure. A per-language front end parses the source code in that language and produces an abstract syntax tree ("tree" for short), and a back end that converts the trees to GCC's Register Transfer Language (RTL). Compiler optimizations and static code analysis techniques (such as FORTIFY_SOURCE[2], a compiler directive which attempts to discover some buffer overflows) are applied to the code. Finally, assembly language is produced using architecture-specific pattern matching originally based on an algorithm of Jack Davidson and Chris Fraser. In their most general meanings, the terms front end and back end refer to the initial and the end stages of a process flow. ... It has been suggested that Syntax analysis be merged into this article or section. ... In computer science, an abstract syntax tree (AST) is a finite, labeled, directed tree, where the internal nodes are labeled by operators, and the leaf nodes represent the operands of the node operators. ... In their most general meanings, the terms front end and back end refer to the initial and the end stages of a process flow. ... Register Transfer Language (RTL) is an intermediate representation used by the GCC compiler. ... Compiler optimization is the process of tuning the output of a compiler to minimize some attribute (or maximize the efficiency) of an executable program. ... Static analysis is the term applied to the analysis of computer software that is performed without actually executing programs built from that software (analysis performed on executing programs is known as dynamic analysis). ... In computer security and programming, a buffer overflow, or buffer overrun, is a programming error which may result in a memory access exception and program termination, or in the event of the user being malicious, a possible breach of system security. ... Pattern matching is the act of checking for the presence of the constituents of a given pattern. ...


Nearly all of GCC is written in C with the exception of the Ada frontend; much of the Ada frontend is written in Ada.


Front ends

Frontends vary internally, having to produce trees that can be handled by the backend. The parsers are hand-coded recursive descent parsers. A recursive descent parser is a top-down parser built from a set of mutually-recursive procedures (or a non-recursive equivalent) where each such procedure usually implements one of the production rules of the grammar. ...


Until recently, the tree representation of the program was not fully independent of the processor being targeted. Confusingly, the meaning of a tree was somewhat different for different language front-ends, and front-ends could provide their own tree codes.


In 2005, two new forms of language-independent trees were introduced. These new tree formats are called GENERIC and GIMPLE. Parsing is now done by creating temporary language-dependent trees, and converting them to GENERIC. The so-called "gimplifier" then lowers this more complex form into the simpler SSA-based GIMPLE form which is the common language for a large number of new powerful language- and architecture-independent global (function scope) optimizations. Look up Generic in Wiktionary, the free dictionary. ... In the GNU Compiler Collection, GIMPLE is an intermediate representation of the program in which complex expressions are split into a three address code using temporary variables. ... In compiler theory, static single assignment form, more often abbreviated SSA form or just SSA, is an intermediate representation (IR) in which every variable is assigned exactly once. ...


Middle end

Optimization on trees does not generally fit into what most compiler developers would consider a front end task, as it is not language dependent and does not involve parsing. GCC developers have given this part of the compiler the somewhat contradictory name the "middle end." These optimizations include dead code elimination, partial redundancy elimination, global value numbering, sparse conditional constant propagation, and scalar replacement of aggregates. Array dependence based optimizations such as automatic vectorization are currently being developed. Dead code elimination is a technique used in computer science to reduce program size by removing code which can never be executed. ... Partial redundancy elimination (PRE) is a compiler optimization that eliminates expressions that are redundant on some but not necessarily all paths through a program. ... Global value numbering is a method of compiler optimization and is one of the applications of SSA (compilers). ... Sparse conditional constant propagation is an optimization frequently utilized in compilers after conversion to static single assignment form (SSA). ... Automatic vectorization, in the context of a computer program, refers to the transformation of a series of operations performed linearly, one step at a time, to operations performed in parallel, several at once, in a manner suitable for processing by a vector processor. ...


Back end

The behavior of the GCC back end is partly specified by preprocessor macros and functions specific to a target architecture, for instance to define the endianness, word size, and calling conventions. The front part of the back end uses these to help decide RTL generation, so although GCC's RTL is nominally processor-independent, the initial sequence of abstract instructions is already adapted to the target. The C preprocessor (cpp) is the preprocessor for the C programming language. ... In computing, endianness is the byte (and sometimes bit) ordering in memory used to represent some kind of data. ... In computer hardware terminology, word size (word length) is the number of bits that a CPU can process at one time (the word). ... To meet Wikipedias quality standards, this article or section may require cleanup. ...


The exact set of GCC optimizations varies from release to release as it develops, but includes the standard algorithms, such as loop optimization, jump threading, common subexpression elimination, instruction scheduling, and so forth. The RTL optimizations are of less importance with the recent addition of global SSA-based optimizations on GIMPLE trees[3], as RTL optimizations have a much more limited scope, and have less high-level information. Most execution time of a scientific program is spent on loops. ... In computing, jump threading is a compiler optimization. ... In compiler theory, common subexpression elimination (CSE) is the practice of finding repeated redundant expression evaluations, and replacing them with a single computation assigned to a temporary variable. ... In computer science, instruction scheduling is a compiler optimization used to improve instruction-level parallelism, which improves performance on machines with instruction pipelines. ... In the GNU Compiler Collection, GIMPLE is an intermediate representation of the program in which complex expressions are split into a three address code using temporary variables. ...


A "reloading" phase changes abstract (pseudo-) registers into real machine registers, using data collected from the patterns describing the target's instruction set. This is a somewhat complicated phase, because it must account for the vagaries of all of GCC's targets. In computer architecture, a processor register is a small amount of very fast computer memory used to speed the execution of computer programs by providing quick access to commonly used values—typically, the values being in the midst of a calculation at a given point in time. ... It has been suggested that some sections of this article be split into a new article entitled instruction set architecture. ...


The final phase is somewhat anticlimactic, since the patterns to match were generally chosen during reloading, and so the assembly code is simply built by running substitutions of registers and addresses into the strings specifying the instructions.


Debugging GCC programs

The primary tool for debugging GCC code is the GNU Debugger (gdb). Among more specialized tools are Valgrind for finding memory errors and leaks. The GNU Profiler (gprof) can be used to find out how much time is spent in which routines, and how often they are called; this requires compiling programs with special profiling options. The GNU Debugger, usually called just GDB, is the standard debugger for the GNU software system. ... Valgrind is a free programming tool for memory debugging, memory leak detection, and profiling. ...


Bibliography

Richard Matthew Stallman (often abbreviated as RMS) (born March 16, 1953) is a software freedom activist, hacker, and software developer. ... The Free Software Foundation (FSF) is a non-profit corporation founded in October 1985 by Richard Stallman to support the free software movement (free as in freedom), and in particular the GNU project. ...

References

  1. ^ GCC Releases. GNU Project. Retrieved on 2006-12-27.
  2. ^ Programming Languages Supported by GCC. GNU Project. Retrieved on 2006-12-27.
  3. ^ Stallman, Richard M. (February 1986). "GNU Status". GNU's Bulletin 1 (1). Retrieved on 2006-09-26. 
  4. ^ Tower, Leonard (1987) "GNU C compiler beta test release," comp.lang.misc USENET newsgroup; see also http://gcc.gnu.org/releases.html#timeline
  5. ^ Stallman, Richard M. (2001) "Contributors to GCC," in Using and Porting the GNU Compiler Collection (GCC) for gcc version 2.95 (Cambridge, Mass.: Free Software Foundation)
  6. ^ [1] Linux Information Project (LINFO) accessed 2007-3-20]

For the Manfred Mann album, see 2006 (album). ... December 27 is the 361st day of the year in the Gregorian calendar (362nd in leap years). ... For the Manfred Mann album, see 2006 (album). ... December 27 is the 361st day of the year in the Gregorian calendar (362nd in leap years). ... For the Manfred Mann album, see 2006 (album). ... is the 269th day of the year (270th in leap years) in the Gregorian calendar. ...

See also

Free software Portal

Image File history File links This is a lossless scalable vector image. ... distcc is a computer program that distributes processes of compiling C and its derivatives like C++ and Objective C source code over a computer network. ... Introspector is a software tool to explore the structure of programs that can be compiled with the GNU Compiler Collection. ... Low Level Virtual Machine (LLVM) is a compiler infrastructure designed for compile-time, link-time, run-time, and idle-time optimization of programs from arbitrary programming languages. ... MinGW or Mingw32 (Minimalist GNU for Windows) is a software port of the GNU toolchain to the Win32 platform. ... OpenMP logo The OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared memory multiprocessing programming in C/C++ and Fortran on many architectures, including Unix and Microsoft Windows platforms. ... DJGPP is a 32-bit C/C++/ObjC/Ada/Fortran development suite for 386+ PCs that runs under DOS (or any OS that runs DOS . ... The GCC Summit is an annual conference for developers of the GNU Compiler Collection and related free software technologies. ... Watcom International Corporation was founded in 1981 from the research of the Computer Systems Group at the University of Waterloo, in Waterloo, Ontario, Canada. ... In computer science, Boehm-Demers-Weiser garbage collector, often simply known as Boehm GC, is a conservative garbage collector for C and C++, which is used by many projects that are implemented in C or C++, as well as by runtime environments for a number of other languages, including the... In computer science, garbage collection (also known as GC) is a form of automatic memory management. ...

External links

Wikibooks
Wikibooks has a book on the topic of

  Results from FactBites:
 
Contributions to the GNU Compiler Collection IBM Systems Journal - Find Articles (874 words)
The GNU Compiler Collection (GCC) is all optimizing compiler for the GNU project that is capable of generating code for a variety of platforms and that supports a number of languages, computer architectures, and operating systems.
The compiler was initially targeted at the common microprocessors of the late 1980s, such as the Motorola 68000, and was ported to other CISC (complex instruction set computer) processors, such as the Intel 80386.
The GCC compiler is written in the C language, and the source code is composed of files common to all targets and files with specific information about the target architecture, target system, and target file format--the latter referenced as the machine description.
  More results at FactBites »


 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 0825, t