Програмно осигуряване

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

Програмно осигуряване е съвкупността от цялата информация от инструкции и данни, необходими за работата на всяка електронно изчислителна машина. Употребява се главно в сферата на информационните технологии.

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

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

По принцип хардуерът е неизползваем без програмно осигуряване или софтуер. Най-ясно разликата между софтуер и хардуер се обяснява така: Хардуерът е всяко едно видимо и осезаемо устройство, както самият компютър, така и всяко едно периферно устройство. Софтуерът е само видим, но не и осезаем, когато работи - това са именно програмите.

Със създаването на алгоритми и писането на програми се занимават програмистите. Според нивото на действие на написаните от тях инструкции има език за програмиране на ниско ниво, на средно ниво и на високо ниво. Езиците на високо ниво позволяват лесно редактиране от програмист, и това се нарича изходен код (програмен код). За да се превърне в изпълними инструкции от машината, той се компилира (превежда) към обектен код или машинен език.

Езикът за програмиране от високо ниво може да бъде и скриптов език. Когато е написан на скриптов език, се компилира при изпълнението на програмния код (интерпретиране).


Съдържание

Думи с подобно значение

  • Програмен продукт
  • Програма
  • Приложение
  • Апликация
  • Скрипт

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

Видове софтуер

По предназначение

Платформен

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

Системен

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

Приложен

Потребителски приложения и програми, работещи като краен продукт и тясно свързващи потребителя със софтуер от по-ниско ниво. Това са най-известните сред потребителите програми, с който те имат пряк контакт и използват най-често. Пример за това са информационни системи, програми за обработка на текст, програми за разглеждане на графични изображения или уеб страници, програми за комуникация и т.н.

Скриптове

Софтуер, написан на скриптов език. Това са малки до средно големи програми, които изпълняват потребителски команди или вършат действия в определен ред. Пример за това са JavaScript,Perl, ти си ел скрипт или PHP. Програмите, писани на скриптов език, са по-бавни при стартиране (защото всеки път програмният код трябва да се преведе на машинен език), но обикновено по-лесно и бързо се разработват и тестват.

Според условията за ползване

Свободен софтуер

Вж. Свободен софтуер.

Freeware

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

Shareware

Можете да получите такъв тип софтуер без да заплащате. Тестването на софтуера също не е обвързано с плащане. Когато получавате софтуера, заедно с него има и покана за заплащане на определена сума за него, но това е доброволно. Много от тези програми имат ограничения или като функционалност, или като време на ползване, след което, ако не се заплати сумата, програмите спират да работят.

  • демонстрационна версия (demo) е версия на софтуер с ограничен набор от функции — използва се главно за демонстрация на софтуера и за отчитане и тестване на основните му функции;
  • временна версия (trial) е версия на софтуер, който се разпространява свободно, но функциите му важат само за определен период от време или за определен брой използвания на софтуера.

Adware

Софтуерът се разпространява с изменен външен вид от оригиналния, в който на централно място от графичния интерфейс се рекламира даден продукт с банер (плакат), текст или звук. Не е добре възприеман от потребителите, тъй като обикновено допълнителните реклами затрудняват целенасоченото използване на софтуера. При някои от тези програми, подобно на програмите Shareware, съществува платена версия, в която няма реклами.

Основни инструменти за създаване на софтуер

Текстов редактор

Това е приложна програма за писане на текст, удобна на програмиста за въвеждане и редактиране на програмния код. Някой текстови редактори поддържат функции, улесняващи програмирането на съответния език:

  • синтактично оцветяване
  • автоматична табулация
  • предложения за операнд

Компилатор

Компилаторът е програма, която съединява фрагментите на разработвания софтуер, за да се получи машинния код, който е разбираем за процесора на компютъра. Това е преводачът от съответния програмен език към инструкции, разбираеми от процесора — който пък от своя страна ще изпълнява програмата.

Декомпилатор

Това е софтуер, който разединява на съставни фрагменти дадена компилирана програма. Основен инструмент на кракерите.

Дебъгер

Дебъгерите са специален вид програми, използвани при разработката на софтуер. С тях се проследява поетапно изпълнението на разработвания софтуер, с цел откриване и отстраняване на грешки.

Други

Понякога са необходими и други инструменти като:

  • програма за съединяване на основния код с използваните библиотеки (linker)

Софтуерни лицензи

Софтуерният лиценз подсигурява договорните отношения между автора и потребителя на софтуер. Понякога се употребява думата End User License Agreement (EULA) Лицензно споразумение за крайния потребител.

Софтуерни патенти

Основна статия: Софтуерен патент
Ако и настоящият раздел, и основната статия са празни, започнете да допринасяте към раздела.

За разлика от останалите произведения, обект на авторско право (които не подлежат на патенти), в някои страни софтуерът може да се защити с патент. На местата, където съществуват софтуерни патенти, това право принадлежи на автора на компютърно-имплементирано изобретение или на неговия работодател.

Софтуерните патенти са обичайна, но силно критикувана практика в САЩ, а в Европа и Европейският съюз не съществуват такива.

Вижте също: списък на софтуерните патенти.

Вижте още

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net