Програм хангамж

**Програм хангамж** () нь компьютер програм болон холбогдох өгөгдөл, бичиг баримтын цогц бүрдэл юм. Үүнтэй уялдуулбал техник хангамж нь системийн бодит биет элементүүдийн бүрдэл юм.

## Ерөнхий ойлголтууд
Компьютерын шинжлэх ухаан, мөн програм хангамжийн инженерчлэлд бүхий л компьютерын систем, программ, өгөгдөлүүд програм хангамжийн тусламжтайгаар боловсруулагдаж байдаг. Програм хангамж гэсэн ойлголтыг анх 1960-аад онд компьютерын тогтмол хэсэг болох Компьютерын техник хангамжаас ялгахын тулд хэрэглэсэн. Компьютерын програм хангамж нь дотроо компьютерын программууд, архивууд болон тэдгээрийг дэмждэг бичиг баримтуудыг өөртөө багтаадаг. Програм хангамж гэх энэхүү үг нь заримдаа өгөгдлийн програм хангамж гэсэн илүү нарийн утга санааг илэрхийлдэг. Програм хангамж нь компьютерын санах ой буюу RAM-д хадгалагддаг. Үндсэндээ программ хангамж нь компьютерын техник хангамждаа хэзээ, ямар даалгавар гүйцэтгэхийг нь хэлж өгдөг.

Программ хангамж нь компьютерын хэлээр бичигддэг ба ихэнхдээ дээд түвшний программын хэлээр бичигдэг. Ингэснээр компьютерын хэлээр бичсэнээс илүү хялбар бас бүтээмжтэй болдог байна. Өндөр түвшний программын хэлийг эмхэтгэл, тайлбар эсвэл энэ хоёрыг хослуулж хэрэглэн орчуулж болдог. Хэрвээ компьютерын хэл нь хүний хэлний үсгүүдийг ашиглаж байгаа тохиолдолд доод түвшний иж бүрдэл хэл дээр бичигдэж болдог. Иж бүрдэл хэл нь эвлүүлэгч ашиглан компьютерын хэл рүү хөрвүүлэгддэг.

Программ хангамжийн давуу тал нь өөрчлөгдөх чадвартай байх ба хөгжүүлэгчид бизнес, корпорацууд болон ер нь дэлхий дээрх хүн болгонд тус болох төрөл бүрийн программууд бичиж байна. Одоо үед программууд янз бүрийн үйлдлийг секундыг хэд хуваасантай тэнцүү хугацаанд гүйцэтгэдэг. 

## Түүх
Судлаачид программ хангамжийг хамгийн анх 19 дүгээр зууны үед задлан шинжлэх механизмд зориулж Ada Lovelace дурьдсан гэж үздэг. Гэхдээ энэхүү бүтээл нь хэзээ ч олон нийтийн өмнө дэлгэгдэж байгаагүй. Программ хангамж гэдэг нэр томьёог хамгийн анх 1935 онд Английн математикч Алан Матисон Тюринг өөрийнхөө "Шийдвэрлэх асуудлыг тооцоолж болох тооны хэрэглээ" хэмээх эссэндээ бичиж байжээ. Тэрбээр "Тюринг" гэдэг нэртэй машин зохион бүтээсэн бөгөөд энэхүү машин нь ямар нэгэн бүрэн дуусаагүй үйл ажиллагааны шат дарааллыг нэг байдлаас нөгөө байдал руу шилжүүлэх, дуусгах чадвартай машин байсан. Энэ машин нь одоогийн компьютер юм.  

Энэхүү шинжлэх ухааны баримт нь хоёр ихэр академийн салбар болох компьютерын шинжлэх ухаан болон программ хангамжийн инженерчлэл хэмээх программ хангамжийг судалдаг салбаруудыг үүсгэсэн байна. Компьютерын шинжлэх ухаан нь илүү онолын тал руу нь судалдаг бол программ хангамжийн инженерчлэл нь харин илүү практик тал руу нь судалдаг байна.

