Компью́терная програ́мма — набор команд для компьютера, описывающий алгоритм его действий при выполнении некоторой задачи.
В аналогичном смысле программою называют также набор инструкций, описывающих порядок действий любой другой вычислительной машины (например, программируемого калькулятора) или автомата (такого, как жаккардовый ткацкий станок), однако такие программы не называют компьютерными.
Процесс составления компьютерной программы называется программированием, а людей, занимающихся программированием, называют программистами. В широком смысле к программированию относят весь процесс сочинения программы, который нередко включает ряд фаз, предшествующих собственно программированию (планирование, составление алгоритма, и т. д.).
Существует собирательное понятие «программное обеспéчение», в рамках которого объединяются все программы, предназначенные для выполнения тех или иных задач; и в рамках него они классифицируются по функциональному назначению (прикладное программное обеспечение, системное программное обеспечение, и т. д.), по отношению к интеллектуальной собственности их авторов (свободное программное обеспечение, собственническое программное обеспечение, и т. д.), и так далее.
Обзор Laitits диктовка текста голосом и голосовые команды на ПК
Составление и исполнение программы [ править | править код ]
Конечной формой любой программы является машинный код, предназначенный для непосредственного исполнения устройством управления, которое в современных компьютерах является частью процессора. Так как машинный код имеет форму, мало пригодную для составления и даже для восприятия человеком (кодовые номера операций), то вместо программирования в машинном коде используются другие приёмы и средства, облегчающие труд программиста.
Исторически первым (и наиболее примитивным) из них является программирование на языке ассемблера, в котором каждому элементу машинного кода поставлен в соответствие собственный буквенный (мнемонический) код, пригодный для запоминания и употребления человеком (программистом). Когда программист составит программу на языке ассемблера, он запускает особую программу (ассемблер), предназначенную для перевода этого кода в машинный код, затем сохраняемый на диске в виде файла, пригодного для запуска на исполнение. (Этим запуском в случае необходимости занимается загрузчик программ, входящий в состав операционной системы компьютера.)
Языки программирования высокого уровня [ править | править код ]
Более распространённым, чем язык ассемблера, в наши дни является программирование при помощи языков программирования высокого уровня. Элементы этих языков освобождены от однозначного соответствия машинному коду того или иного процессора, а предназначены для формального описания алгоритмов. При этом могут применяться два различных подхода:
- Императивное программирование — описание порядка действий компьютера, управляющих его поведением и состоянием. В рамках этого подхода исторически развиваются разные методы (структурное программирование, процедурное программирование, объектно-ориентированное программирование, событийно-ориентированное программирование и т. д.), некоторые из которых подчас применяются одновременно.
- Декларативное программирование — выбор конкретного алгоритма автоматизируется, а программист задаёт только ряд требований, которым решение задачи должно удовлетворять. Примерами подходов декларативного программирования являются:
- функциональное программирование, в котором алгоритм описывается как вычисление некоторой математической функции (возможно, определяемой через другие математические функции),
- логическое программирование — автоматическое доказательство теорем и применение логического вывода, что приводит к созданию информации на основе имеющегося набора фактов и правил.
Употребление языков высокого уровня увеличивает продуктивность труда программиста, так как автоматизирует трудоёмкий процесс перевода алгоритма в машинные коды, а также способствует переносимости программы между системами с различными процессорами, машинный код у которых различается. Кроме того, употребление комментариев к исходному коду программ (невозможное в машинном коде) улучшает понятность программы с человеческой точки зрения, как для других программистов (например, при совместном программировании), так и для первоначального автора.
+200 FPS в Доте 2 за 10 СЕКУНД
Преобразование программы в машинный код [ править | править код ]
Программа на языке высокого уровня, подобно вышеописанному коду на языке ассемблера, также нуждается в преобразовании в машинный код перед её исполнением. Возможны следующие подходы к этой задаче:
- Компиляция, то есть обработка исходного кода программы другой специализированной программою (компилятором), создающим исполнимый файл с машинным кодом внутри. Запуск этого файла является достаточным для исполнения программы, так что он может распространяться отдельно от компилятора и от исходного кода.
- Интерпретация программ — при этом подходе исходный код программы воспринимается как набор инструкций для другой специализированной программы (интерпретатора), которая-то и занимается исполнением этих инструкций (самостоятельно подбирая необходимый для этой задачи машинный код).
Интерпретация по сравнению с компиляцией имеет и недостаток, которым является необходимость интерпретатора для исполнения программы, и достоинство, которым является возможность запуска исходного кода программы (без отдельного подготовительного действия компиляции, без создания отдельного исполняемого файла).
Действия самогó компилятора или интерпретатора зависят от конкретного языка программирования и от системы машинных кодов конкретного процессора, поэтому компиляторы и интепретаторы производятся отдельно для каждого языка программирования и отдельно для каждой из компьютерных платформ, отличающихся по системе машинных кодов и (или) по способу их запуска. Компиляция некоторой программы компилятором также производится отдельно для каждой из платформ и порождает различные машинные коды, соответствующие особенностям той или иной платформы.
Нередким является наличие нескольких компиляторов или интерпретаторов для одного и того же языка высокого уровня, созданных различными производителями. Обыкновенно они также различаются возможностями языка (например, наборами готовых, ужé реализованных, алгоритмов, готовых к употреблению программистами).
Декларативные языки программирования, как правило, являются интерпретируемыми, так как принцип описания алгоритмов, в них принятый, исключает однозначный перевод программы на машинные коды и требует принятия решений интерпретатором.
Источник: traditio.wiki
8. По ис. Системное по
Программное обеспечение (software) – это набор команд, управляющих работой компьютера. Без программного обеспечения компьютер не сможет выполнять задачи, которые мы обычно связываем с компьютерами. Функции программного обеспечения следующие:
- управлять компьютерными ресурсами организации;
- обеспечивать пользователя всеми инструментами, необходимыми для извлечения пользы из этих ресурсов;
- выполнять роль посредника между организациями и хранимой информацией.
Выбор соответствующего потребностям организации программного обеспечения – одна из ключевых задач управляющего персонала.
Программа (program) – это набор команд для компьютера. Процесс создания или написания программ называется программированием, а люди, которые специализируются на этом виде деятельности – программистами. Синонимом слову «программа» является термин «приложение» (application).
Для того чтобы программа была выполнена, она должна быть загружена в оперативную память компьютера вместе с данными, которые необходимо обработать (обычно говорят запустить программу или запустить на выполнение). Когда выполнение программы завершено, она выгружается из оперативной памяти компьютера. Все современные компьютеры позволяют загрузить на выполнение несколько программ одновременно.
ОСНОВНЫЕ ТИПЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Существует два основных типа программного обеспечения: системное и прикладное. Каждый тип выполняет различные функции.
Системное программное обеспечение (system software) – это набор программ, которые управляют компонентами компьютера, такими как процессор, коммуникационные и периферийные устройства. Программистов, которые создают системное программное обеспечение, называют системными программистами.
К прикладному программному обеспечению (application software) относятся программы, написанные для пользователей или самими пользователями, для задания компьютеру конкретной работы. Программы обработки заказов или создания списков рассылки – примеры прикладного программного обеспечения.
Программистов, которые пишут прикладное программное обеспечение, называют прикладными программистами. Оба типа программного обеспечения взаимосвязаны и могут быть представлены в виде диаграммы, изображенной на рисунке. Как видите, каждая область тесно взаимодействует с другой.
Системное программное обеспечение обеспечивает и контролирует доступ к аппаратному обеспечению компьютера. Прикладное программное обеспечение взаимодействует с аппаратными компонентами через системное. Конечные пользователи в основном работают с прикладным программным обеспечением. Чтобы обеспечить аппаратную совместимость, каждый тип программного обеспечения разрабатывается для конкретной аппаратной платформы.
СПО (определение – см. выше) Что включают:
а) Операционные системы
Операционная система — комплекс системных программ, расширяющий возможности вычислительной системы, а также обеспечивающий управление её ресурсами, загрузку и выполнение прикладных программ, взаимодействие с пользователями. В большинстве вычислительных систем ОС являются основной, наиболее важной (а иногда единственной) частью системного ПО.
Основные функции (простейшие ОС):
- Загрузка приложений в оперативную память и их выполнение.
- Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).
- Управление оперативной памятью (распределение между процессами, виртуальная память).
- Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, компакт-диск и т. д.), организованным в той или иной файловой системе.
- Пользовательский интерфейс.
- Сетевые операции, поддержка стека протоколов.
Дополнительные функции:
- Параллельное или псевдопараллельное выполнение задач (многозадачность).
- Взаимодействие между процессами: обмен данными, взаимная синхронизация.
- Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
- Разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация).
Понятие операционной системы
Существуют две группы определений ОС: «совокупность программ, управляющих оборудованием» и «совокупность программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который, однако, становится ясен только при более детальном рассмотрении вопроса о том, зачем вообще нужны операционные системы.
Есть приложения вычислительной техники, для которых ОС излишни. Например, встроенные микрокомпьютеры содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом), сотовых телефонах и т. п. Зачастую такой компьютер постоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без ОС, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске. Тем не менее, некоторые микрокомпьютеры и игровые приставки всё же работают под управлением особых собственных ОС. В большинстве случаев, это UNIX-подобные системы (последнее особенно верно в отношении программируемого коммутационного оборудования: файрволов, маршрутизаторов).
Основные идеи ОС
Предшественником ОС следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).
В 1950-60-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы.
б) Встроенные программы
Встроенные программы или firmware — это программы, «зашитые» в цифровые электронные устройства. В ряде случаев (например, BIOS IBM-PC совместимых компьютеров) являются по сути частью операционной системы, хранящейся в постоянной памяти. В достаточно простых устройствах вся операционная система может быть встроенной. Многие устройства современных компьютеров имеют собственные «прошивки», осуществляющие управление этими устройствами и упрощающие взаимодействие с ними.
Утилиты (англ. utility или tool) — программы, предназначенные для решения узкого круга вспомогательных задач.
Иногда утилиты относят к классу сервисного программного обеспечения
Утилиты используются для
- Мониторинга показателей датчиков и производительности оборудования — мониторинг температур процессора, видеоадаптера; чтение S.M.A.R.T. жёстких дисков;
- Управления параметрами оборудования — ограничение максимальной скорости вращения CD-привода; изменение скорости вращения вентиляторов.
- Контроля показателей — проверка ссылочной целостности; правильности записи данных.
- Расширения возможностей — форматирование и/или переразметка диска с сохранением данных, удаление без возможности восстановления.
Типы утилит
Проверка диска — поиск неправильно записанных либо повреждённых различным путём файлов и участков диска и их последующее удаление для эффективного использования дискового пространства.
Очистка диска — удаление временных файлов, ненужных файлов, чистка «корзины».
Разметка диска — деление диска на логические диски, которые могут иметь различные файловые системы и восприниматься операционной системой как несколько различных дисков.
Резервное копирование — создание резервных копий целых дисков и отдельных файлов, а также восстановление из этих копий.
Сжатие дисков — сжатие информации на дисках для увеличения вместимости жёстких дисков.
Утилиты работы с реестром
Утилиты мониторинга оборудования
г) Системы программирования
К этой категории относятся системные программы, предназначенные для разработки программного обеспечения:
- ассемблеры — компьютерные программы, осуществляющие преобразование программы в форме исходного текста на языке ассемблера в машинные команды в виде объектного кода.
- трансляторы — программы или технические средства, выполняющее трансляцию программы.
- компиляторы — Программы, переводящие текст программы на языке высокого уровня, в эквивалентную программу на машинном языке.
- интерпретаторы — Программы (иногда аппаратные средства), анализирующие команды или операторы программы и тут же выполняющие их
- компоновщики (редакторы связей) — программы, которые производят компоновку — принимают на вход один или несколько объектных модулей и собирают по ним исполнимый модуль.
- препроцессоры исходных текстов — это компьютерные программы, принимающие данные на входе, и выдающие данные, предназначенные для входа другой программы, например, такой, как компилятор
- Отла́дчик (debugger)- является модулем среды разработки или отдельным приложением, предназначенным для поиска ошибок в программе.
- текстовые редакторы — компьютерные программы, предназначенные для создания и изменения текстовых файлов, а также их просмотра на экране, вывода на печать, поиска фрагментов текста и т. п.
- специализированные редакторы исходных текстов — текстовые редакторы для создания и редактирования исходного кода программ. Специализированный редактор исходных текстов может быть отдельным приложением, или быть встроен в интегрированную среду разработки (IDE).
- библиотеки подпрограмм — сборники подпрограмм или объектов, используемых для разработки программного обеспечения.
- Редакторы графического интерфейса
д) Системы управления базами данных
Систе́ма управле́ния ба́зами да́нных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных.
Так как системы управления базами данных не являются обязательным компонентом вычислительной системы, зачастую их не относят к системному программному обеспечению. Часто СУБД осуществляют лишь служебную функцию при работе других видов программ (веб-серверы, серверы приложений), поэтому их не всегда можно отнести к прикладному программному обеспечению. Поэтому СУБД иногда относят к промежуточному программному обеспечению (Middleware)
Основные функции СУБД
- управление данными во внешней памяти (на дисках);
- управление данными в оперативной памяти с использованием дискового кэша;
- журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
- поддержка языков БД (язык определения данных, язык манипулирования данными).
Классификация СУБД по способу доступа к БД
Файл-серверные
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком — высокая загрузка локальной сети.
На данный момент файл-серверные СУБД считаются устаревшими.
Примеры: Microsoft Access, Paradox, dBase.
Клиент-серверные
Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера (см. Клиент-сервер).
Примеры: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL, ЛИНТЕР, MDBS.
Встраиваемые
Встраиваемая СУБД — библиотека, которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине.
Примеры: OpenEdge, SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL, Sav Zigzag, Microsoft SQL Server Compact, ЛИНТЕР.
Источник: studfile.net
Software — что это? Отвечаем на вопрос. Что за программа Software?
Любой пользователь компьютера каждый день сталкивается с таким понятием, как Software. Это и неудивительно, ведь современное понимание этого термина трактуется как «программное обеспечение», или, сокращенно, «ПО» («софт»). Рассмотрим некоторые важные аспекты, касающиеся типов ПО и взаимосвязи с остальными компонентами компьютерных систем. Итак, что такое Software?
Общие понятия
В общем смысле Software – это набор команд, директив по их исполнению на основе какого-либо языка программирования, программа или набор программ, отвечающих за взаимодействие не только между пользователем и компьютерной системой, но и между так называемыми железными компонентами компьютера или другими приложениями, созданными для определенных целей.
Многие пользователи Windows-систем достаточно часто обнаруживают у себя на компьютере «яблочные».
В зависимости от возложенных на программное обеспечение функций, весь софт можно разделить на несколько классов, о чем будет сказано несколько позже.
Hardware и Software: отличия и взаимосвязь
Толкование этих двух терминов возникло с появлением первых компьютеров. Сегодня принято считать, что Hardware – это аппаратная часть компьютера («железные» компоненты), которую можно пощупать руками (материнские платы, процессоры, оперативная память, периферия и другие устройства в самой системе или подключаемые к ней).
Совершенно противоположное толкование у термина Software. Перевод можно представить дословно как «мягкое изделие». В более широком смысле подразумевается то, что программу нельзя потрогать, она представляет собой в каком-то смысле даже некий виртуальный компонент.
Что такое компьютерная программа? С развитием технологий растет и их количество. Они наделяются.
И, что самое интересное, для обеспечения использования «железа» или доступа к его возможностям в обязательном порядке должно применяться специальное ПО в виде специальных управляющих программ, отвечающих за работоспособность таких устройств (драйверы, наборы команд ввода/вывода BIOS и т. д.).
Сам термин Software, перевод и трактовка которого сейчас используются повсеместно именно в контексте программного обеспечения, даже на заре развития компьютерной техники не был в обиходе. И только в начале 60-х годов прошлого столетия сформировался окончательно. Связано это было с введением четкого разграничения команд, отвечающих за управление аппаратной частью компьютера, и конечным пользователем. Взаимосвязанные классы (Software и Hardware) стали называть программно-аппаратными комплексами.
Классификация программного обеспечения по нескольким критериям
Поскольку Software – это именно программная часть любой компьютерной системы, такое ПО можно разделить на несколько больших категорий исходя из возложенных на него задач. Так, например, по использованию и тиражированию ПО разделяют на корпоративное (выполненное на заказ для крупных фирм и компаний) и ПО для широкого круга пользователей.
По критерию переносимости программы могут быть платформозависимыми (работающими исключительно в одной среде и с одним типом «железа») и кроссплатформенными (адаптированным к совершенно разным системам).
Какие теоретические познания более всего полезны для начинающих пользователей ПК? С высокой.
По типу распространения ПО можно разделить на закрытые программы, открытые (касательно исходного кода Open Source с лицензией GNU) и свободные. Кроме того, сюда нередко включают бесплатное, платное и условно-бесплатное программное обеспечение. Последний тип приложений имеет полную или частично ограниченную функциональность в течение определенного периода времени, по истечении которого, программу придется купить. В противном случае она перестанет работать.
А вот по назначению классификация подразумевает наличие трех больших категорий программного обеспечения:
- системное;
- прикладное;
- инструментальное (средства разработки, инструменты и утилиты).
Системное ПО
В качестве системных компонентов выступают не только приложения в обычном понимании. На самом деле операционные системы тоже являются программами.
Однако зачастую системное ПО можно представить себе в виде некой прослойки, связывающей пользовательские программы со средой операционной системы, в которой они функционируют, и аппаратной частью, задействованной при выполнении той или иной задачи (например, те же драйверы устройств).
Чтобы было понятнее, приведем простейший пример. Возьмем операционную систему Windows (системная прослойка), звуковую карту («железо») и проигрыватель мультимедиа (прикладное ПО). Чтобы саундкарта могла воспроизвести звук, нужен драйвер (системное ПО), обеспечивающий управление устройством самой операционной системой, которая является и платформой для проигрывателя. Поскольку система распознает устройство, посредством своих директив она передает управление ним плееру, для распознавания типа звукового файла использующему специальные кодеки и декодеры (дополнительные программные инструменты). Взаимосвязь очевидна.
Прикладные программы
К прикладным программам относят все те приложения, которые не управляют компонентами системы или используют их только частично, а решают строго определенные конкретные пользовательские задачи.
Примеров сегодня можно привести очень много: офисные пакеты, редакторы мультимедиа, системы математических вычислений и проектирования, средства доступа в интернет и управления сетями, архиваторы и т. д. Как видим, каждый тип программного обеспечения (Software) – это инструмент, ориентированный на выполнение узкого круга задач и взаимодействующий непосредственно с пользователем цельной компьютерной системы.
Инструменты и утилиты
К инструментам относят программное обеспечение для разработки и сопровождения других типов ПО. Сюда можно включить платформы языков программирования, среды разработки, пакеты SDK, системы отслеживания ошибок и контроля версий.
Что касается утилит, то под ними часто подразумеваются программные продукты для настройки параметров аппаратных и/или программных компонентов, входящих в в объединенную компьютерную систему, без применения которых доступ к настройкам другими методами не может быть осуществлен. Такое ПО может быть встроенным в операционные системы или устанавливается отдельно. В некоторых случаях утилиты могут задействовать полную автоматизацию настроек (например, приложения-оптимизаторы для исправления ошибок и улучшения работы Windows-систем).
Вместо послесловия
Наконец, стоит отметить, что у многих пользователей зачастую возникает еще один вопрос насчет термина Software: «Что это за программа?» Такая постановка вопроса несколько некорректна, поскольку, как уже было сказано выше, это может быть не только единичное приложение, но и совокупность программ, набор языковых команд, директив и правил языка программирования для управления другими компонентами или передачи их для обработки и выполнения в виде двоичного кода, скажем, центральному процессору.
Приведенная классификация тоже весьма условна, ведь в описании были представлены только основные типы ПО без дальнейшего разделения на подклассы, которых сегодня можно насчитать очень и очень много. Но для первичного понимания самого термина Software рядовому пользователю может хватить и этих знаний.
Источник: autogear.ru