Практика программирования показывает, что решение прикладных, инженерных, экономических и научных задач на ЭВМ сложный и трудоемкий процесс, состоящий из следующих этапов.
1. Постановка задачи состоит в четком изложении условия задачи и определении подзадач.
2. Физический и математический анализ. Анализируется, существует ли вообще решение данной задачи и единственно ли оно. Подбирается математический аппарат, и строится математическая модель для решения задачи. Выбирается метод или методика решения (составляются формулы, определяются правила, связывающие эти формулы).
3. Этап алгоритмизации. На основании выбранного метода и конкретных методик с учетом возможностей ПК разрабатывается алгоритм и строится его схема. Этот этап заключается в разложении вычислительного процесса на возможные составные части, описании содержания каждой такой части, установлении порядка их следования, которые определят структуру программы, т.е. разрабатывается укрупнённый алгоритм решения задачи и проверяется возможность реализации выбранного метода. Подобное расчленение алгоритма на составные части называется структуризацией.
4. Этап программирования. Выбирается язык и (или) система программирования, и в соответствии с алгоритмом разрабатывается программа на конкретном языке программирования.
5. Отладка программы и тестирование. Отладка программы состоит в обнаружении и исправлении ошибок, допущенных на всех этапах проектирования программы. Синтаксические ошибки обнаруживаются компилятором, который выдаёт сообщение об ошибке и её месте (в основном это ошибки в написании операторов) при компиляции. Алгоритмические ошибки или смысловые (семантические) обнаруживаются в результате тестирования.
6. Решение задач на компьютере.
7. Обработка результатов решения задач. Производится анализ результатов, строятся таблицы, графики, делаются выводы.
Дополнительно могут присутствовать такие этапы, как описание структуры программы, описание структур данных, оптимизация программы, этап документирования.
Готовая программа в компьютере проходит следующие стадии:
Различают следующие системы подготовки и выполнения программы:
1) компилирующего типа (статистическая подготовка) (СИ, ПАСКАЛЬ);
2) интерпретирующего типа (динамическая подготовка).
В системах компилирующего типа сначала для всей программы готовится загрузочный модуль, который затем выполняется, т.е. подготовка и выполнение разделены во времени.
В системах интерпретирующего типа последовательно читается, транслируется и сразу же выполняется оператор за оператором (БЕЙСИК).