Дэлхий дээрх хамгийн түгээмэл хэл болох С хэлийг 1970 онд програм зохиогч Dennis Ritchie бүтээсэн бөгөөд өөрийн өмнө бүтээсэн B хэлний залгамж хувилбар болгосон юм. С хэлийг бүтээх болсон далд санаа нь үйлдлийн систем бичих хэл бий болгоход оршиж байв. Хэл нь маш энгийн, тохиромжтой байсан учраас удалгүй өөр олон төрлийн програмууд бүтээхэд ашиглагдаж эхэлсэн бөгөөд маш хурдан хугацаанд хамгийн түгээмэл хэлүүдийн нэг болж чадсан юм. С хэл ингэж түгээмэл болоход хоёр үндсэн хүчин зүйл нөлөөлсөн юм. Нэгд, хэл нь програм зохиогчдийн хувьд сурахад ойр байсан, програм зохиогч юу хиймээр байна түүнийгээ зөв С дүрэмд оруулаад л хийж чадаж байв. Хоёрт, олон платформ дээр ажиллах боломж бүхий С хөрвүүлэгчид элбэг, олдоцтой байсан байна. 1980 онд Bjarne Stroustrup "C with Classes” нэртэй шинэ хэл дээр ажиллаж эхэлсэн бөгөөд энэ нь хожим C++ нэртэй хэл болсон байна. Сүүлийн үеийн шинэ хэлүүдийн нэг болох Java нь мөн C++ дээр суурилсан юм.
С хэлний олон хувилбарууд байдаг. С хэлний өгүүлбэр зүйн анхны дүрмийг 1989 онд American National Standards Institute (ANSI)-ээс баталсан юм. Энэ хувилбар нь “Стандарт Си”, “ANSI C” гэх зэргээр нэрлэгддэг. С хэлний хамгийн сүүлийн стандарт нь 1999 онд ISO-оор батлагдсан ба энэ хувилбарыг C99 гэж нэрлэдэг.
Си яаж ажилладаг вэ
С нь компьютер болон програм зохиогчийн хооронд гүүр байхаар зохиомжлогдсон хэл
юм.
Програм зохиогч өөрийн санааг текст засварлагч дээр бичиж файлд хадгална, энэ файлыг эх кодын файл гэнэ. Эх кодын файл нь хөрвүүлэгчээр объект файл руу хувиргагдана. Дараа нь, холбогч гэж нэрлэгдэх програм объект файлуудыг хүлээн авч, стандарт сангуудаас шаардагдах функцүүдийг нэгтгэн холбож биелэх програмыг үүсгэнэ (машины код).
Компьютерийн програм нь хоёр үндсэн хэсгээс тогтоно: өгөгдлүүд, зааврууд. Өгөгдөл нь компьютерт байтуудын цуваа хэлбэрээр хадгалагддаг. Өгөгдөл бол програм оршин байхын анхдагч шалтгаан юм, өгөгдөл байхгүй бол програм байхын утга үгүй юм.
Компьютертэй ойлголцох нь амаргүй ажил юм, учир нь тэд яг таг тодорхой зааврыг хүлээдэг. Хэрэв бид хоорондоо харилцдаг натурал хэлээрээ компьютертэй харьцдаг бол хялбар байхсан. Тэгээд компьютерт “миний диск төхөөрөмжийн багтаамжийг харуул” гэхэд компьютер үр дүнг нь харуулдаг байх байсан биз. Гэвч натурал хэл ашиглаж заавар өгөхөд хоёрдмол утгатай зүйлс их байх болно. Машинууд тоогоор "сэтгэдэг" байхад хүмүүс тийм биш юм.
Тэгэхээр яаж компьютертэй ойлголцох вэ?
Програм зохиогчид тоон заавруудаас тогтох машинд зориулсан хэлийг бүтээсэн юм. Энэ тоон заавар нь компьютерт шууд өгөгдөх ба түүнийг машин ойлгож гүйцэтгэнэ. Машины хэл дээр бичигдсэн програм нь дараахь байдалтай харагдана.
1010 1111
0011 0111
0111 0110
.. гэх мэт хэдэн зуун заавар
Машины хэл дээр програм бичих нь маш хүнд ажил байсан учраас инженерүүд ассемблай хэлийг бүтээсэн байна. Энэ хэлний нэг гэн-заавар нь машины нэг тоон-заавартай харгалзсан байдаг. Ассемблай хэлэнд бичсэн програм нь дараахь байдалтай харагдана:
Програм Машины код
MOV A,47 1010 1111
ADD A,B 0011 0111
HALT 0111 0110
.. гэх мэт хэдэн зуун заавар
Ассемблай програмыг гараараа машины тоон хэл рүү хөрвүүлж угсардаг байсан учраас ассемблай гэж нэрлэгдсэн байна.
Програмыг хүрвүүлэх
Ассемблай хэлнээс машины код руу хөрвүүлэх нь маш хүнд, уйтгартай, нарийн ажиллагаа шаардсан ажил байв. Аз болоход нэгэн програм зохиогч энэ ажлыг хөнгөвчилсөн хөрвүүлэгч програмыг бүтээсэн бөгөөд түүнийгээ ассемблер гэж нэрлэсэн байна. Энэхүү ассемблер програм нь цаашдын бүх програмчлалын хэлүүдийн эхлэл байсан юм.
IT хэмээх асар том зах зээлд Америк Японы өрсөлддөг байсан цаг хуучиржээ. Энэ их гүрнүүдийн дундуур Энэтхэг орон цойлон гарч ирж нэгэнт оргилд нь хүрсэн байна. Хүн амын тоогоороо хагас тэрбумыг даваад байгаа бөгөөд уг үзүүлэлтээрээ Хятадын дараа ордогийг бүгд л мэддэг. Тэгвэл тэдний IT салбар Хятадыг 13 дахин нугалахаар том гэнэ. Тэгвэл энэ нь манай Монголын хувьд юу гэсэн үг вэ? Хэдэн зугаар нь илүү нугалах тийм том хөгжсөн байна. Гэхдээ тэдний инженэр програмистуудын ихэнх нь гадаад орнуудын том том акулуудад ажилладаг сурагтай. Саяхан Америкийн нэгэн сонингийн судалгаагаар Америк даяар үйл ажиллагаагаа явуулдаг бүх Software ийн компаниудын ажилтнуудын 41% нь Энэтхэгчүүд гэх баримт ч нотлогдсон байна. Гэхдээ бас нэг сонин нь Энэтхэгийн гадаадад ажилладаг програмистууд нь нийт Англи хэлтэй хүн амын 9% ийг нь эзэлдэг гэнээ. Эндээс нэг бяцхан тооцоо хийчии.IndianEnglish(Англи хэлээр ярьж чаддаг хүмүүс) = 616000000. ExportProgrammer = IndianEnglish/100*9 = 55440000 гээд л боддоо. Энэ чинь манай Монголын нийт хүн амыг 20 дахин нугалахаар их хүн Энэтхэгээс зөвхөн гадаадын компаниудад ажилладаг байхнээ. Тэгэхлээр Энэтхэгийн IT салбар яаж ийм хурдацтай асар том хүрээг хамарч чадваа гэдэг асуулт үлдэж байна. Миний дүгнэлтээр бол энэ нь тэдний English-тэй шууд холбоотой гэж бодож байна. Тэд Английн колонд олон жил болж нийт хүн амын ихэнх нь English-ээр торохгүй яридаг болсон. Тэр давуу тал нь л тэднийг их амжилтанд хүргэж байна.