Сайт о телевидении

Сайт о телевидении

» » Что такое компьютерная программа кратко. Компьютерная программа

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

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

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

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

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

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

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

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

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

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

11.06.2010

Читайте также:

Последнее редактирование: 2012-01-23 12:08:31

Метки материала: ,

Относится к категории нематериальных активов .

Энциклопедичный YouTube

  • 1 / 5

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

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

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

    Хранение и выполнение

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

    Одновременное выполнение

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

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

    Самомодифицирующиеся программы

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

    Использование программ

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

    Правовые аспекты

    Согласно ст. 1261 ГК РФ программой для ЭВМ является представленная в объективной форме совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств в целях получения определенного результата, включая подготовительные материалы, полученные в ходе разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения.

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

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

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

    Исключительное право на программы для ЭВМ и базы данных возникает автоматически с момента её создания и действует в течение всей жизни автора и семидесяти лет, считая с 1 января года, следующего за годом смерти автора (либо смерти последнего из соавторов).

    Действующим законодательством Российской Федерации не предусмотрено патентование компьютерных программ как таковых. Данные объекты интеллектуальной собственности охраняются авторским правом, которое возникает автоматически с момента их создания и не требуют обязательной государственной регистрации. Однако программы для ЭВМ и базы данных могут быть зарегистрированы в Роспатенте по желанию правообладателя.

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

    Есть программы, которые пользователь должен устанавливать сам – пользовательские программы, например любая игра или видео-, аудио-плеер. Есть программы, которые устанавливаются автоматически при установке Windowsслужебные программы, например Проводник. Есть программы, которые также устанавливаются сами и запускаются в фоновом режиме, работая в оперативной памяти компьютера – это системные программы, некоторые из них можно увидеть в Диспетчере задач (комбинация клавиш Ctrl+Alt+Del).

    Как можно отличить программу от обычного файла?
    1. Чаще всего конечно по расширению. Программы обычно имеют расширение «.EXE».

    2. Кроме того, размер программы обычно больше, чем размер простого файла и чаще всего измеряется в Мегабайтах. Но это не аксиома, если программа работает с какой-нибудь базой данных, то по размеру файл базы данных может быть на порядок больше программы. Тоже самое и с видео-файлами, их размеры на порядок превышают размеры программ-плееров.

    3. При запуске программы, если она уже установлена, откроется её рабочая область – интерфейс. Если же программа не установлена, то откроется мастер установки программы, правда это если программа требует установки – Вы это сразу поймёте. А вот если открывать обычный файл, то запустится программа, которая знает, как работать с этим файлом, она и откроет содержимое данного файла. Например, если вы запускаете музыкальный файл, то сначала откроется программа-плеер, а затем начнётся воспроизведение выбранного файла.


    4. Если посмотреть на рабочий стол или в Проводник, то программы выделяются от файлов яркими ярлыками. И если нажать ПРАВОЙ кнопкой мыши на ярлыке и выбрать СВОЙСТВА, то в ТИПЕ ОБЪЕКТА будет написано «Приложение», а у файла будет написано ТИП ФАЙЛА, например, «Текстовый файл».


    5. Ну и, наверное, очевидное отличие: файл – это продукт программы, а программа – это продукт программиста 🙂

    Что такое программа?

    Компьютерная программа - набор инструкций для выполнения на вычислительной технике (компьютерах). Как правило, программы могут быть представлены в виде исходного кода и объектного (бинарного) кода.

    С точки зрения пользователя компьютера важным отличием является характер программы :
    * системные программы - программы, обеспечивающие взаимодействие пользователя с компьютером и создающие среду для выполнения прикладных программ. К таким программам, например, относятся «операционные системы» и «драйвера».
    * прикладные программы - программы, с которыми взаимодействует непосредственно пользователь. Сюда можно отнести «браузер», «текстовые редакторы», «игры», «web-сайты».

    Синонимы слова программа: «программное обеспечение», «ПО», «приложение», «software».

    Считается, что компьютер - есть совокупность «аппаратного» и «программного» обеспечения.

    Программное обеспечение можно разделить также по следующим признакам :
    * целевая платформа - различное «аппаратное обеспечение», которое поддерживает различный набор инструкций, поэтому, как правило, «программа» создается под конкретное «аппаратное обеспечение». Наиболее известные платформы: «ARM», «x86», «x64», «IA64», «Itanium» и т.д.;
    * целевая «операционная система» - так как различные «операционные системы» создают различные среды для прикладного программного обеспечения, - важно под какую операционную систему создана та или иная «программа». Наиболее известными семействами «операционных систем» являются: Microsoft Windows, Ubuntu Linux, SuSe Linux, MacOS, FreeBSD, NetBSD, OpenBSD.

    Как правило, создание программного обеспечения предполагает написание исходных текстов программы на определенном «языке программирования», последующую «компиляцию» программы, «отладку», «тестирование» и распространение программного обеспечения.

    На заре вычислительной техники (30–50-е годы ХХ в.) исходные тексты записывались в виде «машинного кода» (т.е. указания номеров инструкций и аргументов для них), позднее появился первый известный язык программирования «ASSEMBLER», который значительно упростил процесс создания программы, так как позволил указывать не числовой номер инструкции, а ее символьное обеспечение, что упростило чтение и отладку исходного теста программы. Последующее появление языков более «высокого уровня», чем «ASSEMBLER», позволило перевести создание программного обеспечения из удела технических специалистов, обеспечивающих функционирование конкретных аппаратных комплексов, в удел специалистов по созданию программного обеспечения, именуемых далее «программистами» или «разработчиками программного обеспечения».

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

    В СНГ отношение к «программистам» всегда было несколько особенным. Вследствие развала Советского Союза и уничтожения предприятий, непосредственно занимавшихся созданием вычислительной техники, страны СНГ вынуждены практически в полном объеме (исключая военные нужды) закупать данную технику в других государствах, обладающих технологиями производства аппаратного обеспечения. Такая ситуация привела к некоторой задержке в поступлениях и определенной нехватке вычислительной техники в странах СНГ, поэтому отечественные программисты были вынуждены обходиться меньшим количеством часов работы с вычислительной техникой и меньшими аппаратными ресурсами (память, скорость вычислений, скорость передачи информации и т.д.).

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

    С появлением и популяризацией интернета, индустрия создания программного обеспечения перешла на новый уровень - ведь распространять программы (и продавать) стало намного проще. Это обеспечивалось, во-первых, появлением систем моментальной оплаты (электронных денег, СМС, терминалов, кредитных карт, и т.п.), во-вторых, появлением особого вида программного обеспечения «web-сайтов», которые на первом этапе своего развития скорее напоминали электронный вариант печатных изданий (книг, газет, журналов), однако, позднее стали полноценными приложениями.

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

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

    Что такое компьютерная программа в общем понимании?

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

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

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

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

    Классы компьютерных программ

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

    Однако во всех системах классификации выделяют следующие компьютерные программы (список приводится ниже):

    • первичные системы ввода/вывода (BIOS, UEFI);
    • системные программы и их компоненты (операционные системы и их собственные службы);
    • сервисное и обслуживающее программное обеспечение;
    • среды разработки (создание программ);
    • прикладное ПО (узко ориентированные пользовательские программы, устанавливаемые на компьютер для выполнения конкретно поставленных задач).

    Не стоит удивляться, что в списке присутствуют даже операционные системы или BIOS. Любая современная ОС обеспечивает взаимодействие пользователя с программными и аппаратными средствами компьютера через командный или графический интерфейс, а первичная система отвечает за сохранение информации обо всех «железных» компонентах и тестирование оборудования на стадии включения компьютера.

    Как создаются приложения?

    В разработку особо вникать смысла нет, поскольку здесь могут понадобиться хотя бы базовые знания языков программирования.

    Достаточно отметить, что создание компьютерных программ сводится к написанию кода на самом языке (или с использованием сред разработки, например, Java SDK), тестированию приложения в самой среде и компиляции (преобразованию в код, распознаваемый машиной).

    Как работает большинство программ?

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

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

    Практическое применение

    Использование компьютерных программ в большинстве случаев сводится к тому, чтобы запустить исполняемый файл формата EXE, который создается после установки приложения на компьютер (в мобильных устройствах применяются другие форматы). Для инсталляции предусмотрены те же исполняемые компоненты, обычно имеющие название Setup.exe (для обновлений системы Setup.msi). Но это не всегда так.

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

    Самым ярким примером являются VST-синтезаторы и эффекты, подключаемые к музыкальным редакторам и секвенсорам через соответствующий интерфейс или хост. Что такое компьютерная программа в этом смысле? Это даже не программа, а компонент, в котором прописан набор команд, исполняемых при подключении к интерфейсу и загрузке в оперативную память. Только из «оперативки» производится посыл на обработку центральным процессором, а не наоборот, как в случае с исполняемыми файлами.

    Проблемы совместимости

    Понятно, что создать какое-то универсальное приложение, которое бы работало абсолютно на всех известных операционных системах и устройствах, невозможно даже в принципе. Тем не менее, такие попытки предпринимаются, причем весьма небезуспешно (по крайней мере, в Windows что-то похожее есть).

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

    Вместо итога

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

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

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