What Is C++? {C++ යනු කුමක්ද?} lesson 1
මම දන්න විදිහට Computers හදලතියෙන්නෙ ලොකු තොරතුරු [ information ] ප්රමානයක් ඉක්මනින් හා නිවරදි විදිහට හසුරවන්න හා වෙනස්කරන්න. නමුත් Computer එකට කාගෙන්වත් උපදෙස් නැතුව කිසිම දෙයක් කරන්න බෑ.

Computer එක හසුරවන්න පුල්වන් උපදෙස් මාලාවකට තමයි computer program එකක් කියන්නෙ.
ඔන්න දැන් තමයි මම ගේමට බහින්න යන්නෙ



C++ යනු කුමක්ද?
C++ කියන්නෙ computer එකට තේරෙන විදිහට උපදෙස් මාලාවක් [program] ලියන්න පුලුවන් බාශාවක් (මොකාට උනත් තේරෙන බාශාවකින් කියන්න එපැයි
). හැබැයි C++ වලින් ලියන උපදෙස් මාලා එකපාරම computer එකට තේරෙන්නෙනෑ 
. මොකද අපි පොඩිකාලෙ අහල තියන විදිහට computer එකට තේරෙන්නෙ binary [1,0] විතරයි. පොඩිකාලෙ එහෙම උනාට දැන් computer එකට තව තව භාශා තේරෙනව 

. ඒවට තමයි Machine languages කියන්නේ. 
මම හිතන විදිහට මෙතන ඉන්න වැඩිදෙනෙක් use කරන්නෙ Intel processors තියන computers.
තව ටිකක් බරපතල විදිහට කිව්වොත් Intel Architecture 32-bit (i386, x86-32, x86 කියල කියන්නෙත් මේකම තමයි
) processors තියන computers. අපි දැන් use කරන computers වලට තේරෙන බාශාව තමයි x86 machine language කියන්නෙ. 

මේ තියෙන්නෙ 32-bit x86 machine code එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක්
(Fibonacci number කියන්නෙ 0,1,1,2,3,5,8,13,21,34 ............ පිලිවෙලට තියන ඉලක්කම් වලට)





ඕක කෙලින්ම අපේ computer එකට තේරෙනව නමුත් අපිට තේරෙන්නෙනෑ.
ඔය වගේ code අපිට තේරුම්ගන්න අමාරු හින්ද තමයි c++ , java , c ,assembly වගේ භාශා(programming languages) හදල තියෙන්නෙ.
මේ තියෙන්නෙ assembly language එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක්


ඕක කෙලින්ම අපේ computer එකට තේරෙන්නෙනෑ නමුත් මට නම් ට්කක් තේරෙන්ව.
මේක computer එකට තේරෙන්න නම් 32-bit x86 machine code එකක් විදිහට පරිවර්තනය කරන්න ඕන. ඔය වැඩේට තමයි Assembler කියන program එක use කරන්නෙ. ඔය n වෙනි Fibonacci number එක හොයාගන්න ලියපු assembly code එක ලියල තියෙන්නෙ MASM (Microsoft Macro Assembler) කියන, assembly code එකක් 32-bit x86 code වලට පරිවර්තනය කරන්න පුලුවන් Assembler එකට ගැලපෙන විදිහට.
අපිට තේරුම්ගන්න පුලුවන් වෙන්න කියල හදපු assembly language එකෙනුත් අපිට ලොකු උදව්වක් නෑකියල ඔයාලට හිතෙනව ඇති.


මේ තියෙන්නෙ c++ language එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක්.



මේකනම් මට හොදට තේරෙනව.


මේක කෙලින්ම අපේ computer එකට තේරෙන්නෙනෑ කියල ඔයාල දන්නවනෙ. හැබයි මම හිතන විදිහට C++ code එකක් computer එකට තේරෙන විදිහට පරිවර්තනය කරන හැටි තාම ඔයාල දන්නෙ නෑ.

C++ code එකක් computer එකට තේරෙන විදිහට පරිවර්තනය කරන්නෙ Compiler කියල හදුන්වන program එකකින්. C++ Compiler එකෙන් වෙන්නෙ C++ code එකක් machine code එකක් විදිහට පරිවර්තනය වෙනෙඑක. C++ වලින් ලියන programs use කරන්න පෙර machine code එකක් විදිහට පරිවර්තනය කරන නිසා Compiled language එකක් කියලත් හදුන්වනවා.

