Открыть сервис

Программа: определение и виды

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

Классификация программ

Многообразие значений термина позволяет выделить несколько основных категорий, различающихся по сфере применения и природе.

Компьютерные программы

Это наиболее распространённое в современном обиходе значение. Компьютерная программа (программное обеспечение) — это данные и команды, предназначенные для управления конкретными компонентами системы обработки информации. По назначению выделяют:

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

Компьютерные программы создаются на языках программирования (C++, Python, Java) и преобразуются в машинный код или исполняются интерпретатором. Правовая охрана программ в России осуществляется в рамках авторского права, а сами программы признаются объектами интеллектуальной собственности.

Политические и социальные программы

В политике программой называют документ, излагающий цели, задачи и основные требования политической партии или общественного объединения. Например, программа Коммунистической партии Советского Союза или предвыборные программы кандидатов. Социальные программы — это комплексы мер, реализуемых государством (например, программа материнского капитала в РФ) или общественными организациями для решения социальных проблем.

Образовательные программы

В сфере образования программа определяет содержание обучения, его объём и планируемые результаты. Существуют:

  • Основные общеобразовательные программы (дошкольного, начального, основного и среднего общего образования).
  • Основные профессиональные образовательные программы (среднего профессионального и высшего образования).
  • Дополнительные образовательные программы (развивающие кружки, курсы повышения квалификации).

Экономические и производственные программы

В экономике программа может означать план производственной деятельности предприятия на определённый период (производственная программа) или комплекс мер государственного регулирования (программа импортозамещения, программа развития Дальнего Востока).

История развития понятия

Происхождение термина восходит к греческому слову «programma» (предписание, публичное объявление). В античности программой называли объявление о предстоящем зрелище. В XIX веке термин закрепился в значении плана деятельности (например, программа концерта или учебная программа).

Современное техническое значение сформировалось в середине XX века. Одной из первых программируемых машин считается аналитическая машина Чарльза Бэббиджа, для которой Ада Лавлейс в 1843 году написала алгоритм вычисления чисел Бернулли. Однако практическое программирование началось с появлением электронных вычислительных машин в 1940-х годах. Первые программы вводились в машину с помощью коммутации штекеров или перфокарт. В 1949 году Джон фон Нейман предложил архитектуру с хранимой в памяти программой, что стало основой для всех современных компьютеров.

С развитием вычислительной техники возникли языки программирования высокого уровня (Фортран, 1957; Кобол, 1959), а затем и операционные системы, позволяющие запускать несколько программ на одном устройстве.

Устройство и жизненный цикл компьютерной программы

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

Жизненный цикл программы включает следующие этапы:

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

По способу распространения программы делятся на проприетарные (с закрытым исходным кодом) и свободные (с открытым исходным кодом, распространяемые по лицензии, например GNU GPL).

Применение и значение

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

В гуманитарной сфере программы служат инструментом управления: государственные целевые программы позволяют концентрировать ресурсы на приоритетных направлениях. Федеральные целевые программы в России (например, «Жилище», «Развитие образования») утверждаются постановлениями Правительства РФ и финансируются из бюджетов различных уровней.

Критика и ограничения

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

С философской точки зрения, программа как жёстко заданная последовательность действий ограничивает свободу выбора исполнителя, что порождает дискуссии о пределах алгоритмизации человеческой деятельности.

Источники

  1. ГОСТ Р 51904-2002 «Информационные технологии. Процессы жизненного цикла программных средств».
  2. Федеральный закон от 29.12.2012 № 273-ФЗ «Об образовании в Российской Федерации».
  3. Танейбаум Э., Бос Х. «Современные операционные системы».
  4. Кнут Д. «Искусство программирования».
  5. Вирт Н. «Алгоритмы и структуры данных».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →