පරිඝණක ක්රමලේඛන භාෂාවක් යනු
ලෝකයේ විවිද ජාතීන් තම අදහස් හුවමාරු කරගැනීම සදහා විවිද භාෂාවන් භාවිතා කරනු ලබනවා. මේ ආකාරයටම පරිඝනකත් තම සන්නිවේදනය සදහා එයටම ආවේනික වූ භාෂාවක් භාවිතා කරනු ලබනවා. මේ භාෂාව binary (දෙකේ පාදයේ සංඛ්යා) ලෙස හදුන්වනු ලබනවා. අපට binary තේරුම් ගන්න අමාරුයි වගේම පරිගණකයටත් අපේ භාෂාව තේරුම් ගන්න හැකියාවක් නැහැ. මෙන්න මේ දුර්වලතාවය මග හරවා ගන්න තමයි පරිගණක ක්රමලේඛන භාෂාවක් හෙවත් Computer Programming Language එකක් භාවිතා කරනු ලබන්නේ.
පහත වගුවෙන් දැක්වෙන්නේ පරිඝණක ක්රමලේඛන භාෂා හා ඒවගේ නම් හැදුන හැටි ගැනයි.
මේවට අමතරව තවත් විශාල ප්රමාණයක් පරිගණක ක්රමලේඛන භාෂාවන් තිබෙනවා. හැබැයි මේ හැම භාෂාවකම key words, symbols සහ syntaxes කියලා දේවල් ටිකක් තියනවා. එපමණක් නොවෙයි ඒවා භාෂාවන්ගෙන් භාෂාවන්ට වෙනස් වෙනවා.
High Level & Low Level Programming languages
ලෝකයේ තිබෙන පරිගණක ක්රමලේඛන භාෂාවන් ප්රදාන වශයන් කොටස් දෙකකට වෙන් කරන්න පුළුවන්. ඒවානම්,- High Level Programming languages
- Low Level Programming languages
යම්කිසි පරිගණක ක්රමලේඛන භාෂාවක පාවිච්චි වෙන වචන මිනිසා එදිෙනදා පාවිච්ච් කරන වචන වලට සමාන නම් ඒවා පාවිච්ච් කරන ආකාරෙයන් වාවහාරික භාෂා සමග ලොකු ගැටුමක් නැත්නම් එය High Level Programming languages එකක් ලෙස හැදින්වෙනවා. උදාහරණයක් ලෙස Java, Visual Basic, C++, VB.Net ගන්න පුළුවන්.
Low Level Programming languages
Low level languages වලට Machine code හා Assembler කියන වර්ග දෙක අයත් වෙනවා. අපි High Level Programming language එකක් භාවිතයන් වැඩසටහනක් නිර්මාණය කලවිට එය ක්රියාවට නැංවීමේදී මුලින්ම එය Machine code එකක් බවට හැරවෙනවා.
Assembler language එක නිර්මාණය කර ඇත්තේ පරිඝනකයේ ඇති Operating System එක සමග ක්රියා කිරීමටයි. Assembler language එක භාවිතයෙන් program ලිවීම අමාරු වුවත් කියාවට නැංවීෙම්දී ඉතා වේගවත්.
Low level Languages වල පාවිච්චි වෙන නියෝග නිකම්ම අකුරුවල එකතුවක් මිසක් අපිට හුරු පුරුදු ඉංගීසී වචන නෙමෙයි. Low level Languages වලට උදාහරණ ලෙස Asm , mov , add , jnz, dec යන ඒවා ගන්න පුළුවන්.
මේ රුපයෙන් දැක්වෙන්නේ මිනිසා High Level languages භාවිතා කර ක්රමලේඛන ලිව්වත් ඒවා පරිඝනකය තේරුම් ගන්නේ Low level Languages වලින් බවයි. දැන් ඉතින් අපි ලියන High Level languages Low level Languages බවට පරිවර්තනය කිරීම සිදුකරන්න ඕනේ.
High Level language එකක් Low level Language එකක් බවට පරිවර්තනය කිරීම.
මේ පරිවර්තනය කරන ක්රියාවලිය කොටස් දෙකක් යටතේ විස්තර කරන්න පුළුවන්.
- Compiler
- Interpret
Compiler
භාෂා පරිවර්තකෙයෝ වර්ග දකක් ඉන්නවා. එක වර්ගයකට කලින් කතාව ලියලා දුන්නහම ඒ ගොල්ලෝ කතාවේ වැරදි එහෙම තියනව නම් ඒවා හදලා මුලු කතාවම වෙනත් භාෂාවකට හරවනවා. කතාව කරන කෙනාට තියන්නේ පරිවර්තනය කරපු කතාව කියවන එකයි.
Compiler කියන වර්ගෙය්දී ඉස්සෙල්ලාම එකකින් නියෝග මාලාව හෙවත් program එක ලියනවා. මේකට අපි source code එක කියලා කියනවා. මෙහිදී සම්පූර්ණ program එකම Machine code එකට හැරෙවනවා එහිදී program එෙක් ඇති සියලුම වැරදි ලැයිස්තුව අප ඉදිරිෙය් පෙන්වනවා. ඒ වැරදි නිවැරදි කරලා ආයෙමත් compile කලහම Compile වූ program එක ලැබනවා. දැන් අර මුල් source code එක නැතිව වුවත් අපිට program එක කියාත්මක කරලා අවශ දේ ලබාගන්න පුලුවන්.
ඒත් යම් විදියකින් අපට අපි ලිව්ව program එෙක් යම් නියෝගයක් වෙනස් කිරීමට අවශ නම් ඒක compile කල program එක පාවිච්චි කරලා කරන්න බැහැ. ආයෙත් අපට source code එක ගන්න වෙනවා. ඒකේ අවශ වෙනස්කම් කරලා ආයෙත් compile කරලයි වෙනස් කරන ලද program එක පාවිච්චි කරන්න වෙන්නේ.
උදාහරණ විදිහට අපිට Turbo Pascal, Turbo C++ වගේ ඒවා ගන්න පුළුවන්.
Interpret
හිතන්න භාෂා පරිවර්තනය කිරීෙම්දී බැරි වෙලාවත් කතාව කරන කෙනා කොලයක් බලන්නේ නැතිව එෙව්ලේ හිතලා කතා කරනවා කියල. එවැනි වෙලාවක පරිවර්තකයාට මුළු කථාවම පරිවර්තනය කිරීමක් ගැන හිතන්නවත් බැහැ. මොකද එහෙම මුළු කතාවම එවෙලෙම පරිවර්තනය කරන්න බැහැ. එතෙකොට කරන්න තියන්නේ කථිකයා කතාකරන පේලියෙන් පේලිය පරිවර්තකයා විසින් අවශ අනෙක් භාෂාවට පරිවර්තනය කිරීමයි. මේ වැඩේදී වැරදී අහුවෙන්නේ ඒ ඒ පේලිය කතා කරනකොටයි.
මේ වගේමයි Interpreters එකත් පවිච්චි කරල High level language එකකින් ලිව්ව program එකක් Machine code එකට හැරවීෙම්දී වෙන්නෙත්. ඇත්තටම compiler එකේ වගේ විශේෂයෙන් Translate කිරීමක් කරන්න අපිට සිද්ද වෙන්නේ නැහැ. අපි High level language එකකින් program එක ලියලා ඒක ක්රියාත්මක කරනවිට පේලියෙන් පේලියෙන් Interpreter එක මගින් Machine code එකට හැරවෙන්නේ. ඊලඟට ඒ හැරවුනු පේලිය ක්රියාවට නැංවෙනවා. මෙතනදී යම් පේළියක වැරැද්දක් තියනවනම් ඒ පේලිය ආවම තමයි ඒක දැනගන්න පුළුවන් වෙන්නේ.
කාලෙකට ඉස්සෙල්ලා භාවිතයේ තිබූ “GW BASIC” කියන Language එක Interpreters වලට හොද උදාහරණයක්.
Compiler & Interpreters
Compiler එකකින් Translate කරද්දි ඒ වැඩේ කරන්න ඕන එක පාරක් විතරක් හන්දා කලායින් පස්සේ අපට ඕන වාර ගණනක් Compile කල program එක ක්රියාත්මක කරන්න පුලුවන්. මේ නිසාම මේ ක්රමය වඩා වේගවත් වෙනවා. ඒත් Interpreter එකකින් කරද්දී අපි program එක ක්රියාත්මක කරන වාරයක් වාරයක් ගනෙන් Interpreter වෙන නිසා මේ විදිය ටිකක් කාලය ගත වෙනවා. අද කලේ භාවිතා වෙන වඩා දියුනු නවීන languages වල (Visual Basic, Java) මේ ලක්ෂණ දෙකම තියෙනවා.
elama. tahnk you
ReplyDeletewell done yalu
ReplyDelete