Integrated Development Environment
Integrated Development Environment
Integrated Development Environment
Overview
Discussion
High-level language programs are usually written (coded) as ASCII text into a
source code file. A unique file extension (Examples: .asm .c .cpp .java .js .py)
is used to identify it as a source code file. As you might guess for our
examples – Assembly, “C”, “C++”, Java, JavaScript, and Python, however,
they are just ASCII text files (other text files usually use the extension of .txt).
The source code produced by the programmer must be converted to an
executable machine code file specifically for the computer’s CPU (usually an
Intel or Intel-compatible CPU within today’s world of computers). There are
several steps in getting a program from its source code stage to running the
program on your computer. Historically, we had to use several software
programs (a text editor, a compiler, a linker, and operating system commands)
to make the conversion and run our program. However, today all those
software programs with their associated tasks have been integrated into one
program. However, this one program is really many software items that create
an environment used by programmers to develop software. Thus the
name: Integrated Development Environment or IDE.
Int
egrated Development Environment or IDE
Upon starting the IDE software the programmer usually indicates the file he or
she wants to open for editing as source code. As they make changes they
might either do a “save as” or “save”. When they have finished entering the
source code, they usually direct the IDE to “compile & run” the program. The
IDE does the following steps:
1. If there are any unsaved changes to the source code file it has the test
editor save the changes.
2. The compiler opens the source code file and does its first step which is
executing the pre-processor compiler directives and other steps needed to
get the file ready for the second step. The #include will insert header files into
the code at this point. If it encounters an error, it stops the process and returns
the user to the source code file within the text editor with an error message. If
no problems encountered it saves the source code to a temporary file called a
translation unit.
3. The compiler opens the translation unit file and does its second step which
is converting the programming language code to machine instructions for the
CPU, a data area, and a list of items to be resolved by the linker. Any
problems encountered (usually a syntax or violation of the programming
language rules) stops the process and returns the user to the source code file
within the text editor with an error message. If no problems encountered it
saves the machine instructions, data area, and linker resolution list as an
object file.
4. The linker opens the program object file and links it with the library object files
as needed. Unless all linker items are resolved, the process stops and returns
the user to the source code file within the text editor with an error message. If
no problems encountered it saves the linked objects as an executable file.
5. The IDE directs the operating system’s program called the loader to load the
executable file into the computer’s memory and have the Central Processing
Unit (CPU) start processing the instructions. As the user interacts with the
program, entering test data, he or she might discover that the outputs are not
correct. These types of errors are called logic errors and would require the
user to return to the source code to change the algorithm.
Resolving Errors
1. Compiler
2. Linker
3. Logic
There are two types of compiler errors; pre-processor (1st step) and
conversion (2nd step). A review of Figure 1 above shows the four arrows
returning to the source code so that the programmer can correct the mistake.
During the conversion (2nd step) the compiler might give a warning message
which in some cases may not be a problem to worry about. For example: Data
type demotion may be exactly what you want your program to do, but most
compilers give a warning message. Warnings don’t stop the compiling
process but as their name implies, they should be reviewed.
The next three figures show IDE monitor interaction for the Bloodshed Dev-
C++ 5 compiler/IDE.
Co
mpiler Error (the red line is where the compiler stopped)
Lin
ker Error (no red line with an error message describing a linking problem)
Lo
gic Error (from the output within the “Black Box” area)
The Benefits of Using IDEs
Integrated development environments work to improve developer productivity. These
IDEs improve productivity by lessening setup time, boosting the speed of development
tasks, keeping developers up to date with the latest best practices and threats, and
standardizing the development process so that everyone can get on board.
For even more benefit, IDEs can help restructure the development process by
promoting holistic strategizing. They push programmers to think of their actions in terms
of the entire development lifecycle (SDLC), as opposed to a series of isolated tasks.
However, multiple-language IDEs, like Eclipse (C, C++, Python, Perl, PHP, Java, Ruby
and more), Komodo (Perl, Python, Tcl, PHP, Ruby, Javascript and more) and NetBeans
(Java, JavaScript, PHP, Python, Ruby, C, C++ and more) do exist.
Developers can often find support for alternative languages through plugins. For
example, Flycheck is a syntax checking extension for GNU Emacs 24 with support for
39 languages.
Different Types of IDE
There are many ways developers work to product the different types of code they
produce, which means there is also a variety of IDEs to use. Some are designed to
work with one specific language, while others are cloud-based IDEs, IDEs customized
for the production of mobile applications or for HTML, and also IDEs that are meant
specifically for Apple or Microsoft development.
Multi-Language IDE
The multi-language IDEs – like Eclipse, Aptana, Komodo, NetBeans, and Geany –
support multiple programming languages.
Eclipse: Supports C, C++, Perl, Python, Ruby, PHP, Java and others. It is a free
and open source editor for many development frameworks. Although it began as
a Java development environment, it has expanded through plugins. This IDE is
managed and directed by the Eclipse.org Consortium.
NetBeans: Supports Java, PHP, JavaScript, C, C++, Python, Ruby, and more. It
is also free and open source. Modules provide all functions of the IDE.
Developers can add support for other programming languages by installing
additional modules.
Komodo IDE: Supports Perl, PHP, Python, Tcl, JavaScript, Ruby, and more.
This is an enterprise-level tool with a higher price point.
Aptana: Supports HTML, JavaScript, CSS, AJAX and others through plugins. It
is a popular choice for programmers who do web app development.
Geany: Supports C, PHP, Java, HTML, Perl, Python, Pascal and many more.
This is a very customizable environment with a big set of plugins.