Buy VERTEX STANDARD CE-99 PROGRAMMING SOFTWARE: Portable Audio & Video - Amazon.com FREE DELIVERY possible on eligible purchases. Download cnc programming software for free. Photo & Graphics tools downloads - CNC-SIMULATOR by BULLDOG DIGITAL TECHNOLOGIES and many more programs are available for instant and free download.
Software development
Core activities
Paradigms and models
Methodologies and frameworks
Supporting disciplines
Practices
Tools
Standards and Bodies of Knowledge
Glossaries
A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object. The most basic tools are a source code editor and a compiler or interpreter, which are used ubiquitously and continuously. Other tools are used more or less depending on the language, development methodology, and individual engineer, and are often used for a discrete task, like a debugger or profiler. Tools may be discrete programs, executed separately – often from the command line – or may be parts of a single large program, called an integrated development environment (IDE). In many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool, such as print debugging instead of using a debugger, manual timing (of overall program or section of code) instead of a profiler, or tracking bugs in a text file or spreadsheet instead of a bug tracking system.
The distinction between tools and applications is murky. For example, developers use simple databases (such as a file containing a list of important values) all the time as tools.[dubious] However a full-blown database is usually thought of as an application or software in its own right. For many years, computer-assisted software engineering (CASE) tools were sought after. Successful tools have proven elusive.In one sense, CASE tools emphasized design and architecture support, such as for UML. But the most successful of these tools are IDEs.
1Uses of programming tools
Uses of programming tools[edit]
Translating from human to computer language[edit]
Modern computers are very complex and in order to productively program them,various abstractions are needed. For example, rather than writing down aprogram's binary representation a programmer will write a program in aprogramming language like C, Java or Python.Programming tools like assemblers, compilers and linkers translate aprogram from a human write-able and readable source language into the bits andbytes that can be executed by a computer. Interpreters interpret theprogram on the fly to produce the desired behavior.
These programs perform many well defined and repetitive tasks that wouldnonetheless be time consuming and error-prone when performed by a human,like laying out parts of a program in memory and fixing up the referencesbetween parts of a program as a linker does.Optimizing compilers on the other hand can perform complex transformationson the source code in order to improve the execution speed orother characteristics of a program. This allows a programmer to focus moreon higher level, conceptual aspects of a program without worrying about the detailsof the machine it is running on.
Making program information available for humans[edit]
Because of the high complexity of software, it is not possible to understandmost programs at a single glance even for the most experienced software developer.The abstractions provided by high-level programming languages also make it harderto understand the connection between the source code written by a programmer andthe actual program's behaviour.In order to find bugs in programs and to prevent creating new bugs when extending a program, a software developer uses some programming tools to visualize all kinds of information about programs.
For example, a debugger allows a programmer to extract information about arunning program in terms of the source language used to program it.The debugger can compute the value of a variable in the source program from the state of the concrete machine by using information stored by the compiler. Memory debuggers can directly point out questionable or outright wrong memory accesses of running programs which may otherwise remain undetected and are a common source of program failures.
List of tools[edit]
Software tools come in many forms:
Binary compatibility analysis tools
Bug databases: Comparison of issue tracking systems - Including bug tracking systems
Build tools: Build automation, List of build automation software
Code sharing sites: Freshmeat, Krugle, Sourceforge, GitHub. See also Code search engines.
Compilation and linking tools: GNU toolchain, gcc, Microsoft Visual Studio, CodeWarrior, Xcode, ICC
Debuggers: Debugger#List of debuggers. See also Debugging.
Disassemblers: Generally reverse-engineering tools.
Documentation generators: Comparison of documentation generators, help2man, Plain Old Documentation, asciidoc
Formal methods: Mathematical techniques for specification, development and verification
Library interface generators: SWIG
Integration Tools
Memory debuggers are frequently used in programming languages (such as C and C++) that allow manual memory management and thus the possibility of memory leaks and other problems. They are also useful to optimize efficiency of memory usage. Examples: dmalloc, Electric Fence, Insure++, Valgrind
Parser generators: Parsing#Parser development software
Performance analysis or profiling: List of performance analysis tool
Revision control: List of revision control software, Comparison of revision control software
Static code analysis: lint, List of tools for static code analysis
Unit testing: List of unit testing frameworks
IDEs[edit]
Integrated development environments combine the features of many tools into one package. They for example make it easier to do specific tasks, such as searching for content only in files in a particular project. IDEs may for example be used for development of enterprise-level applications.
Different aspects of IDEs for specific programming languages can be found in this comparison of integrated development environments.
See also[edit]
Computer aided software engineering tools
Software engineering and list of software engineering topics
References[edit]
Kernighan, Brian W.; Plauger, P. J. (1976), Software Tools, Addison-Wesley, p. 352, ISBN0-201-03669-X
External links[edit]
Media related to Programming tools at Wikimedia Commons
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Programming_tool&oldid=887416578'