Monday, June 7, 2010

Програм бичихдээ ямар хэл сонгох вэ?

Програм бичихдээ ямар хэл сонгох вэ? гэдэг асуулт маш түгээмэл тавигддаг. Энэ асуултанд хариулах гэж оролдъё.
Компьютерийн систем нь техник хангамж ба програм хангамж гэсэн 2 үндсэн зүйлээс бүрддэг. Техник хангамж нь нүдэнд үзэгдэж гарт баригддаг бодитой эд зүйлс. Харин програм хангамж нь компьютерт зориулагдаж бичигдсэн програмыг хэлдэг. Програм бичихдээ техникийн талын зүйлийг мэдэхгүй юм уу, чухалчилахгүйгээр бичиж болох ба мөн компьютерийн эд анги буюу техник хангамжийг бүтээхдээ програм хангамжийн мэдлэггүй байж болно. Гэвч энэ 2 зүйл нь салшгүй нягт холбоотой ба бие биедээ нөлөөлдөг зүйлүүд.
Ямар ч програм бичсэн тэр нь нэг бол өөр ямар нэг програмаас хараат, эсвэл техник хангамжаас хараат байдаг. Жишээ нь Фортран гэж програмчлалын хэл дээр програм бичлээ гэхэд энэ нь өөр програм хангамжаас буюу компьютерийн хэл рүү хөрвүүлэгчээс хараат байна. Харин тэр хөрвүүлэгч нь өөрөө техник хангамжаас хараат. Учир нь компьютер 2-тын тооллын систем буюу 0,1-ээс бүтсэн тоон дарааллыг л ойлгодог. Ингэхээр дам дамаар яалт ч үгүй програм хангамж нь техник хангамжаас хараат болдог.
Хүний бичсэн програм хангамж 2-тын тооллын код, 8 эсвэл 16-тын тоолол, эсвэл компьютерийн хэл буюу assembly хэл рүү хөрвүүлэгдэж байж компьютерийн instruction ойлгож ажиллуулдаг.
Одоо бүгдээрээ 2 тоог хооронд нь нэмэх програм бичиж үзье.
2тын тооллын програм:
Location . Instruction code
0 . 0010 0000 0000 0100
1 . 0001 0000 0000 0101
10 . 0011 0000 0000 0110
11 . 0111 0000 0000 0001
100 . 0000 0000 0101 0011
101 . 1111 1111 1110 1001
110 . 0000 0000 0000 0000

16-тын тоололд
Location . Instruction
000 . 2004
001 . 1005
002 . 3006
003 . 7001
004 . 0053
005 . FFE9
006 . 0000

/Цэгүүдийг зөвхөн тусгаарлах зорилгоор бичив/

Assembly хэл дээр
ORG 0
LDA A
ADD B
STA C
HLT
A, DEC 27
B, DEC 52
C, DEC 0
END

Дээрх бичсэн програмуудыг бүр нарийн тайлбарлах нь хэцүү. Үүний тулд бүр компьютерийн бүтцийг эхнээс нь тайлбарлах хэрэг гарна. Бидний дээд түвшний програмчлалын хэл дээр бичсэн програм эдгээр лүү хувиргагддаг. Тэр хувиргалт хийгдэж байгааг нь compile гэж нэрлэдэг. Програм бичсэний дараа compile хийхэд алдаа заадаг нь бидний бичсэн кодыг хувиргасныг нь компьютер ойлгохгүй байгаа гэсэн үг.
Ингэж хувиргалт хийж дахин өөр програм ажиллуулах нь шууд компьютерийн хэл дээр бичсэнээс удаан уу гэвэл удаан. Гэвч дээрх кодуудыг бичсэн шалтгаан маань бидэнд шууд дээрх шиг код бичээд суух нь маш хүнд. Их цаг хугацаа, бага бүтээмж бий болгоно. Мэдээж assembly хэл дээр програм бичдэг үү гэвэл бичдэг.
Харин одоо дээр дурьдагдсан дээд түвшний хэлний тухай авч үзье. 2 тоо нэмэх програмыг Fortran гэж хэл дээр яаж бичигдэхийг харцгаая.

INTEGER A,B,C
DATA A,27 B,52
C=A+B
END

