Разница между алгоритмом и программой

Представления о программах среднестатистического пользователя весьма ограничены и основаны на опыте запуска и работы в приложениях. Мы знаем, что существуют программисты, пишущие программы, а наше дело — воспользоваться результатами их труда. Об алгоритмах люди, закончившие школу энное время назад, вспоминают в контексте теории алгебры, смутно представляя, что эти знания уж точно не пригодятся. А если приходится столкнуться с пересечением этих понятий — большинство из нас теряется, не находя связей между алгоритмами и программами, и, значит, не понимая поставленной задачи. Иногда эти понятия объединяют, считая, что “алгоритм” — более профессиональное и точное обозначение “программы”. Чтобы заполнить пробелы в представлениях, посмотрим, что все же стоит за терминологией.

Определение

Алгоритм — инструкция, включающая определенный четкий порядок действий, совершаемых для выполнения поставленной задачи. Число действий всегда конечно.

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

Сравнение

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

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

Понятие алгоритма гораздо шире, нежели программы: базовое понятие математики. Компьютерная программа является объектом права интеллектуальной собственности, алгоритм же к таковым не относится.

Выводы TheDifference.ru

  1. Алгоритм — инструкция, программа — запись последовательности инструкций.
  2. Алгоритм может быть представлен в любом виде, программа — на языке программирования.
  3. Программа включает описание данных и действий, алгоритм — только действий.
  4. Алгоритм может быть предназначен для решения класса задач.
  5. Алгоритм является базовым понятием математики.
  6. Программа является объектом авторского права.