Tuesday, January 10, 2012

Low-Level Programming languages

ලෝකයේ මේවන විට භාවිතා වන පරිගණක බොහෝමයක (පර්යේෂණ මට්ටමේ පරිගණක හැර) ක්‍රියාකාරීත්වය පදනම් වී ඇත්තේ විදුලි සංඥා මතය. එබැවින්, පරිගණකයට උපදෙස් ලබාදිය හැක්කේ යම් විදුලි සංඥා රටාවක් අනුව පමණි. සත්‍යවශයෙන්ම පරිගණකයට මින් හැර කිසිඳු භාෂාවක් තේරුම්ගත නොහැක (උදා: සිංහල, ඉංග්‍රීසි,...). පරිගණක වැඩසටහන් යනු මෙම විදුලි සංඥා රටාවන් පෙලගැසීමෙන් සාදන ලද පරිගණක උපදෙස්මාලාවන්ය. පරිගණකයට තේරුම්ගත හැකි සංඥා රටාවන් ඇත්තේ සීමිත ගණනකි. මේවා යන්ත්‍ර කේත(machine code) ලෙස හැඳින්වේ. මෙය පළමු පරම්පරාවේ ක්‍රමලේඛන භාෂාව ලෙස සැලකෙනවා.

යන්ත්‍ර කේතයන් පරිගණකයට තේරුම්ගත හැකිවුවද මිනිසාට තේරුම්ගැනීමට හා මතකතබාගැනීමට ඉතා අපහසුය. එබැවින් එලෙස පරිගණක වැඩසටහන් නිපදවීමට අධික වෙහෙසක් හා කාලයක් ගතවෙනවා. අනෙක් අතට, පරිගණක දෘඩාංග නිපදවන සමාගම් තමන්ටම ආවේනික යන්ත්‍ර කේත අනුව දෘඩාංග නිපදවනවා. එවිට, ඒ ඒ පරිගණක පද්ධති සඳහා ක්‍රමලේඛනයේ දී භාවිතා කළයුතු කේත රටාවන් වෙනවෙනම මතකතබාගැනීමට සිදුවෙනවා.

මෙම අපහසුතාව මගහරවා ගැනීමට ඇසෙම්බ්ලි(Assembly) නමින් ක්‍රමලේඛන භාෂාවක් එළිදැක්වුනා. යන්ත්‍ර කේත මෙන් නොව ඇසෙම්බ්ලි කේත තරමක් දුරට මතකතබාගැනීමට පහසු, අවබෝධයක් ලබාගත හැකි සරල ඉංග්‍රීසි වදන් කිහිපයක් ඇසුරුකරගත් භාෂාවකි. පරිගණකයට කෙලින්ම ඇසෙම්බ්ලි භාෂාව තේරුම්ගත නොහැකි බැවින් ඇසෙම්බ්ලර්(Assembler) නම් වැඩසටහනක් භාවිතයෙන් ඇසෙම්බ්ලි කේත, යන්ත්‍ර කේත බවට පත්කිරීමෙන් පසුව පරිගණකයට උපදෙස් වශයෙන් ලබාදෙනු ලබනවා. එනිසා, ඇසෙම්බ්ලි දෙවන පරම්පරාවේ ක්‍රමලේඛන භාෂාව ලෙස සැලකෙනවා.

මෙනිසා තරමක් පහසුවෙන් ක්‍රමලේඛනය කිරීමට අවස්ථාව උදාවුණා. ක්‍රමලේඛනය කර අවසානයේදී යන්ත්‍ර කේත ස්වයංක්‍රියව නිර්මාණය කරගත හැකි වුණා.

නමුත් ඇසෙම්බ්ලි භාෂාව පවා තේරුම්ගැනීම එතරම් පහසු නැහැ. යන්ත්‍ර කේත හා ඇසෙම්බ්ලි කේත මගින් උපදෙස් දීමේ දී දෘඩාංග හැසිරවීම් පිළිබඳව මනා අවබෝධයක් තිබිය යුතුයි. උදාහරණයක් විදිහට: පරිගණක මතකයට (RAM) ප්‍රොසෙසරයේ රෙජිස්තර (Registers) වලට කෙලින්ම උපදෙස් ලබාදීමට ක්‍රමලේඛන ශිල්පියා දැනගත යුතුයි. මේ හේතුව නිසා මේවා low-level languages ලෙස හැඳින්වෙනවා. අනෙක්අතට පරිගණක දෘඩාංග ක්‍රියාකාරීත්වය හොඳින්ම දන්නා අයෙකුට ඇරෙන්න වෙනත් අයෙකුට මේ භාෂාවන් භාවිත කිරීම බොහෝ අපහසුයි.

මෙවැනි සංකීර්ණතා සඟවමින් පහසුවෙන් ක්‍රමලේඛනය කිරීමේ අවශ්‍යතාව මීළඟට පැනනැගුණා. එහි ප්‍රතිඵලයක් ලෙසයි high-level languages ඉදිරිපත් වුණේ.

විශේෂයෙන් මතකතබාගතයුතු වන්නේ පරිගණකයට තවමත් හඳුනාගෙන ක්‍රියාත්මක කළහැක්කේ යන්ත්‍ර කේත පමණක් බවය. high-level language හා සසඳන විට ඇසෙම්බ්ලි වැනි භාෂාවල විශේෂත්වය වන්නේ කේතයන් අදාල යන්ත්‍ර කේත වලට අනුරූපවීමයි. මෙනිසා ක්‍රමලේඛණ ශිල්පියාට පරිගණකය ඉතා කාර්යක්‍ෂමව හා අසීමිත බලයකින්(බොහෝදුරට) යුතුව පරිගණකය හැසිරවීමට අවකාශ ලැබෙනවා. මේ හේතූන් නිසා low-level languages තවමත් අඩුවක් නොමැතිව භාවිතා වීම පුදුමයට කරුණක් නොවේ.

වැදගත් උනා නම් කොමෙන්ටුවක් දාලම යන්න. ඔබේ අදහස්, අවවාද, තර්ක අපිට ගොඩක් වටිනවා.

Comment එකක් දාන්න