## Төрөл 
Ердийн компьютер системийн хувьд программ хангамжийг гурван үндсэн хэсэгт хуваадаг.

**Системийн программ хангамж** нь компьютер системийг удирдахад зориулагдсан
программуудын нэгдэл юм. Жишээ нь: Процессор, санах ой, оролт гаралтын
төхөөрөмж, сүлжээний тоног төхөөрөмж гэх мэт. Системийн программ хангамжид
үйлдлийн систем, үйлчилгээний программ хангамж зэрэг нь чухал байр суурь
эзэлдэг. 

**Багтаамж** нь электрон төхөөрөмжүүд дээр суурилагдсан программ юм. Орчин үеийн компьютерын
төхөөрөмжүүд нь өөрийн гэсэн багтаамжтай байдаг. 

**Үйлчилгээний программ хангамж** нь компьютерын туслах программ бөгөөд өгөгдсөн тусгай
үүрэг даалгаварыг гүйцэтгэхэд зориулагдсан программ юм. Энэхүү программ нь зарим
нэг параметрын өөрчлөлтийн үйл явцыг хялбар болгодог. 

**Хэрэглээний программ** гэдэг нь хэрэглэгчийн өгсөн даалгаврыг гүйцэтгэх зориулалттай
программ юм.

**Мэдээлэл боловсруулах программ** нь мэдээллийг төлөвлөж, боловсруулахад зориулагдсан
программ хангамж юм. Мэдээлэл боловсруулах программыг хэрэглээний программ
хангамжийн биеэ даасан нэг хэсэг гэж үзэж болно.

### Системийн программ хангамж 
Системийн программ хангамжийн гол зорилго нь компьютерын систем болон сүлжээний үйлдлүүдийг дэмжиж, удирдах юм. Мөн техник хангамж, компьютерын системийг ажиллуулах зориулалттай. Үүнд:
* төхөөрөмжийн драйвер
* үйлдийн систем
* сервер 
* ютилит программ
* график орчны систем
Системийн программууд дотроос хамгийн өргөн дэлгэрсэн чухал программ нь үйлдлийн систем (operating system) гэж нэрлэгддэг программууд юм. Энэ программ нь компьютерын аппаратын нөөцийг хуваарилан, гараас өгсөн командыг уншиж хэрэглээний программыг ажилд оруулж үр дүнг дэлгэц дээр гарган шуурхай ба гаднын санах ойг хуваарилаж байдаг.

### Хэрэглээний программ хангамж 
Хэрэглээний программ хангамж эцсийн хэрэглэгчдийн мэдээлэл боловсруулах ажлуудыг гүйцэтгэдэг. Ихэвчлэн тооцооллын ажлыг гүйцэтгэх, зураг зурах, текстэн мэдээлэл боловсруулах, математик статистикийн бодлого бодох, файлтай ажиллах гэх зэрэг ажлуудыг хийдэг. Үүнд:
* мэдээлэл боловсруулах программ хангамж (текст боловсруулалт, хүснэгтэн мэдээлэл боловсруулалт, и-мэйл гэх мэт)
* мэдээлэлд хандах программ хангамж (вэб хөтөч, медиа тоглуулагч гэх мэт)
* энтертайнментийн программ хангамж (видео тоглоом гэх мэт)
* боловсролын программ хангамж
* бизнес, байгууллагын программ хангамж (тухайн бизнес, байгууллагад зориулагдаж бүтээсэн программууд гэх мэт)
* симуляцийн программ хангамж
* медиа хөгжүүлэлт (компьютер график, дуу хөгжим засварлах гэх мэт)
* инженерчлэлийн программ хангамж (CAD гэх мэт)

### Программчлах программ хангамж 
Энэ нь программчлалд зориулагдсан, мөн программчлахад тус болох зориулалттай. Үүнд:
* компилятор, компайлер (хөрвүүлэгч)
* интерпретер (тайлбарлагч, хэлмэрчлэгч)
* линкер (холбогч)
* текст засварлагч

## Гадаад холбоос 
* 

Ангилал:Программ хангамж