මම හිතන්නෙ මුලින් දීපු assembly code එකට වඩා C++ code එක ඔයාලට ටිකක් හරි තේරෙනව අති.

C++ code විතරක් නෙමෙයි java , c වගේ language use කරල ලියන code උනත් assembly code එකට වඩා ලේසියෙන් අපිට තේරුම්ගන්න පුලුවන්. ඒ නිසා තමයි programming languages ප්රදානවශයෙන් high-level programming languages සහ low-level programming languages කියල දෙකකට බෙදලතියෙන්නෙ.
C , Java , C++ high-level programming languages වලට අයිතිවෙන්නෙ. assembly අයිතිවෙන්නෙ low-level programming languages වලට.

දැනට C++ වල හැදින්වීම ඇති
. කෙටියෙන් කියනවනම් C++ high-level Compiled programming language එකක්. 

තව එකක් කියන්න බැරිවුනා C++ මුලින්ම හදල තියෙන්නෙ 1980 වෙදි Bjarne Stroustrup කියල කෙනෙක් C වල වැඩිදියුනුකරපු programming language එකක් විදිහට. මුල්ම නම වෙලා තියෙන්නෙ
"C with Classes".
අදට මෙච්චරයි, මේකනම් මට හොදට තේරෙනව කියල මම C++ code එකට යටින් දැම්මට ඔයාලට
ඒක තාම නොතේරෙන්න පුලුවන් ඒත් C++ පාඩම තව ටිකදවසක් කරගෙන යද්දි අනිවා ඒක තේරෙනව.


අදහස් ගැටලු හා යෝජනා පෝස්ට් කරන්න අමතක කරන්න එපා




What Is C++? {C++ යනු කුමක්ද?}
c++ from the ground up (මුල සිට)
C++ ගැන කතාකරන්න ඉස්සෙල්ලා Computers හදලතියෙන්නෙ මොකටද කියල කියන්න ඕන.
C++ ගැන කතාකරන්න ඉස්සෙල්ලා Computers හදලතියෙන්නෙ මොකටද කියල කියන්න ඕන.
මම දන්න විදිහට Computers හදලතියෙන්නෙ ලොකු තොරතුරු [ information ] ප්රමානයක් ඉක්මනින් හා නිවරදි විදිහට හසුරවන්න හා වෙනස්කරන්න. නමුත් Computer එකට කාගෙන්වත් උපදෙස් නැතුව කිසිම දෙයක් කරන්න බෑ.

Computer එක හසුරවන්න පුල්වන් උපදෙස් මාලාවකට තමයි computer program එකක් කියන්නෙ.

ඔන්න දැන් තමයි මම ගේමට බහින්න යන්නෙ



C++ යනු කුමක්ද?

C++ කියන්නෙ computer එකට තේරෙන විදිහට උපදෙස් මාලාවක් [program] ලියන්න පුලුවන් බාශාවක් (මොකාට උනත් තේරෙන බාශාවකින් කියන්න එපැයි

). හැබැයි C++ වලින් ලියන උපදෙස් මාලා එකපාරම computer එකට තේරෙන්නෙනෑ 
. මොකද අපි පොඩිකාලෙ අහල තියන විදිහට computer එකට තේරෙන්නෙ binary [1,0] විතරයි. පොඩිකාලෙ එහෙම උනාට දැන් computer එකට තව තව භාශා තේරෙනව 

. ඒවට තමයි Machine languages කියන්නේ. 
මම හිතන විදිහට මෙතන ඉන්න වැඩිදෙනෙක් use කරන්නෙ Intel processors තියන computers.
තව ටිකක් බරපතල විදිහට කිව්වොත් Intel Architecture 32-bit (i386, x86-32, x86 කියල කියන්නෙත් මේකම තමයි
) processors තියන computers. අපි දැන් use කරන computers වලට තේරෙන බාශාව තමයි x86 machine language කියන්නෙ. 

මේ තියෙන්නෙ 32-bit x86 machine code එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක්

(Fibonacci number කියන්නෙ 0,1,1,2,3,5,8,13,21,34 ............ පිලිවෙලට තියන ඉලක්කම් වලට)

Code:
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3





ඕක කෙලින්ම අපේ computer එකට තේරෙනව නමුත් අපිට තේරෙන්නෙනෑ.

ඔය වගේ code අපිට තේරුම්ගන්න අමාරු හින්ද තමයි c++ , java , c ,assembly වගේ භාශා(programming languages) හදල තියෙන්නෙ.

