Integrated Development Environment

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Integrated Development Environment

Overview

 An integrated development environment (IDE) is a software


application that provides comprehensive facilities to computer
programmers for software development.
 An IDE normally consists of a source code editor, build automation
tools, and a debugger.
 Most modern IDEs have intelligent code completion.
 Some IDEs contain a compiler, interpreter, or both.
 The boundary between an integrated development environment and
other parts of the broader software development environment is not
well-defined.
 Sometimes a version control system, or various tools to simplify the
construction of a graphical user interface (GUI), are integrated.
 Many modern IDEs also have a class browser, an object browser, and a
class hierarchy diagram, for use in object-oriented software
development.

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.

Programs written in a high-level language are either directly executed by


some kind of interpreter or converted into machine code by a compiler (and
assembler and linker) for the CPU to execute. JavaScript, Perl, Python, and
Ruby are examples of interpreted programming languages. C, C++, C#, Java,
and Swift are examples of compiled programming languages. The following
figure shows the progression of activity in an IDE as a programmer enters the
source code and then directs the IDE to compile and run the program.

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

Despite our best efforts at becoming perfect programmers, we will create


errors. Solving these errors is known as debugging your program. The three
types of errors in the order that they occur are:

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.

 Faster setup: Programmers need to spend time configuring multiple


development tools without an IDE interface in place. By integrating an IDE,
programmers can have the same set of capabilities in one place without needing
to constantly switch tools.
 Faster development tasks: Tighter integration of development tasks means
boosted developer productivity. For example, developers can parse code and
check syntax while editing, which allows for instant feedback as syntax errors are
introduced. Programmers no longer need to switch between apps to finish tasks.
Additionally, the tools and features of the IDE help programmers organize
resources, prevent mistakes, and implement shortcuts.

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.

 Continual learning: Another benefit is the ability to stay up to date and


educated. As an example, an IDE’s help topics are constantly updated, along
with new samples, project templates, and more. Developers who learn constantly
and stay current on best practices are more likely to add value to their team and
to the enterprise, boosting productivity.
 Standardization: It also regulates the development process, helping
programmers work together seamlessly and assisting new hires with getting up
to speed so they can hit the ground running.

Languages That Are Supported by IDE


In some cases, IDEs are dedicated to a certain programming language or to a set of
languages, which creates a feature set that aligns with the specifics of that language.
For example, Xcode for the Objective-C and Swift languages, Cocoa and Cocoa Touch
APIs.

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.

You might also like