Programming tool
Part of a series on |
Software development |
---|
A programming tool or software development tool is a computer program that is used to develop another computer program, usually by helping the developer manage computer files. For example, a programmer may use a tool called a source code editor to edit source code files, and then a compiler to convert the source code into machine code files. They may also use build tools that automatically package executable program and data files into shareable packages or install kits.
A set of tools that are run one after another, with each tool feeding its output to the next one, is called a toolchain. An integrated development environment (IDE) integrates the function of several tools into a single program. Usually, an IDE provides a source code editor as well as other built-in or plug-in tools that help with compiling, debugging, and testing.
Whether a program is considered a "development tool" can be subjective. Some tools, such as the GNU Compiler Collection, are used exclusively for software development. Others, like the text editor Windows Notepad, are not meant specifically for development but are nevertheless often used by programmers.
Major functions of development tools
Translation
A translator is used to translate code from one computer language to another. For example, a compiler can translate source code from its original programming language to lower-level language, such as machine code. Other tools, namely assemblers (another type of translator) and linkers, are used alongside compilers to package the code into its final, usable form.
Some programming languages, such as Python and Java, are usually compiled into a special kind of machine code called bytecode. The bytecode may be further compiled to machine code as the program is running, a process called just-in-time compilation, or it may be fed to another type of tool called an interpreter, which executes bytecode or source code directly. Some interpreters provide on-demand translation to machine code or an intermediate form.
Debugging
A debugger allows a programmer to view information about the state of a program while it is executing. For example, a developer can use a debugger to pause the program at a breakpoint inserted at a particular line of code, and then directly check the value of a variable. This information is useful in resolving bugs and testing.
Categories of development tools
- Bug databases
- Build tools
- Call graphs
- Code review software
- Online code repositories like SourceForge or GitHub
- Compilers and assemblers
- Debuggers
- Disassemblers and decompilers, used mainly for reverse-engineering.
- Documentation generators
- Graphical user interface builders
- Interface generators like SWIG
- Linkers, which convert the output of compilers and assemblers into executable files and libraries
- Memory debuggers such as Valgrind, often used in languages like C and C++ that allow manual memory management and thus the possibility of memory leaks and other problems
- Parser generators, also called "compiler compilers"
- Performance analysis tools
- Search tools like Unix's grep
- Source code editors and other text editors
- Source code formatters, including pretty-printers and minifiers
- Source code generators
- Static source code analyzers such as lint
- Unit testing frameworks, used to automatically test software
- Version control systems like Git or RCS
See also
- Comparison of integrated development environments
- Computer aided software engineering
- List of software engineering topics
- Software development kit
- Software engineering
- Toolkits for user innovation
References
- Software Development Tools for Petascale Computing Workshop 2007
- Kernighan, Brian W.; Plauger, P. J. (1976), Software Tools, Addison-Wesley, pp. 352, ISBN 0-201-03669-X
External links
Media related to Programming tools at Wikimedia Commons