මේ තියෙන්නෙ assembly language එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක්
Code:
fib:
mov edx, [esp+8]
cmp edx, 0
ja @f
mov eax, 0
ret
@@:
cmp edx, 2
ja @f
mov eax, 1
ret
@@:
push ebx
mov ebx, 1
mov ecx, 1
@@:
lea eax, [ebx+ecx]
cmp edx, 3
jbe @f
mov ebx, ecx
mov ecx, eax
dec edx
jmp @b
@@:
pop ebx
ret


ඕක කෙලින්ම අපේ computer එකට තේරෙන්නෙනෑ නමුත් මට නම් ට්කක් තේරෙන්ව.

මේක computer එකට තේරෙන්න නම් 32-bit x86 machine code එකක් විදිහට පරිවර්තනය කරන්න ඕන. ඔය වැඩේට තමයි Assembler කියන program එක use කරන්නෙ. ඔය n වෙනි Fibonacci number එක හොයාගන්න ලියපු assembly code එක ලියල තියෙන්නෙ MASM (Microsoft Macro Assembler) කියන, assembly code එකක් 32-bit x86 code වලට පරිවර්තනය කරන්න පුලුවන් Assembler එකට ගැලපෙන විදිහට.
අපිට තේරුම්ගන්න පුලුවන් වෙන්න කියල හදපු assembly language එකෙනුත් අපිට ලොකු උදව්වක් නෑකියල ඔයාලට හිතෙනව ඇති.



මේ තියෙන්නෙ c++ language එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක්.
Code:
#include <iostream.h>
int main()
{
int n, x, y, fibonacci;
fibonacci = 0;
n = 15;
for(int i = 0; i <= n; i++)
{
cout<<fibonacci;
fibonacci = x + y;
x = y;
y = fibonacci;
}
return 0;
}



මේකනම් මට හොදට තේරෙනව.



මේක කෙලින්ම අපේ computer එකට තේරෙන්නෙනෑ කියල ඔයාල දන්නවනෙ. හැබයි මම හිතන විදිහට C++ code එකක් computer එකට තේරෙන විදිහට පරිවර්තනය කරන හැටි තාම ඔයාල දන්නෙ නෑ.

C++ code එකක් computer එකට තේරෙන විදිහට පරිවර්තනය කරන්නෙ Compiler කියල හදුන්වන program එකකින්. C++ Compiler එකෙන් වෙන්නෙ C++ code එකක් machine code එකක් විදිහට පරිවර්තනය වෙනෙඑක. C++ වලින් ලියන programs use කරන්න පෙර machine code එකක් විදිහට පරිවර්තනය කරන නිසා Compiled language එකක් කියලත් හදුන්වනවා.


මම හිතන්නෙ මුලින් දීපු assembly code එකට වඩා C++ code එක ඔයාලට ටිකක් හරි තේරෙනව අති.


C++ code විතරක් නෙමෙයි java , c වගේ language use කරල ලියන code උනත් assembly code එකට වඩා ලේසියෙන් අපිට තේරුම්ගන්න පුලුවන්. ඒ නිසා තමයි programming languages ප්රදානවශයෙන් high-level programming languages සහ low-level programming languages කියල දෙකකට බෙදලතියෙන්නෙ.
C , Java , C++ high-level programming languages වලට අයිතිවෙන්නෙ. assembly අයිතිවෙන්නෙ low-level programming languages වලට.


දැනට C++ වල හැදින්වීම ඇති
. කෙටියෙන් කියනවනම් C++ high-level Compiled programming language එකක්. 

තව එකක් කියන්න බැරිවුනා C++ මුලින්ම හදල තියෙන්නෙ 1980 වෙදි Bjarne Stroustrup කියල කෙනෙක් C වල වැඩිදියුනුකරපු programming language එකක් විදිහට. මුල්ම නම වෙලා තියෙන්නෙ"C with Classes".

අදට මෙච්චරයි, මේකනම් මට හොදට තේරෙනව කියල මම C++ code එකට යටින් දැම්මට ඔයාලට
ඒක තාම නොතේරෙන්න පුලුවන් ඒත් C++ පාඩම තව ටිකදවසක් කරගෙන යද්දි අනිවා ඒක තේරෙනව.



අදහස් ගැටලු හා යෝජනා පෝස්ට් කරන්න අමතක කරන්න එපා




Last edited:
+4 repd
)