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


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


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


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


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


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


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



За повече информация: