Програмно осигуряване
от Уикипедия, свободната енциклопедия
Програмно осигуряване е съвкупността от цялата информация от инструкции и данни, необходими за работата на всяка електронно изчислителна машина. Употребява се главно в сферата на информационните технологии.
Обикновено инструкциите се задават като съвкупност от алгоритми, групирани като програми с различно предназначение. Освен самите алгоритми, за изпълнението на програмите са необходими и начални данни. Резултатът от действието на даден алгоритъм може да служи като начални данни за стартирането на друг и т.н., обединявайки програмите в едно. В този смисъл все повече се налага и терминът софтуер, който е заемка от английски (software) и исторически се е наложил като антоним на хардуер - материалната част на компютърните системи. Все пак границата между софтуер и хардуер се размива, когато се отчете, че програмното осигуряване има все пак някакви материални носители, от които изчислителната машина чете програмите. Тези носители, както и инструкциите за работа с програмите и тяхната поддръжка (документация), са спомагателни елементи от софтуера.
В масовите електронно-изчислителни машини (компютри) голяма част от софтуера е разположена на външна памет и може лесно да бъде променяна от потребителите според нуждите им. Инструкциите в централните процесори и специализираните интегрални схеми обаче се задават при програмирането им, и не могат да бъдат променяни директно от потребителя.
По принцип хардуерът е неизползваем без програмно осигуряване или софтуер. Най-ясно разликата между софтуер и хардуер се обяснява така: Хардуерът е всяко едно видимо и осезаемо устройство, както самият компютър, така и всяко едно периферно устройство. Софтуерът е само видим, но не и осезаем, когато работи - това са именно програмите.
Със създаването на алгоритми и писането на програми се занимават програмистите. Според нивото на действие на написаните от тях инструкции има език за програмиране на ниско ниво, на средно ниво и на високо ниво. Езиците на високо ниво позволяват лесно редактиране от програмист, и това се нарича изходен код (програмен код). За да се превърне в изпълними инструкции от машината, той се компилира (превежда) към обектен код или машинен език.
Езикът за програмиране от високо ниво може да бъде и скриптов език. Когато е написан на скриптов език, се компилира при изпълнението на програмния код (интерпретиране).
Съдържание |
[редактиране] Думи с подобно значение
- Програмен продукт
- Програма
- Приложение
- Апликация
- Скрипт
Въпреки че тези думи понякога се използват като синоними на софтуер (особено когато са в мн. число), терминът софтуер е по-общ от тях (когато се каже софтуер в много от случаите се има предвид не конкретна програма, а компютърните програми по принцип, разглеждани като нематериалната част на компютърните системи).
[редактиране] Видове софтуер
[редактиране] По предназначение
[редактиране] Платформен
Софтуер, който представлява платформа за допълнителна разработка на приложения, базирани на нея и зависещи от самата платформа. Примери за такива типове софтуер са ядрата на операционните системи и компилаторите за езиците за програмиране.
[редактиране] Системен
В общия случай това са програми, изпълняващи системни функции и грижещи се за периферните устройства и връзката между тях и потребителя или т.нар. драйвери. Съвкупността на тези програми се нарича още операционна система
[редактиране] Приложен
Потребителски приложения и програми, работещи като краен продукт и тясно свързващи потребителя със софтуер от по-ниско ниво. Това са най-известните сред потребителите програми, с който те имат пряк контакт и използват най-често. Пример за това са информационни системи, програми за обработка на текст, програми за разглеждане на графични изображения или уеб страници, програми за комуникация и т.н.
[редактиране] Скриптове
Софтуер, написан на скриптов език. Това са малки до средно големи програми, които изпълняват потребителски команди или вършат действия в определен ред. Пример за това са JavaScript,Perl, ти си ел скрипт или PHP. Програмите, писани на скриптов език, са по-бавни при стартиране (защото всеки път програмният код трябва да се преведе на машинен език), но обикновено по-лесно и бързо се разработват и тестват.
[редактиране] Според условията за ползване
[редактиране] Свободен софтуер
Вж. Свободен софтуер.
[редактиране] Freeware
Свободно разпространяван софтуер. Потребителят не е длъжен да заплаща такса на автора, но е длъжен да се съгласи със специфичните правила за ползване на софтуера. Много си прилича със софтуера с отворен код, но се различава по това, че изходният програмен код на софтуера не се разпространява свободно.
[редактиране] Shareware
Можете да получите такъв тип софтуер без да заплащате. Тестването на софтуера също не е обвързано с плащане. Когато получавате софтуера, заедно с него има и покана за заплащане на определена сума за него, но това е доброволно. Много от тези програми имат ограничения или като функционалност, или като време на ползване, след което, ако не се заплати сумата, програмите спират да работят.
- демонстрационна версия (demo) е версия на софтуер с ограничен набор от функции — използва се главно за демонстрация на софтуера и за отчитане и тестване на основните му функции;
- временна версия (trial) е версия на софтуер, който се разпространява свободно, но функциите му важат само за определен период от време или за определен брой използвания на софтуера.
[редактиране] Adware
Софтуерът се разпространява с изменен външен вид от оригиналния, в който на централно място от графичния интерфейс се рекламира даден продукт с банер (плакат), текст или звук. Не е добре възприеман от потребителите, тъй като обикновено допълнителните реклами затрудняват целенасоченото използване на софтуера. При някои от тези програми, подобно на програмите Shareware, съществува платена версия, в която няма реклами.
[редактиране] Основни инструменти за създаване на софтуер
[редактиране] Текстов редактор
Това е приложна програма за писане на текст, удобна на програмиста за въвеждане и редактиране на програмния код. Някой текстови редактори поддържат функции, улесняващи програмирането на съответния език:
- синтактично оцветяване
- автоматична табулация
- предложения за операнд
[редактиране] Компилатор
Компилаторът е програма, която съединява фрагментите на разработвания софтуер, за да се получи машинния код, който е разбираем за процесора на компютъра. Това е преводачът от съответния програмен език към инструкции, разбираеми от процесора — който пък от своя страна ще изпълнява програмата.
[редактиране] Декомпилатор
Това е софтуер, който разединява на съставни фрагменти дадена компилирана програма. Основен инструмент на кракерите.
[редактиране] Дебъгер
Дебъгерите са специален вид програми, използвани при разработката на софтуер. С тях се проследява поетапно изпълнението на разработвания софтуер, с цел откриване и отстраняване на грешки.
[редактиране] Други
Понякога са необходими и други инструменти като:
- програма за съединяване на основния код с използваните библиотеки (linker)
[редактиране] Софтуерни лицензи
Софтуерният лиценз подсигурява договорните отношения между автора и потребителя на софтуер. Понякога се употребява думата End User License Agreement (EULA) Лицензно споразумение за крайния потребител.
[редактиране] Софтуерни патенти
За разлика от останалите произведения, обект на авторско право (които не подлежат на патенти), в някои страни софтуерът може да се защити с патент. На местата, където съществуват софтуерни патенти, това право принадлежи на автора на компютърно-имплементирано изобретение или на неговия работодател.
Софтуерните патенти са обичайна, но силно критикувана практика в САЩ, а в Европа и Европейският съюз не съществуват такива.
Вижте също: списък на софтуерните патенти.
