Средства разработки программ

Средства разработки программ используются для разработки нового программного обеспечения, как системного, так и прикладного.

В состав средств разработки ПО входят (рис. 5.16):

  • языки программирования;
  • трансляторы;
  • редакторы связей.

При разделении программ на системные и прикладные возникло и разделение в языках программирования — одни их них (Basic, Fortran) предназначены для прикладного программирования, другие (Assembler) — для системного. В настоящее время используются языки, программирования (С, C++, Microsoft Visual C++ и др.), предназначенные для создания программ как системного, так и прикладного уровней.

Рис. 5.16. Этапы программирования
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд. Программа, подготовленная на каком-либо языке программирования, называется исходным модулем.

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

Трансляторы делятся на два класса: компиляторы и интерпретаторы. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.

Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется, т.е. переводит весь исходный модуль на машинный язык.

Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой, т.е. последовательно, по мере выполнения, переводит на машинный язык операторы исходного модуля.

После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.

Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.

Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался. Например, Паскаль обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора.

С другой стороны, Бейсик создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.

Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.

Редактор связей — системная обрабатывающая программа, редактирующая и объединяющая объектные модули, полученные в результате работы транслятора, в единые загрузочные, готовые к выполнению про­граммные модули, которые загружаются ОС для выполнения в основную память.

Отладчики управляют процессом исполнения программы, являясь инструментом для поиска и исправления ошибок в программе.