Misplaced Pages

Programming tool

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
(Redirected from Programming software) Computer program used to develop another program Not to be confused with Programmable tooling.
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 program. A tool provides a command line interface (CLI), a graphical user interface (GUI), or both. A CLI allows a tool to be used for automation such as for build or test.

In general, development tools manipulate computer files. A programmer may use a text editor or a source code editor to edit source code files. They may use a compiler to convert the source code into machine code files. They may use tools that package executable program and data files into distributable packages or install kits.

A toolchain is a set of tools that are often run in sequence such that the output of one tool is the input to the next one.

An integrated development environment (IDE), as the name implies, integrates the function of several tools into one user experience (UX). Usually, an IDE provides a code editing GUI and often provides for compiling, debugging, running tests and many other functions – as applies to the programming context.

Some tools provide productivity enhancements. Allowing the developer to perform tasks faster and/or better than without the tool. For example, profiling can be accomplished via hand-coded logging but a profiler tool might provide more detailed information with less effort.

Whether an program is considered a development tool can be subjective. For example, a compiler is clearly for development. But Windows Notepad is neither designed nor used exclusively for development yet is often used for development. A person who uses Notepad for development might consider it a development tool, but others, especially non-programmers, might not.

Programs used at runtime, such as a database engine or an interpreter, are generally not considered development tools. Such programs may be used during development but are a runtime integration instead of a tool for assisting in the development of a program.

The once notable computer-aided software engineering (CASE) initiative sought to provide tools with design aspects such as unified modeling language (UML) support. But, today, such tools are uncommon.

Uses

Translation

One classification of tools is translation – from source code to machine code. Rather than directly writing a program in machine code, a programmer writes source code in a programming language. Tools such as assemblers, compilers and linkers translate source code which is more accessible to a human to a form that is more accessible to the computer.

Some tools produce executable code that is more abstract than the native machine code. For example, C# and Java are usually translated into bytecode, and at runtime, the bytecode either is interpreted or is compiled to machine code via just-in-time compilation.

An interpreter – which is a runtime environment; arguably not a development tool – can support executing source code without translating to machine code. Some interpreter environments provide on-demand translation to machine code or an intermediate form.

Debugging

A debugger allows a programmer to extract information from a running program in terms of the source code language. The debugger, often using special debug information from the compiler, can display the value of a variable while the program is paused at a breakpoint. This and other information available via the debugger can be useful for resolving bugs, understanding how the program works and for testing.

Categorization

The following are notable categories of development tools.

See also

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)

External links

Media related to Programming tools at Wikimedia Commons

Software engineering
Fields
Concepts
Orientations
Models
Developmental
Other
Languages
Related fields
Category: