Машинная реализация составленного алгоритма решения задачи выполняется в процессе программирования. На этом этапе алгоритм записывается в виде программы решения задачи на ЭВМ. Для того чтобы описание алгоритмов стало понятным машине, используются различные языки программирования. С их помощью из отдельных элементов (операторов) записывается текст программы.
Программа -последовательность операторов, каждый из которых является соответствующей инструкцией для выполнения необходимой арифметической или логической операции.
На сегодняшний день разработано довольно-таки большое количество языков программирования (несколько тысяч). Каждый из них предназначен для использования при решении определенного класса задач (вычислительных, логических, моделирования, реализации баз и банков данных и т.д.). Среди наиболее известных языков программирования: PASCAL, BASIC, C (C++, C#), JAVA, PHP и многие другие.
Программа на языке программирования принципиально не зависит от того, на каком типе ЭВМ будет решаться данная задача. Вместе с тем для каждой программы требуется выполнить ее перевод на так называемый машинный язык данной ЭВМ (т.е. внутренний, конкретно управляющий аппаратурой именно этого компьютера или класса подобных компьютеров). Для этой цели существуют специальные программные средства, называемые трансляторами.
Трансляция (с англ. - перевод) осуществляется автоматически при вводе программы задачи в ЭВМ. В процессе трансляции программа расчленяется на соответствующие машинные операции, которые может выполнять данная ЭВМ.
Последовательность команд, реализующих эти операции, и образует машинную программу решения задачи, записанную на определенном для данного типа ЭВМ машинном языке. Каждая из таких команд содержит: код операции, которую должна выполнить машина; адреса ячеек памяти, в которых хранятся числа, участвующие в выполнении данной операции; адрес ячейки памяти, куда должен быть помещен результат, полученный после вычислений.
Дальнейшим развитием этого направления было создание программных средств трансляции, выполненных на более высоком уровне. Они позволяют не просто в текущем режиме преобразовывать (транслировать) инструкции языка программирования в машинные коды (команды), но и создавать уже готовые для выполнения, загружаемые в оперативную память программные модули.
Данный процесс получил название компиляции, а соответствующие программные средства - компиляторы.
На современном этапе рассматриваемые программные средства интегрировались в единые системы разработки программного обеспечения. Такие системы сочетают возможности разработки программ на одном из языков программирования с трансляцией и компиляцией в загружаемые программные модули. Последними достижениями являются так называемые CASE-средства. Их использование уже не требует знания конкретного языка программирования. Разработка программ сводится к визуальному конструированию основных компонентов системы: пользовательского интерфейса, элементов данных, функций обработки данных в программе и т.д. При этом программный код (загружаемый программный модуль) формируется автоматически.