Programming tool
{{short description|Computer program used to develop another program}}
{{distinguish|Programmable tooling}}
{{software development process}}
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 {{endash}} Converts assembly language into machine code
- {{Annotated link|Bug tracking system}}
- {{Annotated link|Build automation}}
- {{Annotated link|Code review|Code review software}}
- {{Annotated link|Compiler}}
- {{Annotated link|Compiler-compiler}}, a.k.a. parser generator
- {{Annotated link|Debugger}}
- {{Annotated link|Decompiler}}
- {{Annotated link|Disassembler}}
- {{Annotated link|Documentation generator}}
- {{Annotated link|Graphical user interface builder}}
- {{Annotated link|Linker (computing)|Linker}}
- {{Annotated link|Memory debugger}}
- {{Annotated link|Minification (programming)|Minifier}}
- {{Annotated link|Prettyprint|Pretty-printer}}
- {{Annotated link|Profiling (computer programming)|Performance profiler}}
- {{Annotated link|Static code analysis|Static code analyzer}}
- {{Annotated link|Source code editor}}
- {{Annotated link|Source code generation}}
- Version control system {{endash}} Stores and tracks versions of files
See also
- {{Annotated link|Call graph}}
- {{Annotated link|Comparison of integrated development environments}}
- {{Annotated link|Computer aided software engineering}}
- {{Annotated link|Git}}
- {{Annotated link|GitHub}}
- {{Annotated link|Lint (software)|Lint}}
- {{Annotated link|List of software engineering topics}}
- {{Annotated link|List of unit testing frameworks}}
- {{Annotated link|Manual memory management}}
- {{Annotated link|Memory leak}}
- {{Annotated link|Reverse-engineering}}
- {{Annotated link|Revision Control System}}
- {{Annotated link|Software development kit}}
- {{Annotated link|Software engineering}}
- {{Annotated link|SourceForge}}
- {{Annotated link|SWIG}}
- {{Annotated link|Toolkits for User Innovation}}
- {{Annotated link|Valgrind}}
References
{{More footnotes|date=August 2010}}
{{reflist}}
{{refbegin}}
- [https://www.csm.ornl.gov/workshops/Petascale07 Software Development Tools for Petascale Computing Workshop 2007]
- {{Citation |last1=Kernighan |first1=Brian W. |author-link1=Brian Kernighan |last2=Plauger |first2=P. J. |author2-link=P. J. Plauger |year=1976 |title=Software Tools |publisher=Addison-Wesley |pages=[https://archive.org/details/softwaretools00kern/page/352 352] |isbn=0-201-03669-X |url-access=registration |url=https://archive.org/details/softwaretools00kern/page/352 }}
{{refend}}