Компьютерная программа это – подробный план или порядок решения проблемы компьютером; точнее, однозначная упорядоченная последовательность вычислительных инструкций, необходимая для достижения такого решения. Компьютерные программы называют программным обеспечением, а оборудование (железо) аппаратным обеспечением.
Программы, хранящиеся в памяти компьютера, позволяют ему выполнять различные задачи последовательно или даже с перерывами. Идея внутренней программы была предложена в конце 1940-х годов математиком венгерского происхождения Джоном фон Нейманом. Первым цифровым компьютером с возможностью внутреннего программирования был «Baby», построенный в Манчестере в 1948 году.
Программа готовится путем формулирования задачи и ее последующего выражения на соответствующем компьютерном языке, предположительно подходящем для приложения. Созданная таким образом спецификация преобразуется, обычно в несколько этапов, в закодированную программу, непосредственно исполняемую компьютером, на котором должна выполняться задача. Говорят, что закодированная программа написана на машинном языке, тогда как языки, пригодные для оригинальной формулировки, называются проблемно-ориентированные языки. Был разработан широкий спектр проблемно-ориентированных языков, основными из которых являются С , Python и C++.
Компьютеры поставляются с различными программами, предназначенными в первую очередь для помощи пользователю в выполнении заданий или оптимизации производительности системы. Cборник программ, названный операционная система (ось) так же важен для работы компьютерной системы, как и ее аппаратное обеспечение. Современная технология позволяет встроить некоторые рабочие характеристики в виде фиксированных программ (вводимых по заказам клиентов) в центральный процессор компьютера во время производства. Что касается пользовательских программ, операционная система может контролировать их выполнение, например, когда Программа планирования определяет, какая пользовательская программа должна быть выполнена следующей. Однако некоторые программы операционной системы могут работать как независимые единицы, чтобы облегчить процесс программирования. К ним относятся переводчики (либо сборщики или компиляторы), которые преобразуют всю программу с одного языка на другой; интерпритаторы, которые выполняют программу последовательно, переводя на каждом этапе; и отладчики, которые выполняют программу по частям и отслеживают различные обстоятельства, позволяя программисту проверить правильность работы программы или нет.