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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Компьютерная программа.

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

Создание программ[править | править вики-текст]

Чаще всего образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов). Из этого образа, находящегося, как правило, на диске, исполняемая программа в оперативной памяти может быть построена программным загрузчиком.

В системном программировании программой называются данные, которые используются процессором как инструкции по управлению компьютерной системой[2]. В состав программы может входить как машинный код, исполняемый процессором для достижения некоторой цели, так и необходимые для этого данных. Отличительно особенностью программы является её нахождение в памяти и исполнение процессором.

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

Запись исходных текстов программ при помощи языков программирования облегчает понимание и редактирование человеком. Этому, в частности, помогают комментарии, допустимые в синтаксисе большинства языков. Для выполнения на компьютере готовый текст программы преобразуется (компилируется) в машинный код.

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

Интерпретируемые программы, для которых, как правило, не применяется процесс компиляции и которые интерпретируются операционной системой или специальными программами-интерпретаторами, называются скриптами или «сценариями».

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

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

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

Использование программ[править | править вики-текст]

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

Правовые аспекты[править | править вики-текст]

Программы с общедоступными исходными текстами называются открытыми.

Компьютерные программы в большинстве стран являются объектами авторского права (включая Украину и Россию). В некоторых странах компьютерные программы могут защищаться патентами. Патентованию компьютерных программ способствовало Соглашение о торговых аспектах прав интеллектуальной собственности, которое установило минимальные[3] требования к охраняемому ряду объектов прав интеллектуальной собственности и фактически разрешило патентовать программы. Соглашение ТРИПС обязательно для выполнения на территории Украины и России как государств-членов ВТО.

Таким образом программа может охраняться и как "литературное произведение" и как "изобретение". Для определения режима правовой охраны в первом случае используется "текст кода", в другом - признаки применяемые для изобретений, предлагаемых для патентования (то есть нужно доказать «инновационность», «оригинальность» и «неочевидность», а также возможность решения существующей технической проблемы и коммерческую пригодность)[4]. При этом существует проблема правового разграничения компьютерных программ от проприетарного цифрового контента и проприетарного программного обеспечения[5].

Авторское и некоторые другие[какие?] права интеллектуальной собственности позволяют ограничивать доступ к исходным текстам программ.

Определения из стандартов[править | править вики-текст]

Программа — данные, предназначенные для управления кон­кретными компонентами системы обработки данных в целях реализации определённого ал­горитма.

— ГОСТ 19781—90. ЕСПД. Термины и определения

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

ст. 1261 «Программы для ЭВМ» ГК РФ

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Компьютеры: справочное руководство = Computer Handbook / Пер. с англ. /Под ред. Г. Хелмса. — М.: Мир, 1986. — Т. 1. — С. 13. — 416 с.
  2. Фельдман С. К. Системное программирование. Полный курс лекций с теоретическими материалами и лабораторными работами. — 2003. — 512 с. — ISBN 5-88548-096-6.
  3. Д.М. Чибисов Чибісов Д.М. «Правова природа Угоди про торговельні аспекти прав інтелектуальної власності (ТРІПС)» // «Науковий вісник Ужгородського національного університету. Серія «Право».– 2012. – № 19. // Науковий вісник Ужгородського національного університету : Научная статья. — 2012. — № 19.
  4. Чибисов Д.М. Режимы охраны проприетарного цифрового контента (на украинском) (08.04.2015).
  5. Д.М. Чибисов. Проприетарній цифровой контент: основная характеристика. Блог (08.04.2015).