Tuesday, August 13, 2013

Java වැඩසටහනක් ක්‍රියා කරන හැටි...

at 12:36 PM  |  No comments

Java වැඩසටහනක් ක්‍රියා කරන හැටි


             අපි editor එකක් භාවිතයෙන් ලියු source code එක(java file එක) java compiler වෙතට ලබා දේ.java compiler එක විසින් source code එකෙන් class file එකක් සාදයි.(Byte code / Magic code යනුවෙන් හදුන්වන්නේද මෙම class file එකම වේ).ඉන්පසු JVM - Java Virtual Machine විසින් මෙම class file එක machine code එකට(යන්ත්‍ර භාෂාවට) හරවා ධාවනය(run) කරයි.

Compiler යනු කුමක්ද?
          ඕනෑම පරිගණක භාෂාවක අපිට හමුවෙන දෙන්නෙක් තමයි මේ compiler හා interpreter.අපි ලියපු source code එක මුලින්ම බලන්නේ compiler.එයා එකේ තියෙන වැරදි පෙන්වල දෙනවා.වැරදි වර්ගත් දෙකක් තියෙනවා.එකක් compile වෙන වෙලාවේ අහුවෙන වැරදි.අනිත්ව run වෙන වෙලාවේදී අහුවෙන වැරදි.මේ දෙවනියට කියපු වැරදි compile වෙන වෙලාවේ අහුවෙන්නේ නෑ.පලවෙනි විදියේ වැරදි තියෙනවනම් හදන්න කියනවා.හැදුවට පස්සේ එයා source code එක machine code එකට හරවනවා.දැන් එයාගේ වැඩ ඉවරයි

Interpreter යනු කුමක්ද?
              compiler හදපු  machine code එක check කරනවා.හැබැයි මෙයා compiler වගේ මුලින්ම code එක සම්පුර්නෙන්ම check කරල ඉන්නේ නෑ.run කරන ගමන් තමයි check කරන්නේ.error එකක් අපු ගමන් run කරන එක නවත්තල error එක හදන්න කියනවා.මේ දෙන්නම වැඩ කරන්නේ පේලියෙන් පේලියට.ඒ කිව්වේ program එක පටන් ගන්න තැන ඉදල පේලියෙන් පේලිය පිළිවෙලට තමයි run වැඩ කරන්නේ.

දැන් තව දෙයක් කියන්න ඕනේ.මේක අනිත් භාෂා සහ java අතර තියෙන තවත් වැදගත් වෙනසක්.C , C#  වගේ ගොඩක් දියුණු අනෙත් භාෂා වල compiler හා interpreter එකට එක වැඩසටහනක් විදිහටයි තියෙන්නේ.එත් java වල මේ දෙක වෙන වෙනම තියෙන්නේ.ඉතින් මේ දෙකේ තියෙන වෙනස ඇයි මෙච්චර වැදගත්.

මේකයි java compiler ටිකක් වෙනස්.එයා source code එක machine code එකට හරවන්නේ නෑ.එයා එකෙන් වෙනම file එකක් හදනවා.මේකට class file,magic code,byte code කියන නම් පාවිච්චි කරනවා.ඊට පස්සේ java වල ඉන්න interpreter, අපි මෙයාට වෙනම නමක් කියනවා.ඒ තමා JVM - Java Virtual Machine.මෙයා මේ class file එක machine code එකට(යන්ත්‍ර භාෂාවට) හරවා ධාවනය(run) කරනවා.

ඇයි ඉතින් එහෙම එකක් හදන්නේ?කෙලින්ම machine code එකට හැරෙව්වේ නැත්තේ ඇයි?
මේකයි C , C#  වගේ ගොඩක් භාෂා වල compiler හා interpreter එකට එක වැඩසටහනක් විදිහටයි තියෙන නිසා එක පරම compile වෙලා run වෙනවා.මේ ලියපු වැඩසටහන වෙනත් පරිගණකයකට ගෙනයද්දී ගැටළුවක් එනවා.මුළු project එකම උස්සන් යන්න සිද්ද වෙනවා.මම කිව්වේ setup file එක හදන්න කලින් හොදේ.java වල එහෙම අවුලක් නෑ.project එකම උස්සන් යන්න සිද්ද වෙන්නේ නෑ class file එක ගෙනිච්චම හරි.ඒ පරිගණකයේ JVM ඉතුරු වැඩ ටික බලාගනී.

තව දෙයක් C , C#  වගේ ගොඩක් භාෂා Platform Independence නැහැ.වැඩසටහන් හදන පරිගණකයේ platform එකේ විතරයි වැඩ කරන්නේ.
උදා:- windows වල ලියපු වැඩසටහනක් run වෙන්නේ windows වලින් පණගැන්වෙන පරිගණක වල විතරයි.
ඇයි මේ?හේතුව මේකයි එක platform එකක ඉදන් ලියපු වැඩසටහනක් තවත් platform එකක ඉන්න compiler + interpreter ට හදුනා ගන්න බෑ.තව විදියකින් කිව්වොත් වැඩසටහනට බෑ ඒ ඒ platform එකට අනුව හැඩගැහෙන්න.


එත් java එහෙම නෑ.java වල bytecode එක ඒ කිව්වේ compilerගේ output එක සම්බන්ද වෙන්නේ JVM එකත් එක්ක.bytecode ට බෑ ඒ ඒ platform එකට අනුව හැඩගැහෙන්න එත් JVM එකට ඒ කිව්වේ interpreter ට පුළුවනි. JVM එක platform එකට අනුව හැඩ ගැහිලයි ඉන්නේ.එයා bytecode එක run කරනවා.මෙතැනදී platform එකත් එක්ක set වෙලා ගේම ගහන්නේ JVM එක.

මේ නිසා java කියන්නේ Platform Independence language එකක්.ඒවගේම පහසුවෙන් ගෙනයා හැකි නිසාත් Platform Independence නිසාත් මෙය portable language එකක් ලෙස හදුන්වයි.

Share
Posted by Unknown
Java සිංහලෙන්

Java වලට කැමති හැමෝටම.java සිංහලෙන්.

0 comments:

© 2013 javasinhalen. Woo Themes converted by BloggerTheme9
Blogger template Proudly Powered by Blogger.