Инструмент программирования или инструмент разработки программного обеспечения — это компьютерная программа , которую разработчики программного обеспечения используют для создания, отладки, обслуживания или иной поддержки других программ и приложений. Этот термин обычно относится к относительно простым программам, которые можно объединить для выполнения задачи, подобно тому, как можно использовать несколько рук для исправления физического объекта. Самыми основными инструментами являются редактор исходного кода и компилятор или интерпретатор , которые используются повсеместно и постоянно. Другие инструменты используются более или менее в зависимости от языка, методологии разработки и отдельного инженера, часто используются для отдельной задачи, например, отладчик или профилировщик. Инструменты могут быть отдельными программами, выполняемыми отдельно — часто из командной строки — или могут быть частями одной большой программы, называемой интегрированной средой разработки (IDE). Во многих случаях, особенно для более простого использования, вместо инструмента используются простые специальные методы, такие как отладка печати вместо использования отладчика, ручное измерение времени (всей программы или раздела кода) вместо профилировщика или отслеживание ошибок в текстовом файле или электронной таблице вместо системы отслеживания ошибок.
Различие между инструментами и приложениями неясно. Например, разработчики все время используют простые базы данных (например, файл, содержащий список важных значений ) в качестве инструментов. [ сомнительно – обсудить ] Однако полноценная база данных обычно рассматривается как приложение или программное обеспечение само по себе. В течение многих лет искались инструменты компьютерной инженерии программного обеспечения (CASE). Успешные инструменты оказались неуловимыми. В каком-то смысле инструменты CASE подчеркивали поддержку дизайна и архитектуры, например, для UML. Но наиболее успешными из этих инструментов являются IDE.
Современные компьютеры очень сложны, и для их продуктивного программирования необходимы различные абстракции. Например, вместо того, чтобы записывать двоичное представление программы, программист напишет программу на языке программирования, таком как C, Java или Python. Инструменты программирования, такие как ассемблеры , компиляторы и компоновщики, переводят программу с исходного языка, доступного для записи и чтения человеком, в биты и байты, которые может выполнить компьютер. Интерпретаторы интерпретируют программу на лету, чтобы создать желаемое поведение.
Эти программы выполняют множество четко определенных и повторяющихся задач, которые, тем не менее, были бы трудоемкими и подверженными ошибкам при выполнении человеком, например, размещение частей программы в памяти и исправление ссылок между частями программы, как это делает компоновщик. Оптимизирующие компиляторы, с другой стороны, могут выполнять сложные преобразования исходного кода, чтобы улучшить скорость выполнения или другие характеристики программы. Это позволяет программисту больше сосредоточиться на более высоких уровнях, концептуальных аспектах программы, не беспокоясь о деталях машины, на которой она запущена.
Из-за высокой сложности программного обеспечения даже самый опытный разработчик программного обеспечения не может понять большинство программ с первого взгляда. Абстракции, предоставляемые языками программирования высокого уровня, также затрудняют понимание связи между исходным кодом, написанным программистом, и фактическим поведением программы. Чтобы найти ошибки в программах и предотвратить создание новых ошибок при расширении программы, разработчик программного обеспечения использует некоторые программные инструменты для визуализации всех видов информации о программах.
Например, отладчик позволяет программисту извлекать информацию о запущенной программе в терминах исходного языка, используемого для ее программирования. Отладчик может вычислить значение переменной в исходной программе из состояния конкретной машины, используя информацию, сохраненную компилятором. Отладчики памяти могут напрямую указывать на сомнительные или совершенно неправильные обращения к памяти запущенных программ, которые в противном случае могут остаться незамеченными и являются распространенным источником сбоев программ.
Программные инструменты бывают разных форм:
Интегрированные среды разработки объединяют возможности многих инструментов в одном пакете. Например, они упрощают выполнение определенных задач, таких как поиск контента только в файлах определенного проекта. Например, IDE могут использоваться для разработки приложений корпоративного уровня.
Различные аспекты IDE для конкретных языков программирования можно найти в этом сравнении интегрированных сред разработки .
Медиа, связанные с инструментами программирования на Wikimedia Commons