ඊට කලින් අපි පාඩමෙ මාතෘකව ගෑන සලකා බලමු.
පරිගණක ආශ්රිත ගැටලු විසදීම
පරිගණක ආශ්රිත ගෑටලු විසදීමක් යනු පරිගණකයක් භාවිතා කර කිසියම් කාර්යයක් හෝ කාර්යයන් කිහිපයක් කර ගෑනීමයි.
උදාහරණ,
- ගණිත ගෑටලු විසදීම
- ලිපි ගොනු සෑකසීම,
- ගිනුම් කටයුතු සිදු කිරීම,
- ගීත ඈසීම හා බෑලීම,
- පරිගණක ක්රීඩා කිරීම.
පරිගණක ක්රමලේඛ
ඉහත කී ආකාරයට ගෑටලු විසද ගෑනීමට ඒ සදහාම සකසන ලද පරිගණක ක්රමලේඛ හෙවත් ප්රෝග්රෑම්ස් අත්යාවශ්ය වේ.
පරිගණක ක්රමලේඛ යනු කුමක්ද?
පරිගණකයකින් ක්රියාකාරකමක් කර ගෑනීම සදහා පරිගණක භාශාවක් හෝ පරිගණක භාශාවන් භාවිත කර ලියන ලද උපදෙස් (instructions) මාලාවකි.
පරිගණක භාෂා යනු කුමක්ද?
පරිගණක වලටම ආවේනික වූ භාශා විශේශය පරිගණක භාශා යනුවෙන් හෑදින්වේ.
*මෙම පරිගණක භාශා ක්රමලේඛ නිර්මාණය කිරීම සදහා පමණක් භාවිත කරයි.
*පරිගණක ක්රමලඛ යනු මෘදුකාන්ග විශේශයක් වන අතර ඒවා යෙදුම් මෘදුකාන්ග (application software) වර්ගයට අයත් වේ.
පරිගණක භාෂා වර්ග
මෙතෙක් නිර්මාණය වූ පරිගණක භාෂා මෙලෙස වර්ග දෙකකට බෙදා දැක්විය හැක.
1.low level computer languages
Machine language
Assembly language
2.High level computer languages
උදාහරණ:-Fortran ,algol, cobol, visual basic, basic pascal ,C ,C++ ,java ,.net, C#, perl, prolog, python ,lisp ,php...
පරිගණක භාෂාවන්ගේ පරිණාමය
1945 පමණ ජෝන් වොන් නියුමාන්ගේ අදහසකට අනුව පරිගණකයේ භෞතික තත්ව වෙනස් නොකොට ක්රමලේඛ මගින් විවිධ කාර්යයන් කරගනීම ඇරිඹිණි.එතැන් සිට මෙතෙක් දක්වා නිර්මාණය වූ සියළු පරිගණක භාෂා ප්රධාන ආකාර 4කට බෙදා දක්වයි.
1වන පරම්පරාවේ පරිගණක භාෂා
*මේ වර්ගයට අයත් වන්නේ යන්ත්ර භාෂාවයි.එහි පහත ලක්ෂණ පවතී,
*ක්රමලේඛ නිර්මාණය සදහා 0 සහ 1 යන ද්වීමය ස0ඛ්යා පමණක් යොදා ගැනීම
*ක්රමලේඛ නිර්මාණය ඉතා දුෂ්කර කටයුත්තක් වීම
*ඉතා දියුණු මට්ටමේ ක්රමලේඛ නිර්මාණය කළ නොහැකි වීම
*කිසියම් පරිගණකයක තාක්ෂණයක් මූලික කර ගනිමින් නිර්මාණය කර ඇති නිසා වෙනත් තාක්ෂණයන් සහිත පරිගණක වල භාවිත් කළ නොහකි වීම
*දෘඩාන්ග මත යැපෙන භාෂාවක් නිසා දෘඩාන්ග ගැන මනා අවභෝදයක් තිබිය යුතු වීම
*පරිවර්තනය කළ යුතු නොවේ.පරිගණකයට කෙලින්ම තෙරුම් ගත හැක.එම නිසා පරිවර්තක මෘදුකාන්ග අවශ්ය නොවේ
*එම නිසා ක්රමලේඛ වල වේගය වැඩිය
2වන පරම්පරාවේ පරිගණක භාෂා
*මේ යටතට ගැනෙන්නේ assembly පරිගණක භාෂාවයි
*යන්ත්ර භාෂාවට වඩා තරමක් දියුණුය
*ඉන්ග්රීසි අකුරු සහ ඉලක්කම්ඩ,සන්කේතද,add,sum වැනි යෙදුම්ද භාවිතා කරයි
*භාවිතය තරමක් පහසුය
*දෘඩාන්ග මත තරමක් දුරට යැපෙන භාෂාවකි
*ක්රමලේඛ ක්රියාත්මක කිරීම සදහා assembler නම් පරිවර්තක භාවිතා කරයි
*ක්රමලේඛ වල වෙගය 1වන පරම්පරාවට වඩා අඩුය
3වන පරම්පරාවේ පරිගණක භාෂා
*මෙහි හැකියාවන් වැඩිය.ඉතා දියුනු මට්ටමේ ක්රමලේඛ නිර්මාණය කිරීම සදහා යොදා ගනී
*පරිගණක දෘඩාන්ග කොටස් මත රදා නොපවතී
*ක්රමලේඛ නිර්මාණය කිරීම හා නඩත්තු කිරීම පහසුය
*සම්පාදක(compiler) සහ අර්ථවින්යසක(interpreter) නම් පරිවර්තක මෘදුකාන්ග භාවිතා කරයි
*ක්රමලේඛ ක්රියාත්මක කිරීමේ වේගය සාපේක්ශව අඩුය
*උදාහරණ ලෙස fortran ,cobol,basic pascal, C, C++, visual basic, java දක්විය හැක
4වන පරම්පරාවේ පරිගණක භාෂා
*3වන පරම්පරාවේ පරිගණක භාෂා සතු ලක්ෂණ බොහෝමයක් පවතී
*සම්පාදක(compiler) සහ අර්ථවින්යසක(interpreter) නම් පරිවර්තක මෘදුකාන්ග භාවිතා කායි
*කෘතිම බුද්ධියක් සහිත ක්රමලේඛ නිර්මාණය කිරීම සදහා භාවිතා කරයි
*උදාහරණ ලෙස prolog, LISP, mercury, python දැක්විය හැක
පරිගණක භාෂා පරිවර්තක මෘදුකාන්ග
2 වන පරම්පරාවේ සිටම පරිගණක භාෂා වලින් ලියන ලද ක්රමලේඛ ක්රියාත්මක කිරීම සදහා පරිවර්තක පවතී.
- assembler
- compiler
- interpreter
assembly පරිගණක භාෂාවෙන් නිර්මාණය කරන ලද ක්රමලේඛ පරිවර්තනය කිරීම සදහා assembler භාවිතා කරයි.
Compiler & interpreter
3වන හෝ 4වන පරම්පරා වල පරිගණක භාෂා වලින් ලියන ලද ක්රමලේඛ පරිවර්තනය කිරීම සදහා Compiler සහ interpreter භාවිතා වේ.
interpreters
අර්ථ වින්යසක මෘදුකාන්ග මගින් ක්රමලේඛ ක්රියාත්මක වන අවස්තාවේ එම ක්රියාත්මක වන පේලිය පමණක් පරිවර්තනය කර දීම සිදු කරමු ලබයි.
*පේලියෙන් පේලිය(line by line) පරිවර්තනය වීම නිසා ක්රමලේඛය ක්රියාත්මක වන අව්ස්තාවේ නැවත නැවත පරිවර්තනය වීම සිදුවේ.
*එම නිසා ක්රමලේඛ ක්රියාත්මක වීමේ වේගය සම්පාදක වලට වඩා අඩුය.
*ක්රමලේඛ වල වැරදි නිවැරදි කිරීම(debug) සම්පාදක වලට සාපේක්ශව පහසුය.
Compilers
සම්පාදක මෘදුකාන්ග මගින් ක්රමලේඛ සම්පූර්ණයෙන්ම පරිවර්තනය කිරීම සිදු වේ.
*ක්රමලේඛ ක්රියාත්මක වීමේ වේගය වැඩිය.
*ක්රමලේඛ වල වැරදි නිවැරදි කිරීම(debug) අර්ථ වින්යසක වලට සාපේක්ශව අපහසුය.
*ක්රියාත්මක වීමේදී නැවත පරිවර්තනය වීමක් අවශ්ය නොවේ
*එම නිසා පරිවර්තනයෙන් පසු ලැබෙන පරිවර්තක ක්රමලේඛය වෙනම ගොනුවක් සේ ගබඩා කල හැක.
ඔබේ දනුමට,
සම්පාදක හෝ අර්ථ වින්යසක භාවිතයෙන් පරිවර්තනය කරන ලද ක්රමලේඛ කෙලින්ම යන්ත්ර භාෂාවට හැරේ.
ප්රභව ක්රමලේඛය (source code) ---> විෂය ක්රමලේඛය (object code)
නමුත් මෙසේ ප්රභව ක්රමලේඛය කෙලින්ම විෂය ක්රමලේඛයට පරිවර්තනය නොකරණ පරිගණක භාෂාද ඇත.ඒ සදහා හොදම උදාහාරණය ජාවා (java) පරිගණක භාෂාවයි.එවැනි භාෂා මගින් ක්රමලේඛ පරිවර්තනය කරන්නේ මෙසේය.
source code --> byte code --> object code
මෙහි ඇති විශේෂත්වය වන්නේ යම් ක්රමලේඛයක source code එක හා byte code එක ඕනෑම පරිගණකයකදී සමාන වන නමුත් object code එක ඒ අවස්තාවේ ක්රමලේඛය ක්රියාත්මක වන platform එක(මෙහෙයුම් පද්දතිය) අනුව වෙනස් වීමයි.එහිදී source code එක byte code බවට පත් කිරීමට compiler වර්ගයේ පරිවර්තකයක්ද, byte code එක object code බවට පත් කිරීමට interpreter ද භාවිතා කරනු ලබයි.