Ծրագրային ապահովում
From Wikipedia, the free encyclopedia
Համակարգչային ծրագրային ապահովում կամ պարզապես ծրագրային ապահովում, համակարգչի մաս, որն ի տարբերություն ֆիզիկական սարքակազմի՝ որից կառուցված է համակարգը, բաղկացած է տվյալներից կամ համակարգչային ցուցումներից։ Ինֆորմատիկայում և ծրագրային ապահովման ճարտարագիտությունում ծրագրային ապահովումը այն ամբողջ ինֆորմացիան է, որը մշակվում է համակարգչի, ծրագրերի և տվյալների կողմից։ Ծրագրային ապահովումը ներառում է այնպիսի համակարգչային ծրագրեր, գրադարաններ և տվյալներ, ինչպիսիք են ծրագրերի օգտագործման գրավոր ցուցումները կամ ինֆորմացիայի կրիչները։ Համակարգչային սարքակազմը և ծրագրային ապահովումը գործում են փոխկապակցված և իրատեսորեն չեն կարող օգտագործվել իրարից անկախ։
Կատարվող կոդն ամենացածր մակարդակում բաղկացած է մեքենայական լեզվի ցուցումներից, որոնք բնորոշ են առանձին պրոցեսորի՝ հիմնականում կենտրոնական մշակիչ հանգույցը։ Մեքենայական լեզուն բաղկացած է երկուական համակարգի թվերից կազմված խմբերից։ Դրանցով արտահայտվում են պրոցեսորի ցուցումները, որոնք անցնում են համակարգչի նախորդ վիճակից հաջորդին։ Օրինակ, հրահանգը կարող է փոխել համակարգչի որոշակի պահեստային դիրքում գտնվող արժեքը, ինչն անմիջականորեն չի երևում օգտվողին։ Հրահանգը կարող է նաև անուղղակիորեն պատճառ հանդիսանալ, որպեսզի համակարգչի էկրանին ինչ-որ բան հայտնվի։ Սա վիճակի փոփոխություն է, որը տեսանելի է օգտվողին։ Պրոցեսորը կատարում է հրահանգները տրված հաջորդականությամբ, բացառությամբ այն դեպքերի, երբ հրահանգվում է «թռիչք կատարել» մեկ այլ հրահանգի կամ ընդհատվում է (մինչև հիմա բազմամիջուկային պրոցեսորները դոմինանտ են, դրանցից յուրաքանչյուր միջուկը կարող է աշխատեցնել հրահանգները հերթականությամբ, հետո յուրաքանչյուր կիրառական ծրագրային ապահովում թերասությամբ գործարկվում է միայն մեկ միջուկում, սակայն որոշ ծրագրային ապահովումներ ստեղծված են այնպես, որ աշխատեն մի քանի միջուկներում)։
Ծրագրային ապահովման մեծամասնությունը գրված է բարձր մակարդակի ծրագրավորման լեզուներով, որոնց օգտագործումն ավելի հեշտ և արդյունավետ է ծրագրավորողների համար, քանի որ դրանք ավելի մոտ են բնական լեզուներին, քան մեքենայական լեզուները[1]։ Բարձր մակարդակի ծրագրավորման լեզուները թարգմանվում են մեքենայական լեզվի՝ օգտագործելով կոմպիլյատոր կամ ինտերպրետատոր կամ էլ երկուսի համադրումը։ Ծրագրային ապահովումը կարող է գրված լինել նաև ցածր մակարդակի ասեմբլեր լեզվով, որը մեծապես համապատասխանում է համակարգչի մեքենայական լեզվի ցուցումներին և թարգմանվում է մեքենայական լեզվի՝ օգտագործելով ասեմբլեր։