Введение
Компьютерная программа, используемая разработчиками программного обеспечения для поддержки других программ и приложений. Инструмент программирования или средство разработки программного обеспечения — это компьютерная программа, которую разработчики программного обеспечения используют для создания, отладки, сопровождения или иной поддержки других программ и приложений. Этот термин обычно относится к относительно простым программам, которые можно комбинировать для выполнения задачи, подобно тому, как можно использовать несколько рук для ремонта физического объекта. Наиболее базовыми инструментами являются редактор исходного кода и компилятор или интерпретатор, которые используются повсеместно и непрерывно. Другие инструменты используются в большей или меньшей степени в зависимости от языка программирования, методологии разработки и индивидуального разработчика, часто для выполнения конкретной задачи, например, отладчик или профилировщик. Инструменты могут быть отдельными программами, выполняемыми независимо – часто из командной строки – или могут быть частями одной большой программы, называемой интегрированной средой разработки (IDE). Во многих случаях, особенно для более простых задач, вместо инструмента используются простые ad hoc методы, такие как отладочная печать вместо отладчика, ручное измерение времени (общего времени работы программы или участка кода) вместо профилировщика, или отслеживание ошибок в текстовом файле или электронной таблице вместо системы отслеживания ошибок. Граница между инструментами и приложениями размыта. Например, разработчики постоянно используют простые базы данных (например, файл, содержащий список важных значений) в качестве инструментов. Однако полноценная база данных обычно рассматривается как самостоятельное приложение или программное обеспечение. На протяжении многих лет активно искались средства автоматизированной разработки программного обеспечения (CASE). Успешные инструменты оказались труднодостижимыми. В определенном смысле, CASE-средства делали акцент на поддержке проектирования и архитектуры, например, для UML. Но наиболее успешными из этих средств оказались IDE.
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 to accomplish a task, much as one might use multiple hands 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, 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. 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. 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.
Перевод с человеческого языка на компьютерный
Современные компьютеры очень сложны, и для продуктивного их программирования необходимы различные абстракции. Например, вместо записи двоичного представления программы, программист пишет программу на языке программирования, таком как C, Java или Python. Инструменты программирования, такие как ассемблеры, компиляторы и компоновщики, преобразуют программу из удобочитаемого и понятного человеку исходного языка в биты и байты, которые может выполнить компьютер. Интерпретаторы интерпретируют программу "на лету", чтобы получить желаемый результат. Эти программы выполняют множество чётко определённых и повторяющихся задач, которые, тем не менее, были бы трудоёмкими и подверженными ошибкам при выполнении человеком, например, размещение частей программы в памяти и исправление ссылок между частями программы, как это делает компоновщик. Оптимизирующие компиляторы, в свою очередь, могут выполнять сложные преобразования исходного кода для повышения скорости выполнения или других характеристик программы. Это позволяет программисту сосредоточиться на более высокоуровневых, концептуальных аспектах программы, не беспокоясь о деталях аппаратного обеспечения, на котором она работает.
Доступность информации о программе для людей
Из-за высокой сложности программного обеспечения даже самый опытный разработчик не может понять большинство программ с первого взгляда. Абстракции, предоставляемые языками программирования высокого уровня, также затрудняют понимание связи между исходным кодом, написанным программистом, и фактическим поведением программы. Чтобы находить ошибки в программах и предотвращать появление новых при их расширении, разработчики программного обеспечения используют различные инструменты для визуализации информации о программах. Например, отладчик позволяет программисту получать информацию о работающей программе в терминах исходного языка программирования. Отладчик может вычислить значение переменной в исходной программе на основе состояния конкретной машины, используя информацию, сохраненную компилятором. Отладчики памяти могут напрямую указывать на подозрительные или явно некорректные обращения к памяти в работающих программах, которые в противном случае могли бы остаться незамеченными и часто являются причиной сбоев в работе программы.
ИДЭ
Интегрированные среды разработки объединяют функции множества инструментов в одном пакете. Они, например, упрощают выполнение конкретных задач, таких как поиск содержимого только в файлах определенного проекта. IDE могут использоваться, например, для разработки приложений корпоративного уровня. Различные аспекты IDE для конкретных языков программирования можно найти в этом сравнении интегрированных сред разработки.