Part of a series on |
Software development |
---|
Core activities |
Paradigms and models |
Methodologies and frameworks |
Supporting disciplines |
Practices |
Tools |
Standards and bodies of knowledge |
Glossaries |
Outlines |
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.
Categories
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 themPages displaying short descriptions of redirect targets
- Source code editor – Text editor specializing in software codePages displaying short descriptions of redirect targets
- Source code generation – Type of computer programmingPages displaying short descriptions of redirect targets
- Version control system – Stores and tracks versions of files
See also
- Call graph – Structure in computing
- Comparison of integrated development environments – Notable software packages that are nominal IDE
- Computer aided software engineering – Domain of software toolsPages displaying short descriptions of redirect targets
- Git – Distributed version control software system
- GitHub – Software development collaboration platform
- Lint – Tool to flag poor computer code
- List of software engineering topics – Overview of and topical guide to software engineeringPages displaying short descriptions of redirect targets
- 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 artificialPages displaying short descriptions of redirect targets
- 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 bindingsPages displaying wikidata descriptions as a fallback
- Toolkits for User Innovation – Design methodPages displaying short descriptions of redirect targets
- Valgrind – Programming tool for profiling, memory debugging and memory leak detection
References
This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (August 2010) (Learn how and when to remove this message) |
- 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
Category: