අද අපේ පළමු පාඩම , මෙම පාඩම අදින් පටන් ගෙන දින කිහිපයක් ඉදිරියට ගලා යාවි. මුලින්ම මතක් කරන්න ඔනි, මම මේ පාඩම් මාලාව සකස් කලේ පරිඝණකය පිළිබඳ කිසිත්නොදන්න කෙනෙක්ට උනත් අවබොධ කරගන්න පුළුවන් මට්ටමක සිට ඉදිරියට කරන්න යන්න හැකි විදියට, ඇතැම් විට මා මේ කියනා සමහර කරුනු ඔබ ඉගෙන ගන්නට ඇත්තේ පරිඝණක විද්යාව පිළිබඳ මුල් පොත් තබනා කාලයේ වෙන්න පුළුවන්. ඒත් ඒ දේවල් මගේ පාඩමේ ගලා යාමට ප්රෙයෝජනවත් වෙන නිසා මම කල්පනා කලා සරළව මුලිකාංග නමින් පරිච්ඡේදයක් මෙම පාඩම් මාලාවට එකතු කරන්න,
හොඳයි අපි එහෙනම් යමු අපේ පළමු මාතෘකාවට.
පරිඝණකයක් යනු
මේ මාතෘකාට කියවද්දි ඇතැම් විට ඔබ මට සිනාසේවි. ඒහෙත් මගේ මාතෘකාවට පිවිසිමට පරිඝණයක් යුනු කුමක්ද යන්නෙහි අරථ කථනය මා කල යුතුමු වෙනවා. ඔබ සියලු දෙනා දන්නා පරිදි ‘‘පරිඝණකයක් යනු මිනිසාගේ කාර්යයන් පහසු කර ගැනීම උදෙසා මිනිසා විසින්ම නිර්මාණය කරන ලද විද්යුත් මෙලවමක්‘‘ යන්නනයි.
මෙම විද්යුත් මෙවලම සම්බන්ධව වැඩිදුර ඉගෙන ගැනිමේදි අප සුදානම් වන්නේ පරිඝණක පද්දතියක් (Computer System) යනු කුමක්ද යන දේ ඉගෙන ගන්න. ඔබ සියල්ලන්ම දන්නා පරිදි පරිඝණක පද්දතිය යන්න පහත ආකාරයේ දල රූප සටහනකින් දැක්විය හැකියි.
මෙහි සඳහන් එකින් එක කොටස් ගැන දැන් වැඩිදුර කතා කරමු.
දෘඩාංග (Hardware)
දෘඩාංග ගණයට පරිඝණක පද්දතිය සතු සියලුම හෞතික උපාංගයන් ඇතුලත් වෙනවා, අන්තර් ජාලයෙන් බාගත කරගත් පහත රූප සටහනින් සාමාන්ය පරිඝණක පදිධතියක් සතු සියලුම දෘඩාංගයන්ගේ රූප සටහන් දැක්වෙනවා. මීට අමතරව ඉදිරි පාඩමකදි දෘඩාංගයන් පිළිබඳ වැඩිදුරටත් කතාබහ කිරිමේදි ඒ පිළිබඳ වැඩිදුර විස්තර ඉගෙන ගනිමු. (All the physical components of the computer)
ජීවාංග (Live ware)
පරිඝණක පද්දතිය ක්රියාත්මක කිරීමට ඇවැසි වන මිනිස් බලය මේ ලෙස හඳුන්වනවා. (People who operate the computer) විද්යුතයේ ආධාරයෙන් ක්රියා කරන පරිඝණක පද්දතිය කිසිවිටෙකත් තනිව කිසිඳු කාර්යයක් ඉටු කරන්නේ නැහැ, එනම් පරිඝණක පද්දතියට ක්රියාත්මක වීමට මිනිසුන්ගේ උපදෙස් අවශයයි. නමුත් ජීවාංගයේ පාලනයෙන් මිදුනු පරිඝණකයක් නුදුරේම බිහිවීමට ඇති ඉඩකඩ බොහෝයි. මේ වන විට විද්වතුන්ගේ මතය අනාගත ලෝකයේ දී මිනිස් පාලනයෙන් මිදුනු ඉලෙක්ට්රොණික උපාංගයන් ගේ යුගයක්ද බිහිවිය හැකි බවයි.
මෘදුකාංග (Software)
ඉහත රූප සටහනේ ඇතුලත් සියලුම උපාංගයන් සහිතව නවීන පරිඝණකයක් ඔබට ලැබුනහොත් එයට විදුලියට සම්බන්ධ කල විටද එය සාමාන්ය ලෙස ක්රියාත්මක නොවිය හැකියි. ඔබ මේ ගැන මොහොතක් සිතා බැලුවාද?
පරිඝණක පද්දතියේ ක්රියාකාරිත්වයේ වැදගත්ම සාධකයක් වන මෘදුකාංග රහිතව පද්දතියේ ක්රියාකාරීත්වයක් නොමැති බව ඔබට වැටහෙන්නට ඇති.
පරිඝණක පද්දතියේ ක්රියා කාරීත්වයට අත්යාවශය අංගයක් වන මාදු කාංග පිළිබඳ ඉගෙන ගැනම අපි දැන් ආරම්භ කරමු.
පරිඝණක මෘදුකාංගයක් යනු කුමක්ද
“යමිකිසි විශේෂිත කාර්යයක් ඉටුකිරීම සඳහා පරිඝණකය වෙත දෙනු ලබන විශේෂිත උපදෙස් මාලාවක් පරිඝණක මෘදුකාංගයක් ලෙස හඳුන්වයි “. (Computer program is a set of instructions which is giving to the computer in order to solve a specific problem or to perform a specific task)
මෙලෙස පරිඝණකයට උපදෙස් ලබා දීමට විශේෂිතව ලියනු ලබන උපදෙස් මාලාවන් ලිවීම සඳහා මිනිසා සහ පරිඝණය දෙදෙනාටම තේරුම් ගත හැකි පොදු භාෂාවක් තිබිය යුතු වෙනවා. ඒ වෙනුවෙන් නිර්මාණය වුනු පරිඝණක ක්රමලේඛන භාෂාවන් බොහොමයක් තිබෙනවා ඒ අතර
Ø බේසික් (Basic)
Ø පැස්කල් (Pascal)
Ø ජාවා (Java)
Ø විෂුවල් බේසික් (VB)
යනාදිය ඔබ කවුරුන් අතරත් ප්රසිද්දයි.
පරිඝණක ක්රමලේඛන භාෂාවක් යනු
අපි දැන් යොමු වෙමු පරිඝණක ක්රමලේඛන භාෂාවක් යන්නෙහි අර්ථ කථනයට. පොත පතෙහි සඳහන් වන පරිදි පරිඝණක ක්රමලේඛන භාෂාව යන්නට මේ වනතුරුත් මේ යැයි කිවිය හැකි නිවැරදි අරථ කථනයක් නොමැති බව සඳහන් වෙනවා. මෙයින් අදහස් කරන්නේ විවිධ පොත් පත් වල සහ විවිධ දේශකයන් මෙහි අර්ථ කථනය විවිධාකාරයෙන් කරන බවක්.
මෙයට ප්රධානතම හේතුවක් වෙලා තියෙන්නේ 19 වන සියවසේදි පරිඝණක ක්රමලේඛන භාෂාවට දුන් අර්ථ කථන මේ වන විට පවත්නා පරිඝණක ක්රමලේඛන භාෂාවන් හා සසඳන කල නොගැලපීම් තිබිම වශයෙන් ISBN අංක 1-90234-345-x දරන පොතෙහි සඳහන් වෙනවා.
ඒ අනුව නවීන ලෝකයේ පරිඝණක ක්රමලේඛන භාෂාවක් යන්න පහත සදහන් විදියට විවිධ අයුරින් අර්ථ දක්වනවා.
1. A programming language has been defined as a tool to help the programmer. - පරිඝණක ක්රමලේඛන භාෂාවක් යනු ක්රමලේඛකයාගේ පහසුව පිනිස නිර්මාණය කරන ලද මෙවලමකි.
2. A way of writing that can be read by both a human being and a machine. - පරිඝණක ක්රමලේඛන භාෂාව ලියන ආකාරය මිනිසාට මෙන්ම යන්ත්රයන්ටද තේරුම් ගත හැකි (කියවිය හැකි) ය.
3. A sequence of instructions for the machine to carry out. - යන්ත්රෙය් ක්රියා කාරිත්වය පවත්වා ගැනීම සඳහා ලබා දෙන ක්රමාණුකූල උපදෙස් මාලාවකි.
4. A way for a human being to communicate with a machine that is unable to understand natural language - යන්ත්රයන්ට සාමාන්ය භාෂාවන් තේරුම් ගත නොහැකි නිසා මිනිසා ට යන්ත්රය සමඟ සංනිවේදන පවත්වා ගැනිම සඳහා යොදා ගත හැකි ආකාරයක්.
5. A computer language offers a means of writing algorithms that can be understood by both human being and machine. Machines are unable to understand natural language, so human being uses algorithms that are translated in to machine code by the programming language. Machine code is difficult for human to use, so a language translates human readable language to machine readable form. - මිනිසාට සහ පරිඝණකය යන දෙකටම පෙදුවේ තේරුම් ගත හැකි රීති ක්රම ලිවිම. එනම් පරිඝණකයට තේරුම් ගත හැකි වන පරිද්දෙන් මිනිසා විසින් ලියන ලද රීති ක්රමයන් (algorithms ) පරිඝණක ක්රමලේඛන භාෂාව වසින්ම යන්ත්ර කේතයන් (machine code) බවට පරිවර්තනය කිරිම මෙනයින් කියවේ.
මෙහිදි යන්ත්ර කේතයන් (machine code) පිළිබඳ වැඩිදුර යමක් කිව යුතුමය. සරලව සිතා බැලු කල ඔබේ සිතට මෙම සිද්ධාන්තය වැටහෙනු ඇති. එනම් යන්ත්රයන් ක්රියාකාරි වනුයේ විද්යුතයෙනි. එවිට යන්ත්රය දන්නා එකම කාරනය එයට විද්යුතය ලැබේද නොලැබෙද යන්න පමණි. විද්යුතය ලැබීම 1 ලෙසත් නොලැබීම 0 ලෙසත් ගත්කල 1 සහ 0 යනු පරිඝණකය දන්නා අක්ෂර දෙකකි. මෙම 1 සහ 0 සිද්ධාත්තය සංඛ්යාංක සංඥාවක් ලෙස නිර්මාණය කල විට එය යන්ත්රයට හඳුනාගත හැක්කක් බවට පත්වේ. සියලුම අක්ෂරයන්ට හිමි සංඛ්යාංක සංඥාවන් විද්යාඥයින් විසින් නිර්ණය කොට සාමාන්ය භාෂාවකින් ලියැවෙන මෙම ඛේතයන් ද්ව්යංගී යන්ත්ර කේතයන් (Binary machine code) බවට පරිවර්ථනය කරනු ලබයි.
උදාහරනයක් ලෙස
Podi teacher යන වචන දෙක ද්ව්යංගී යන්ත්ර කේතයක් (Binary machine code) බවට පරිවර්ථනය කල විට පහත අයුරින් දිස්වේ
01110000 01101001 01100100 01101001 00100000 01110100 01100101 01100001 01100011 01101000 01100101 01110010
මේ ආකාරයේ ද්ව්යංගී යන්ත්ර කේතයන් (Binary machine code) මතක තබා ගැනිම ලෙහෙසි කාරනයක් නොවන බැවින් මිනිසා විසින් නවීන පරිඝණක ක්රමලේඛන භාෂාවන් සොයාගෙන ඇත.
ඔබට මෙම සබැඳිය ඔස්සේ ගොස් ඉහත මා දැක්වු උදාහරනයේ නිවැරදි තාවය පරික්ෂා කල හැකියි.
6. A computer program offers humans a standard way of expressing algorithms to solve particular problems. As languages offer a convention it allows other human to read the program, and change it if they need to. - පරිඝණක මෘදුකාංගය විසින් මිනිසාට නියමිත ආකාරයෙන් රිතික්රමයන් උපයෝගී කර ගනිමින් තම අවශතාවට ඉටු කර ගරනිමට මං සලසයි. එලෙසම පරිඝණක ක්රමලේඛන භාෂාවක් සම්මුතියක් ලෙස ක්රියාකර අවශ්ය විට ඛේතයන් වෙනස් කිරිමේ පහසු කමද සලසා දෙයි.
මෙම වෙනස්කම් සිදු කිරීමේදි අදාල පරිඝණක ක්රමලේඛන භාෂාවට අදාල සම්මුතියන්ගේ පිහිටා සිට වෙනස් කම් කල යුතුය.
ඉහත ආකාරයට විවිධ අයුරින් අරුත් ගැන්වෙන පරිඝණක ක්රමලේඛන භාෂාව සරලව ගත් කල අපිට වටහා ගන්නට හැකි වන්නේ එය පරිඝණක මෘදුකාංගය ලිවීමට යොදා ගන්නා යන්ත්ර කේතයන් සමුහයකගේ එකතුවක් බවයි.
එමෙන්ම මෙම යන්ත්ර කේතයන් අදාල ක්රමලේඛන භාෂාවට අතිශයින් ආවේනික රටාවකින්ද යුක්ත වෙයි.
උදාහරනයක් ලෙස :-
Ø පරිඝණක තිරයේ යම් වාඛ්යයක් දැක්වීමට (To display a text on the screen)
Pascla ක්රමලේඛන භාෂාවේ ඛේතය writeln(`Podi Teacher `);
C ක්රමලේඛන භාෂාවේ ඛේතය printf(`Podi Teacher `);
Ø තිරයෙහි ඇති වාඛ්යය මැකීමට (To clear the screen)
Pascal ක්රමලේඛන භාෂාවේ ඛේතය clrscr;
C ක්රමලේඛන භාෂාවේ ඛේතය clrscr();
හොඳයි අදට පාඩම ඇති වගේ නේද.. එහෙනම් අපි අදට මෙතැනින් නතර කරමු.. පුළුවන් ඉක්මනින් ඊළඟ පාඩමෙන් මුන ගැහෙමු. සැමට සුභ දවසක්!!
පසුව ලියමි.
ඔන්න ඉතින් ආරම්භයේදීම කිහිප දෙනෙක් පොඩි ටීචර් කවුද කියලා අතටම අල්ලගත්තා. අහු උනේ පොඩි ටීචර් වැඩිය කල්පනා නොකර කරපු දෙයක් නිසා. ඒකට නම් කමක් නැහැ අහු උනේ ටීචර්ගේ ලඟම යාළුවෝ කිහිප දෙනෙක්ට. ඒ අය පෞද්ගලිකව දක්වපු අදහස් වලටත් මුල් ලිපියේ ඔබ හැම දුන් ප්රතිවාර වලටත් බොහෝම ස්තූතියි.
ඇතැම් වෙලාවට පොඩි ටීචර් අතිනුත් සුලු වැරදීම් වෙන්න පුවවන් ඒ කියන්නේ සින්හලට පරිවර්තනය කිරිමේදි එහෙම.. අන්න ඒ වගේ වෙලාවට මගේ අතින් අතපසුවීම් වෙනවා දුටු වොත් ආදරණිය පාඨයින් හැමට අයිතියක් තියෙනවා කමෙන්ටුවකින් ඒ වරද පෙන්නලා ඒක නිවැරදි කර ගන්න මට උදව් වෙන්න.
අනෙක් කාරනය මේ පාඩම් මාලාව ගලායන වේගය මදිනම් ඒ කියන්නේ කිසියම් කොටසක් මුලින් බ්ලොගයේ පල කරන්න ඔනි නම් ඒ ගැනත් මාව දැනුවත් කරන්න මට පුළුවන් වෙයි ඒ අදාල සිද්ධාන්ත කොටස ලිපියක් ආකාරයෙන් පාඩම් මාලාවට අමතරව සටහන් කරන්න.