Published by chrisname
Last update on May 30, 2010 at 8:43pm UTC
Note: This article is a work in progress but if you do read it, please feel free to PM your improvements to me. Thanks.
The Difference
People often confuse the difference between a 'compiler' and an 'IDE', which I guess is born from the fact that most IDEs come with a compiler.
Compilers
A compiler is a program which takes source code written by a programmer and creates an executable file.
Different compilers do this in different ways -- many compilers consist of a compiler, assembler and linker, although some do the assembling and linking themselves.
A compiler, then, must create assembly code from the source code given and pass it to the assembler. The assembler creates object code from the assembly code and then passes the object files on to the linker. The linker finally creates the exectuable file that you can run.
IDEs
IDE can either stand for Integrated Drive Electronics (which is a totally irrelevant (and far more complicated) topic) or Integrated Development Environment.
An IDE is a program or (more usually) a group of programs which are used for program development. An IDE usually consists of a syntax-highlighting text editor and a lot of buttons and toolbars and such to help you to write code efficiently.
IDEs often come bundled with a compiler suite as well as a debugger and some have more advanced features such as find-and-replace and auto-completion.
Comparisons
Compilers
There are many popular compilers, among them the GNU Compiler Collection (GCC) which includes gcc and g++ (the GNU C Compiler and GNU C++ Compiler) and Microsoft's Visual C and Visual C++ compilers. There are many other compilers of varying qualities, such as the Borland C/C++ compilers, the Intel C++ compiler and the [Open]Watcom Compilers. We will focus on gcc and Visual C in this article as they are the most popular compilers.
gcc/g++
The Difference
People often confuse the difference between a 'compiler' and an 'IDE', which I guess is born from the fact that most IDEs come with a compiler.
Compilers
A compiler is a program which takes source code written by a programmer and creates an executable file.
Different compilers do this in different ways -- many compilers consist of a compiler, assembler and linker, although some do the assembling and linking themselves.
A compiler, then, must create assembly code from the source code given and pass it to the assembler. The assembler creates object code from the assembly code and then passes the object files on to the linker. The linker finally creates the exectuable file that you can run.
IDEs
IDE can either stand for Integrated Drive Electronics (which is a totally irrelevant (and far more complicated) topic) or Integrated Development Environment.
An IDE is a program or (more usually) a group of programs which are used for program development. An IDE usually consists of a syntax-highlighting text editor and a lot of buttons and toolbars and such to help you to write code efficiently.
IDEs often come bundled with a compiler suite as well as a debugger and some have more advanced features such as find-and-replace and auto-completion.
Comparisons
Compilers
There are many popular compilers, among them the GNU Compiler Collection (GCC) which includes gcc and g++ (the GNU C Compiler and GNU C++ Compiler) and Microsoft's Visual C and Visual C++ compilers. There are many other compilers of varying qualities, such as the Borland C/C++ compilers, the Intel C++ compiler and the [Open]Watcom Compilers. We will focus on gcc and Visual C in this article as they are the most popular compilers.
gcc/g++
- Free/Open-Source -- gcc can be modified, derived or redistributed by anyone given that the modified/derivied/redistributed version remains licensed under the GNU General Public License (GPL)
- Cross-platform -- as gcc is open source, it has successfully been ported to various platforms including Linux, Microsoft Windows and Mac OS. If you are a Linux user you almost certainly have gcc installed already. You may have to install g++ separately, in which case you should use your distribution's package manager or download the source code. On Windows, you can find gcc in the MinGW and Cygwin packages.
- Fast -- as a modern, optimizing compiler gcc produces relatively efficient code
Note: gcc and g++ should not be capitalized (to distinguish gcc from GCC).
Microsoft Visual C/C++
- Free -- a version of Visual C/C++ (which may or may not be crippleware) is available for non-commercial use from Microsoft's website.
- Debugger -- Visual C/C++ is often acclaimed for it's powerful debugger.
Others
Other compilers also exist. Among these are OpenWatcom and the Intel C++ Compiler. OpenWatcom is a cross-platform (Windows, MS-DOS, Linux and others) optimizing compiler which can produce 16-bit code (something gcc cannot do). The Intel C++ compiler provides very thorough optimization.
IDEs
Popular IDEs include
- Dev-C++ (note: you are recommended to use wxDev-C++ instead as Dev-C++ has not been updated for 5 years)
- Code::Blocks
- Netbeans
- Microsoft Visual Studio
- Eclipse
- KDevelop
http://www.cplusplus.com/articles/chrisname1/