Энийг харахад ойлгомжтой байгаа байх. Integer төрлийн А, В гэсэн 2 тооны нийлбэрийг олж байна.
Өөр програмчлалын хэл мэддэг хүмүүс яг ижил програмыг яаж бичихийг бодоод харьцуулж үзээрэй. Яагаад харьцуулж үзээрэй гэж байгаа юм бэ гэхээр, тухайн програмнаасаа шалтгаалаад хэл болгон дээр өөрөөр бичигдэнэ.
Энд л миний хэлэх гээд байгаа санаа байгаа юм. Програмчлалын хэлний сонголт нь юунд зориулсан, юу хийдэг програм бичих гээд байгаагаас шалтгаална. 500 метрийн цаана байгаа ажил руугаа онгоцонд суугаад очдоггүй. Далайн цаана байгаа арал руу машинаар явна гэж байхгүй. Ер нь бол муу сайн хэл гэж байхгүй, юунд зориулагдсан хэл вэ гэдэгт л байгаа юм.
Хэрвээ хэн нэгэн зөвхөн гар утасны тоглоом бичдэг болно гэж байгаа бол Java л сурсан нь дээр. Хакер болох гэсэн хүн C,C++, Assembly л хамгийн тохиромжтой. Гэхдээ нэг чухал зүйл байдаг нь, огт програмчлал мэдэхгүй хүн, програмчлал ойлгохын тулд эхлээд ямар хэл сурах хэрэгтэй вэ гэдэг асуулт байдаг.
Мэргэжилтнүүд янз бүрийн хэл санал болгодог ба хамгийн түгээмэл санал болгодог 3 хэлийг хэлье.
1. Fortran - Энэ хэлийг санал болгодог шалтгаан нь сүрхий том програм бичиж болдогтоо биш. Хэл нь өөрөө уншихад маш амархан. Pseudocode буюу бид алгоритм бичихдээ англиар бичдэг. Фортран хэл нь яг англи хэлээр шууд бичиж байгаа юм шиг маш ойлгомжтой байдаг болохоор ихэнх сайн програмчлалын багш нар үргэлж энэ хэлийг эхлээд сурвал зүгээр гэж хэлдэг.
2. Pascal - Үүнийг бас л дээрхтэй адил шалтгаанаар санал болгодог. Фортран шиг бүтэн англи үгээр бичээд байдаггүй боловч бусад хэлтэй харьцуулахад бас л нилээн ойлгомжтой хэл. Миний хувьд бол процедур хандалтат програмчлалыг нилээн сайн ойлгож болох хэл. Үүнийг сурчих нэг давуу тал нь: Microsoft Dynamics Navision гэж ERP системийн configuration-ийг хийхэд C/AL editor гэж юман дээр хийдэг. C/AL editor нь Pascal дээр суурилж бий болсон хэл. Ялгаа нь объект хандалтат.
3. С - С is a Sea гэж үг байдаг. Хэтэрхий их зүйлийг агуулсан энэ хэлний талаар хаанаас нь юу гэж хэлэхээ мэдэхгүй юм. Ямартай ч нэг юмыг хэлэхэд Java java гэдэг хүмүүс эхлээд энэ хэлийг сурчихвал java шиг амархан хэл байхгүй болно. Ер нь ч тэгээд java-г хэл гэхээсээ илүү технологи гэдэгдээ.
Миний блогийн нэг бичлэгт энэ талаар гүйцэд бичиж хүрэлцэхгүй учир ингээд өндөрлөе. Бага зэргийн ойлголт өгч чадсан байх аа гэж найдаж байна.

6 comments:

  1. Яааая аймаар юмааа
    Computer hargdhaasaa aimaar um :P
    yun ter mongol hel :P:P:P

    ReplyDelete
  2. Хэхэ чи нээрээ миний ганц байнгын уншигч болж байх шив дээ

    ReplyDelete
  3. I'm a good reader :P

    ReplyDelete
  4. миний мэдэх хэл ч ёстой байна дагаа хэхэ

    ReplyDelete
  5. Mootsoo agaa , Braavoo agaa 2 sn suuj bgaarai bi zuni amraltaaraa zuslan yavlaa namar l ireh bh , :D
    Mootsoo ah 1 unshigchaa gargaj uhgui muu l bna daa :p

    ReplyDelete
  6. Хэлний сонголтын талаар уг нь ярьж байх шиг байсан. Яагаад хэлний талаар яриад эхлэв ээ. хэхэ.

    ReplyDelete