Learn something new every day
More Info... by email
Different types of computer programming software are involved with each phase of the development of a new program. Compilers perform the essential work of translating human programming languages into machine language that can be processed by a computer. Other software can be used to aid in debugging and in monitoring the efficiency of a program at performing specific tasks and using system resources. Integrated development environments combine several of these varieties of computer programming software into a single cohesive product.
The most basic variety of computer programming software is the compiler. Programmers write code in a programming language, such as C++, Python, or Basic. This code can typically be written using any type of text editor, although dedicated editors that provide color-coding and check for technical mistakes are very helpful. Once this source code has been written, a compiler is used to translate it into language that can be directly executed by a computer. In some cases, a decompiler may later be used to translate a program back to source code readable by humans.
Debuggers are a useful and common type of computer programming software. A debugger allows a programmer to test and monitor his code. Most enable source code to be partially compiled and executed. This permits the debugger to monitor the values of variables, to check the targets of pointers, and to show a programmer precisely which instructions are being executed at a given moment. This ability to step through code line-by-line makes tracking down small errors much easier.
Programmers also rely on applications that monitor the accuracy of their work. Some programs run different values through a program to ensure that it generates the correct responses, especially in unusual or marginal cases. This is especially helpful in determining what happens when a user provides improperly-formatted input or input that falls outside of the expected ranges of values.
All programs make use of system resources, and some computer programming software exists to track the efficiency with which those resources are used. These programs allow for the detailed examination of memory management, disk access, and network use, among other things. These tools are particularly helpful for programmers designing applications to work on mobile devices where resources may be especially scarce.
Integrated development environments are very powerful and popular tools. This sort of computer programming software combines purpose-built versions of several different programming tools. A typical example might include an editor for writing source code, a compiler, a debugger, some tools for memory management, and a program to automatically generate a rough draft of documentation explaining the functioning of the software.
@Melonlity -- Some people like the more "manual" approach and, therefore, stick with more basic tools like text editors to code and other programs to compile and/or proof code.
Perhaps the guy who loved the manual approach the most was Steve Wozniak (one of the founders of Apple Computer). Apparently, he mapped out the entire BASIC computer language for the Apple I by writing it down in a notebook.
You can't get any more basic than that (pun intended), and Wozniak had total control when creating his program (someone had to key it in later, but you get the idea).
Integrated development environments are ideal and they have been around for a long time. Those environments generally help the programmer focus on developing software while more mundane tasks are handled by the environment.
Remember when BASIC was the dominant programming language? Hobbyists might not have known it, but they were dealing with an environment that checked errors, compiled and allowed programs to be easily saved. All the programmer had to do was create and he had the tools available to help him do that.
One of our editors will review your suggestion and make changes if warranted. Note that depending on the number of suggestions we receive, this can take anywhere from a few hours to a few days. Thank you for helping to improve wiseGEEK!