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 programs, such as the GNU compiler collection, are used exclusively for software development while others, such as Notepad, are not meant specifically for development but are nevertheless often used for programming. Further, in common parlance, techniques such call graphing and services such as GitHub can be classified as tools, but generally this is outside the meaning described here.
Categories
[edit]Notable categories of development tools:
- Assembler – Converts assembly language into machine code
- Bug tracking system – Software application that records software bugs
- Build automation – Building software via an unattended fashion
- Code review software – Activity where one or more people check a program's code
- Compiler – Computer program which translates code from one programming language to another
- Compiler-compiler – Program that generates parsers or compilers, a.k.a. parser generator
- Debugger – Computer program used to test and debug other programs
- Decompiler – Program translating executable to source code
- Disassembler – Computer program to translate machine language into assembly language
- Documentation generator – Automation technology for creating software documentation
- Graphical user interface builder – Software development tool
- Linker – Computer program which combines multiple object files into a single file
- Memory debugger – Software memory problem finder
- Minifier – Removal of unnecessary characters in code without changing its functionality
- Pretty-printer – Formatting to make code or markup easier to read
- Performance profiler – Measuring the time or resources used by a section of a computer program
- Static code analyzer – Analysis of computer programs without executing them
- Source code editor – Text editor specializing in software code
- Source code generation – Type of computer programming
- Version control system – Stores and tracks versions of files
See also
[edit]- Call graph – Structure in computing
- Comparison of integrated development environments – Notable software packages that are nominal IDE
- Computer aided software engineering – Domain of software tools
- Git – Distributed version control software system
- GitHub – Proprietary developer platform
- Lint – Tool to flag poor computer code
- List of software engineering topics – Overview of and topical guide to software engineering
- List of unit testing frameworks
- Manual memory management – Computer memory management methodology
- Memory leak – When a computer program fails to release unnecessary memory
- Reverse-engineering – Process of extracting design information from anything artificial
- Revision Control System – Version-control system
- Software development kit – Set of software development tools
- Software engineering – Engineering approach to software development
- SourceForge – Web-based source code repository
- SWIG – open-source tool for generating programming language bindings
- Toolkits for User Innovation – Design method
- Valgrind – Programming tool for profiling, memory debugging and memory leak detection
References
[edit]This article includes a list of general references, but it lacks sufficient corresponding inline citations. (August 2010) |
- 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
[edit]Media related to Programming tools at Wikimedia Commons