C හා C++ සිංහලෙන්/C ගැන ඉගෙන ගැනීමට පෙර
C++ යන පරිගණක භාෂාව ඉගෙන ගැනීමට පෙර ඊට අවශ්ය පසුබිම සකසා ගෙන සිටිමු.
පළමුවන හා දෙවන පරම්පරාවල පරිගණක භාෂා
[සංස්කරණය]පළමුවන පරම්පරාවේ පරිගණක භාෂාවලට (First Generation Programming Languages) අයත් වන්නේ Machine Code ය. එහි භාවිතා වන්නේ 0 හා 1 පමණක් වන අතර පරිගණකයට හොඳින් තේරෙන භාෂාව ද එය පමණෙකි.
දෙවන පරම්පරාවේ පරිගණක භාෂාවලට අයත් වන්නේ Assembler යන පරිගණක භාෂාවයි. මිනිසාට තේරෙන වචන වෙනුවට කේත කරන ලද කෙටි වචන සමූහයක් භාවිතා වීම මෙහි ලක්ෂණයයි.
පළමුවන හා දෙවන පරම්පරාවල පරිගණක භාෂාවලට පොදුවේ Low Level Programming Languages යැයි කියනු ලැබේ.
සම්පාදක (Compilers) හා පරිවර්තක (Interpreters)
[සංස්කරණය]Compiler එකක් හෝ Interpreter එකක් යනු ඉහළ පරම්පරාවක පරිගණක භාෂාවකින් ලියන ලද පරිගණක වැඩ සටහනක් යාන්ත්රික කේත (Machine Code) වලට හැරවීම සිදු කරන මෘදුකාංගයි. පොදුවේ මේවා පරිවර්තක (Translators) ලෙස හැඳින් වේ.
මේවා ගැන තේරුම් ගැනීමට පෙර භාෂා පරිවර්තකයින් ගැන තේරුම් ගෙන සිටිමු. භාෂා පරිවර්තකයින් වර්ග දෙකක් ඇත.
අප සිතමු සාම්ප්රදායික දේශපාලඥයන් ගැන. ඔවුන් කතාවක් කිරීමට පෙර තම කතාව සකසා ගනියි. කතා කරන්නේ අකුරක් නෑර සකස් කරන ලද එම කතාවයි. එවැනි කතාවක් වෙනත් භාෂාවලට හැරවීමේදී සම්පූර්ණ කතාවම කලින් අනෙක් භාෂාවට හැරවීම පහසුවෙන් කළ හැක්කේ කතාව කලින් සකස් කර ඇති බැවිනි. එහෙත් වඩා ප්රායෝගික දේශපාලඥයින් කතාවක් කරන්නේ එවේලේ හිතට එන අන්දමට මිස කලින් සකස් කරගෙන නොවේ. එබඳු කතාවක් වෙනත් භාෂාවකට හැරවිය හැක්කේ කතාව කරන අතරතුර දී පේළියෙන් පේළියයි. ඒ කලින් සකස් කරන ලද කතාවක් නොමැති බැවිනි. ෆිදෙල් කස්ත්රෝ නම් පරිණත දේශපාලඥයා කථාවක් කිරීමට පෙර කලින් සකස් කරන ලද කතාවක් කරන්නද හිතෙන් කතා කරන්න දැයි ජනයා ගෙන් අසනවාලු. ඒ නිසා ඔහු මේ වර්ග දෙකටම අයත් නායකයෙක් බවට අපට අනුමාන කරන්නට පුළුවනි.
Compilers යනු මුළු පරිගණක වැඩ සටහනම එකවර යාන්ත්රික කේත (Machine Code) වලට හරවන පරිවර්තක ය. එහිදී මුලින් මුළු වැඩ සටහනම යාන්ත්රික කේත (Machine Code) වලට හැරවෙන අතර ඉන්පසු ධාවනය (Run) කිරීමට අවශ්ය වාරයක් වාරයක් පාසා එය ක්රියාත්මක කළ හැකිය. මේ නිසා ධාවනය (Run) කිරීමේදී මෙයට ගතවන කාලය ඉතා අඩුය. එහෙත්, මුලින් පරිවර්තනය වීමට නම් යම් කාලයක් ගත වේ. මෙම වර්ගයට C++ හා Pascal වැනි භාෂා අයත් වේ. Interpreter එකකින් වැඩ සටහනක් පරිවර්තනය කිරීමේදී එය සිදු වන්නේ පේළියන් පේලිය බැගිනි. මෙ නිසා එයට විශාල කාලයක් ගත වන අතර ධාවනය (Run) කරන වාරයක් පාසා මෙම පරිවර්තනය කිරීම සිදු කළ යුතු ව තිබිණි. BASIC නම් පරිගණක භාෂාව අයත් වූයේ මෙම වර්ගයටයි.
අද කාලයේ ජනප්රිය ව ඇති Java වල මෙන්ම .NET මත වැඩ කරන VB .NET හා C# .NET වැනි පරිගණක භාෂාවල ද මෙම ලක්ෂණ දෙක ම දැකිය හැකිය.
gcc හා g++
[සංස්කරණය]අපි උබුන්ටු (Ubuntu) මත C ගැන ඉගෙන ගන්න යනවා නම් අප ඉගෙන ගත යුතු මෘදුකාංග එහෙමත් නැත්නම් පරිගණක භාෂා 2ක් තියෙනවා. එකක් තමයි gcc. අනෙක g++. gcc සමක වනුයේ C කියන පරිගණක භාෂාවට වන අතර g++ සමක වනුයේ C++ කියන පරිගණක භාෂාවටයි. අපි මුලින් gcc වලින් මේ අභ්යාසය පටන් ගනිමු. කොහොම වෙතත් මේ වැඩේ පටන් ගන්න කලින් තමන්ගෙ පරිගණකයට අළුත් දෘඪ විබෙදුමක් (Partition) එකක් හදලා උබුන්ටු (Ubuntu) එහෙම ස්ථාපනය (Install) කරගෙන හිටියොත් නේද හොඳ ? ඒ එක්කම gcc හා g++ කියන මෘදුකාංග දෙකත් ස්ථාපනය (Install) කර ගත්තොත් අපට ලෙහෙසි වෙයි. මම හිතන්නෙ උබුන්ටු ස්ථාපනය කරන කොට ම gcc ත් ස්ථාපනය වෙනවා.
ඒ එක්කම තවත් දෙයක්. උබුන්ටු ස්ථාපනය කර ගන්නේ නැතුව මේ වැඩේ කරන්නත් පුළුවන්. Windows මත MinGW නම් මෘදුකාංගය ස්ථාපනය (Install) කර ගන්න. ඊළඟට අපට Windowsවල ඉඳගෙනම gcc ක්රමලේඛණය කළ හැකියි.
එහෙම නම් ඊළඟ ලිපිය gcc ඉගෙන ගැනීම සඳහා වන පළමු ලිපිය වෙයි.