Введение

Компьютерная программа, используемая разработчиками программного обеспечения для поддержки других программ и приложений. Инструмент программирования или средство разработки программного обеспечения — это компьютерная программа, которую разработчики программного обеспечения используют для создания, отладки, сопровождения или иной поддержки других программ и приложений. Этот термин обычно относится к относительно простым программам, которые можно комбинировать для выполнения задачи, подобно тому, как можно использовать несколько рук для ремонта физического объекта. Наиболее базовыми инструментами являются редактор исходного кода и компилятор или интерпретатор, которые используются повсеместно и непрерывно. Другие инструменты используются в большей или меньшей степени в зависимости от языка программирования, методологии разработки и индивидуального разработчика, часто для выполнения конкретной задачи, например, отладчик или профилировщик. Инструменты могут быть отдельными программами, выполняемыми независимо – часто из командной строки – или могут быть частями одной большой программы, называемой интегрированной средой разработки (IDE). Во многих случаях, особенно для более простых задач, вместо инструмента используются простые ad hoc методы, такие как отладочная печать вместо отладчика, ручное измерение времени (общего времени работы программы или участка кода) вместо профилировщика, или отслеживание ошибок в текстовом файле или электронной таблице вместо системы отслеживания ошибок. Граница между инструментами и приложениями размыта. Например, разработчики постоянно используют простые базы данных (например, файл, содержащий список важных значений) в качестве инструментов. Однако полноценная база данных обычно рассматривается как самостоятельное приложение или программное обеспечение. На протяжении многих лет активно искались средства автоматизированной разработки программного обеспечения (CASE). Успешные инструменты оказались труднодостижимыми. В определенном смысле, CASE-средства делали акцент на поддержке проектирования и архитектуры, например, для UML. Но наиболее успешными из этих средств оказались IDE.

Перевод с человеческого языка на компьютерный

Современные компьютеры очень сложны, и для продуктивного их программирования необходимы различные абстракции. Например, вместо записи двоичного представления программы, программист пишет программу на языке программирования, таком как C, Java или Python. Инструменты программирования, такие как ассемблеры, компиляторы и компоновщики, преобразуют программу из удобочитаемого и понятного человеку исходного языка в биты и байты, которые может выполнить компьютер. Интерпретаторы интерпретируют программу "на лету", чтобы получить желаемый результат. Эти программы выполняют множество чётко определённых и повторяющихся задач, которые, тем не менее, были бы трудоёмкими и подверженными ошибкам при выполнении человеком, например, размещение частей программы в памяти и исправление ссылок между частями программы, как это делает компоновщик. Оптимизирующие компиляторы, в свою очередь, могут выполнять сложные преобразования исходного кода для повышения скорости выполнения или других характеристик программы. Это позволяет программисту сосредоточиться на более высокоуровневых, концептуальных аспектах программы, не беспокоясь о деталях аппаратного обеспечения, на котором она работает.

Доступность информации о программе для людей

Из-за высокой сложности программного обеспечения даже самый опытный разработчик не может понять большинство программ с первого взгляда. Абстракции, предоставляемые языками программирования высокого уровня, также затрудняют понимание связи между исходным кодом, написанным программистом, и фактическим поведением программы. Чтобы находить ошибки в программах и предотвращать появление новых при их расширении, разработчики программного обеспечения используют различные инструменты для визуализации информации о программах. Например, отладчик позволяет программисту получать информацию о работающей программе в терминах исходного языка программирования. Отладчик может вычислить значение переменной в исходной программе на основе состояния конкретной машины, используя информацию, сохраненную компилятором. Отладчики памяти могут напрямую указывать на подозрительные или явно некорректные обращения к памяти в работающих программах, которые в противном случае могли бы остаться незамеченными и часто являются причиной сбоев в работе программы.

ИДЭ

Интегрированные среды разработки объединяют функции множества инструментов в одном пакете. Они, например, упрощают выполнение конкретных задач, таких как поиск содержимого только в файлах определенного проекта. IDE могут использоваться, например, для разработки приложений корпоративного уровня. Различные аспекты IDE для конкретных языков программирования можно найти в этом сравнении интегрированных сред разработки.