Wednesday, April 04, 2007

எளிய முறையில் ஜாவா - பகுதி 4

ஜாவா ஆணைத்தொடர் அமைப்பு

சென்ற பகுதியில் ஜாவாவின் மொழி கட்டமைப்பினைப்பற்றியும், கீ வோர்ட் (பதிக்கப்பட்ட வார்த்தைகள்) பற்றியும் பார்த்தோம். இப்பகுதியில் சாதாரண ஒரு ஆணைத்தொடர் (program) அமைப்பினை எடுத்துக்காட்டோடு எப்படி இயக்குவது என்று பார்ப்போம்.

< > என்ற அடைப்புக்குறிக்குள் (angle bracket) கொடுக்கப்பட்டவை பயனாளர் தேர்வு செய்யும் பெயர்கள் (user variables) ஆகும்.


class
{
:
;
;
public static void main(String args[])
{


System.out.println(" ");
}
}
--------------------------

(எடுத்துக்காட்டு)

class sample()
{
public static void main(String args[])
{

System.out.println("You are welcome to java programming");
}
}

----------------
இயக்க:
கமன்ட் ப்ராம்ப்டில் (start -> run -> type cmd or command -> enter)
c:\javac sample.java
c:\java sample
கிடைக்கும் பதில்:
output:-
You are welcome to java programming
(javac sample.java என்பது கம்ப்பைலருக்கு தரப்படும் கோப்பின் பெயராகும்.
java sample என்பது இன்டர்ப்ரட்டருக்கு தரப்படும் க்ளாசின் பெயராகும்)


பின்குறிப்பு:-
ஜாவாவை இயக்க

1. ஜாவா விர்ச்சுவல் மெசின் நிறுவப்பட்டிருக்கவேண்டும் (மேலும் விவரத்திற்கு சென்ற பகுதியைக்காண்க)

2. ஜாவா இயங்கு பாதையும் நிறுவப்பட்டிருக்கவேண்டும்.

விண்டோஸ் இயங்கு தளத்தில் இருப்பவர்கள்
my computer -> properties -> environmental variables -> java home -> jdk\bin
-ல் ஜாவா இயங்கு பாதையை நிறுவி விட்டால் எந்த டிரைவிலிருந்தும் உங்களது தரவினை இயக்க முடியும்.

Thursday, March 08, 2007

எளிய முறையில் ஜாவா - பகுதி 3







மொழி கட்டமைப்பு:-






Black = SOA

Cyan = Component

Brown = OOPS

Yellow = Structured

Green = Procedural

Orange = Monolithic Concept

Blue = Assembly Language

Pink = Machine Language

சென்ற பகுதிகளில் ஜாவாவின் சிறப்புகளைப்பற்றிப்படித்தோம். இந்த பகுதியில் மொழியின் கட்டமைப்பைப்பற்றிக்காண்போம். மேலே உள்ள படம் புரோகிராமிங் லாங்க்வேஜின் கட்டமைப்பை எடுத்துரைக்கிறது.

இ-பிஸினஸ் (எலெக்ட்ரானிக் வணிகம்) -காக வடிவமைக்கப்பட்டது தான் ஜாவா. வணிக இணையத்தை உருவாக்குவதற்காக “சிம்பிள் ஆப்ஜெக்ட் ஆக்ஸஸ்” கட்டமைவை ஜாவாவில் எழுதமுடியும். “காம்போனன்ட்” கட்டமைவு என்பது அதற்குள் இருக்கும் சப்-ஆர்க்கிடெக்சர் கும். ஆப்ஜெக்ட் ஓரியண்டட் அமைவு காம்போனண்ட் தயாரிக்க உதவுகிறது. இது போல் ஒவ்வொரு லேயராக பிரிக்க பிரிக்க உட்பொருள் (core) கிடைக்கும்.

தெளிவாக விளக்கவேண்டுமாயின், எடுத்துக்காட்டிற்கு ஒரு வீட்டைக்கட்டவேண்டும் என்று வைத்துக்கொள்ளுங்கள். வீடு என்பது பல அறைகள் (லேயர்) கொண்டது. அறைகள் கதவு, ஜன்னல், சுவர், கூரை என்ற காம்போனன்ட்களால் ஆனது. சுவரை உருவாக்க செங்கல், சிமெண்ட், காங்கிரீட், பெயிண்ட் முதலானவை தேவை(ஆப்ஜெக்ட்). இவற்றை சரியான விகிதத்தில் கலப்பது எப்படி? அடுத்தடுத்து எந்தெந்த பொருள்களை எவ்விதத்தில் அடுக்கி உருவாக்கவேண்டும் என்பதற்கான வரைமுறையே புரோசிஜீரல், ஸ்ட்ரக்சர் லேயர் ஆகும்.

மோனோலித்திக், அசெம்ப்ளி, மெசின் கோட் என்பது அதனினும் உள்ளார்ந்த மொழி மாற்றங்கள் மட்டுமே!

அதாவது ஒவ்வொரு நாட்டிற்கும் ஒரு தேசிய மொழி இருக்கும். அதேபோல வட்டார மொழி இருக்கும். அதற்குள் பேச்சு வழக்கு என்ற ஒன்றும் உண்டு. இவற்றுக்கும்மேலாக எளிதான பாஷை செய்கை! இதுபோல மோனோலித்திக் ஒரு குறிப்பிட்ட இன்டர்ப்ரெட்டர் (interpreter - என்பது பயனாளர் மொழியை கணினி மொழியாக மாற்ற உதவும் மொழிமாற்றி) மட்டும் புரிந்து கொள்ளக்கூடிய பாஷை. அசெம்ப்ளி யை புரோசசர்கள் (processor) புரிந்துக்கொள்ளும். மெசின் கோட் என்பது 0 அல்லது 1ல் எழுதப்பட்ட மொழியாகும்.

கம்யூட்டரால் பிட்களை(0,1) மட்டுமே புரிந்துக்கொள்ள முடியும். மிகப்பெரிய கோடிங்கை அவ்வாறு எழுதுவது மிகவும் கடினம். எனவே, பயனாளர்களால் எளிதாக கையாளக்கூடிய வகையில் மொழி அமைவது இன்றியமையாதது. ஒவ்வொரு லேயரும் அதனினும் மேம்படுத்தப்பட்ட ஒரு கட்டமைவை உருவாக்க உதவியிருக்கிறது என்பது உள்ளார்ந்த உண்மை. (இந்தியா இப்படி இருக்கிறதா?)


சரி.. கட்டமைவினைப்பார்த்தாயிற்று. அத்தகைய மொழி மாற்றத்தை ஜாவாவில் செய்வது யார்?


ஜாவா டெவலப்மண்ட் கிட்:-

javac - ஜாவா கம்ப்பைலர் ஜாவா புரோகிராமை பைட் கோடாக மாற்றும்.

java - ஜாவா இன்டர்பெரட்டர் பைட் கோடை எந்திரமொழியாக மாற்றும்.

Javap -ஜாவா டிஸ்அசெம்ப்ளர் பைட் கோடை புரோகிராம் விளக்கியாக மாற்றும்.

Javah - ஹெட் •பைல்ஸ் புரொடியூசர்

Javadoc - ஜாவா டாக்குமெண்ட்டேசன் ஹெச்டிஎம்எல் -ஆக மாற்ற

Jdb -ஜாவா டீபக்கர் பிழைகளைக்கண்டறிய

appletviewer - ஜாவா அப்லெட் வீவர் அப்லெட் -ஐக் காணஉதவுகின்றன.


ஜாவா லைப்ரரி பைல்ஸ்:-


ஜாவா கீவோர்ட்ஸ்:-




Wednesday, January 31, 2007

எளிய முறையில் ஜாவா - பகுதி 1 & 2

எளிய முறையில் ஜாவா - பகுதி1
ஜாவாவின் வரலாறு:-

1995ம் ஆண்டில் பிறந்த ஜாவாவின் கதை மிக சுவாரசியமானது.
பேட் ரிக் நாக்ட்டன், ஜேம்ஸ் கோஸ்லிங் என்னும் சன் மைக்ரோ சிஸ்டத்தின் இரு பொறியியலார்களும் பயனாளர்களுக்காக மேசை கணினிக்கான மொழியை வடிவமைத்துக்கொண்டிருந்தார்கள். அத்தகைய மொழி தொலைக்காட்சி செயலாக்கி (டிவி ரிமோட்டிலும்) யில் பயன்படுத்தவல்லதாக இருக்கும்படி அமைக்கவேண்டியிருந்ததால், சிறிய நினைவகத்தையும், மின்சாரத்தேக்கத்தையும் கருத்தில் கொள்ளவேண்டியிருந்தது. அதே சமயத்தில் வெவ்வேறு உற்பத்தியாளருடைய பொருட்களுக்கும் அது வளைந்துகொடுக்கக்கூடியதாக இருக்கவேண்டியாதாகவும் இருந்தது. அந்த புரோஜெக்ட்டுக்கு அவர்கள் 'க்ரீன்' (பச்சை) என்று பெயரிட்டிருந்தார்கள்.

நடுநிலையான, எந்த வகையான சிபியூ விற்கும் ஏற்புடைய, குறைந்த நினைவகத்தை ஆக்ரமிக்கும் இந்த புரோஜெக்ட் அவர்களுடைய தேவையை பூர்த்தி செய்யக்கூடியதாக இருந்தது. கோஸ்லிங் அதற்கு 'ஓக்' என்றே பெயரிட்டார். ஆனால் ஏற்கனவே அந்தப்பெயரில் வேறொரு மொழி இருந்ததால் பின்னாளில் காப்புரிமையைக்கருத்தில் கொண்டு 'ஜாவா' என்று மாற்ற வேண்டியதாயிற்று.


1992 ம் வெளியிடப்பட்ட 'பச்சை' '*7' என்றும் அழைக்கப்பட்டது. தொடர்பற்ற கட்டுப்படுத்தியாக (ரிமோட் கண்ட்ரோல்) இது சிறப்பாக செயல்பட்டது. இதனை கேபிள் டிவி பாக்ஸ் லும் ரிமோட் சாதனத்திலும் பயன்படுத்த முடியும் என்று நிரூபித்துக்காட்டினார்கள். இருப்பினும் இதனை வாங்கிக்கொள்ளவோ, விளம்பரப்படுத்தவோ எந்த நிறுவனமும் முன்வரவில்லை. எனவே பேட் ரிக் நாக்ட்டன் தாமே முயன்று கிட்டத்தட்ட 300,000 மைல்களுக்குச் சென்று மக்களிடம் இதன் சிறப்பைப்பற்றி எடுத்துரைத்தார். 1993 ல் மீண்டும் "·ப்ர்ஸ்ட் பர்சன்"என்ற பெயர் மாற்றத்தோடு மக்களிடம் நல்ல வரவேற்பைப் பெற்றது.

1994ல் நெட்ஸ்கேப் -ன் அறிமுகத்திற்குப்பிறகு "ப்ர்ஸ்ட் பர்சன்" முடிவுக்கு வந்தது. ஏனெனில் அந்த சமயத்தில் தான் இணையதளம் மக்களிடையே நன்கு புழங்கலாயிற்று. எனவே கிளையன்ட்-சர்வர் ஆர்க்கிடெக்சருக்கேற்ற சிறந்த பிரவுசரையும் அதற்குரிய துணைக்கருவிகளையும் சார்ந்த ஒரு மென்பொருள் தேவை என்பதை பேட் ரிக் நாக்ட்டன் -ம், ஜானாதன் பேனே -ம் உணர்ந்தார்கள். அதன்படி 1995 ல் 'ஹாட் ஜாவா' பிரவுசரையும் அறிமுகப்படுத்தினார்கள். இது ஜாவா மொழியிலே எழுதப்பட்டது என்பது குறிப்பிடத்தக்கது.

ஜாவாவின் சக்தி இணையத்தைத்துவக்கி, இணையத்தில் ஊடுறுவி, இணையத்தை நிர்வகித்து, இணையத்தைக் கட்டுப்படுத்துவது என்று எல்லாவிதத்திலும் இன்று வரை ஒரு ஆளுமையான மொழியாகவே திகழ்கிறது.


இப்படிப்பட்ட மொழியின் தொழிட்நுட்ப சிறப்புக்கள் என்னென்ன என்பதை தெரிந்துக்கொள்ள ஆர்வமாக இருக்கிறதா? அவை அடுத்த பகுதியில் ...

(ஆர்வலர்கள் ஜாவா டெவலப்பர் கிட் டை www.java.sun.com ல் இலவசமாக பதிவிறக்கிக்கொள்ளலாம்)

எளிய முறையில் ஜாவா - பகுதி 2
ஜாவாவின் சிறப்புகள்:-


1. ஆப்ஜக்ட் ஓரியண்டட் புரோகிராம் (பொருள் சார்ந்த வரைமுறை)
2. இன்ஹெரிட்டன்ஸ் (பரம்பரை குணாதிசயம்)
3. பாலிமார்ப்பிசம் (பன்முக அமைவு)
4. டைனமிக் பைண்டிங் (நேரடி இணைவு)
5. மெசேஜ் கம்யூனிக்கேசன் (செய்தித்தொடர்பு)


1. பொருள் சார்ந்த வரைமுறை:-

ஜாவாவில் ஒவ்வொரு பகுதி/வகுப்பு(க்ளாஸ்) ல் உள்ள ஒவ்வொன்றும் ஒரு பொருளாகக்(ஆப்ஜெக்ட்) கையாளப்படுகிறது. அதாவது நாம் தினசரி வாழ்க்கையில் கையாளும் பொருள்களைப்போல..

எ.டு
உலகம் என்பது வகுப்பானால் அதில் உள்ள அனைத்தும் ஒவ்வொரு பொருளாகும். அவற்றில் நடக்கும் நிகழ்ச்சிகள் அனைத்தும் செய்கைகள் ஆகும்.

எனவே கையாளப்படும் ஒவ்வொன்றும் ஒரு பொருளாகவும்(ஆப்ஜெக்ட்), செய்யப்படும் செயல் செய்கை(மெத்தட்)யாகவும் கையாளப்படுகிறது. எனவே பொருளினையும், செயலினையும் தனித்தனியாக வரையறுக்கவும் வேண்டிய போது வேண்டிய பொருளினை வேண்டிய செயல்களுக்காக பயன்படுத்தவும் முடிகிறது. சரி... இதனால் என்ன லாபம்? இருக்கிறது. ஜாவா ஒரு கட்டுப்பாடுள்ள கம்யூனிசவாதி என்று சொல்லலாம். அதாவது நாம் நமக்குத்தேவையான ஒரு வகுப்பை நிர்ணயிக்கும்போது அதற்கு என்ன பொருள்கள் வேண்டும், அதில் என்னென்ன செயல்கள் செய்யப்படவேண்டும் என்பதை நாமே நிர்ணயிக்கலாம். அதே போல் அதே வகுப்பையும், பொருள்களையும், செயல்களையும் தேவைப்படின் வேறு ஒருவரும் கையாள முடியும். இதனால் ஏற்கனவே தயாரிக்கப்பட்ட ஒரு அமைப்பு மீண்டும் மீண்டும் பயன்படுத்த ஏதுவாகிறது. இதைத்தான் 'ரீ யூசபிலிட்டி' என்கிறார்கள்.

2. பரம்பரை குணாதிசயம்

அது என்ன பரம்பரை குணாதிசயம்?
என்ன தான் ஜாவா புதுமைவாதியாக இருந்தாலும் பண்பில் பழமைவாதி தாங்க..
எப்படினு கேட்கிறீங்களா? ஜாவா - கிட்ட உனக்கு காதல் திருமணம் பிடிக்குமா? பெற்றோர் பார்க்கும் திருமணம் பிடிக்குமா? என்றால் முன்னுரிமை அளிப்பது 2வது வாய்ப்பிற்குத்தாங்க..

இதில் என்ன லாபம்? இருக்கிறதே! நம்மில் பலர் ரிஸ்க் எடுக்கவிரும்பாதவர்கள்; நாமே பெண் பார்த்து, நாமே அவளைப்புரிந்துகொண்டு, அவளை நம்வழிக்குக்கொண்டுவருவது....ச்ச! அட இதெல்லாம் எதுக்குங்க..
அவங்களே பார்த்துவைப்பாங்க...அவ நம்வழியிலே இருந்தால் நம்ம பாரம்பரியம், பழக்கவழக்கமெல்லாம் அவளே அறிந்துவைத்திருப்பாள்; அதனால் நம்மை அவள் எளிமையாகப்புரிந்துக்கொண்டு இணக்கமாக இருப்பாள்; நம் பெற்றோர்களே பார்ப்பதால் அவர்களுக்கிடையேயான கருத்து வேறுபாடுகளும் வருவது குறைவு என்பது நமது புத்திசாலி வாழைப்பழ சோம்பேறிகளின் எண்ணம். நம் ஜாவாவும் அந்த ரகம் தாங்க. ஏற்கனவே தயாரிக்கப்பட்ட இருவேறு பொருள்களை ஒரு அமைப்பில் இணைத்து வைத்து அதன் குணங்களை எளிமையாக எடுத்துக்கொள்வதும், தேவைப்படின் அதில் புதுமையைச்சேர்ப்பதும் ஜாவாவில் செய்யக்கூடிய பரம்பரை குணாதிசயம் ஆகும்.

சிங்கிள் இன்ஹெரிட்டன்ஸ்:-
அப்பா/அம்மாவின் முகச்சாயல் பிள்ளைக்கு வருவது
மல்டி லெவல் இன்ஹெரிட்டன்ஸ்:-
அதாவது தாத்தாவின் மூக்கும், பாட்டியின் நிறமும், அப்பாவின் சாயலும் பேரனுக்கு இருப்பதோடு அவனது சொந்த குணங்களும் வெளிப்படுவது.

3. பன்முக அமைவு:-

இது இன்னும் சுவாரசியமானது.
அதாவது நம்ம 'ஜீன்ஸ்' பிரசாந்த்-ஐஸ்வர்யாராய், 'வரலாறு' அஜீத், 'பார்த்திபன் கனவு' சினேகா மாதிரிங்க.. ஒரே ஆள் பல கெட்டப் ல வர்றதுக்கு பேரு பன்முக அமைவு.. இதனால் என்ன லாபம்?
ரொம்ப ஈஸி, கெட்டப் மட்டும் மாத்தினால் போதும். கால்ஷீட்/சம்பளம் ஒன்று தான்.(பயன்பாட்டில் ஒருமுறை வரையறுத்தால் போதும்). இங்கே செய்கைகளும் (மெத்தட்) அப்படித்தான், கெட்டப் மாதிரி தகவல்கள்கள்(இன்·பர்மேஷன்) மட்டும்
மாறும். இதனால் பன்முகபயனும், மீள்பயனும் (ரீயூசபிலிட்டி) கிடைக்கிறது.
மீள்பயன் நேரத்தையும், கணினி நினைவகத்தையும் சேமிக்கிறது.

4. நேரடி இணைவு (டைனமிக் பைண்டிங்):-

பொதுவாக ஸ்டேட்டிக் பைண்டிங் தான் நடைமுறையில் உள்ளது.
பைண்டிங் என்பது நாம் எழுதும் வரைமுறையையும், கணினியில் உள்ள கோப்புக்களையும் இணைப்பதாகும். இதற்காக லிங்க்கர்(linker) என்ற புரோகிராமை எழுதிவைத்திருக்கிறார்கள். இந்த லிங்க்கர் தான் நமது எழுத்தாணையையும் கணினியின் செயல்பாட்டையும் இணைக்கிறது. வெவ்வேறு வகுப்பிலுள்ள வெவ்வேறு செய்கையை இயக்க 'நிலையானப்பிணைவு'(ஸ்டேட்டிக் பைண்டிங்) ஏற்றது. ஏனெனில் ஒருமுறை நினைவகத்தில் ஏற்றப்பட்டவுடன் அது அந்த பயன்பாடு முடியும்வரை நிலையாக இருக்கும். ஆனால் 'வெவ்வேறு வகுப்பிலுள்ள ஒரே செய்கையை' இதனால் ஒரே சமயத்தில் ஏற்றுக்கொள்ள முடியாது. ஏனெனில் முதலில் ஏற்றுக்கொள்ளும் செய்கையை மட்டுமே நினைவில் வைத்திருக்கும்.

எ.டு.
நீங்கள் ரயில்நிலையத்தில் முன்பதிவு செய்யப்போகிறீர்கள் என்று வைத்துக்கொள்வோம். 30ம் தேதிக்கு மதுரை பாண்டியன் எக்ஸ்பிரசுக்கும், 7ம் தேதி கல்கத்தா ஹவுரா எக்ஸ்பிரசுக்கும் பதிவு செய்யவேண்டும் என்றால்,
உங்களது செய்கை(மெத்தட்) பதிவு செய்வது(ஒரே செய்கை); ஆனால் வகுப்புகள்(க்ளாஸ்) வெவ்வேறு (மதுரை, கல்கத்தா). ஸ்டேட்டிக் பைண்டிங் -ல் ஒரே சமயத்தில் இருவேறு வகுப்புகளுக்கு ஒரே செய்கையைக்கையாள முடியாது.

ஆனால் டைனமிக் பைண்டிங் -ல் இது சாத்தியம். ஏனெனில் 'நேரடி இணைவு' நேரடியாக நினைவகத்தைச் சுட்டுவதோடு(பாயிண்டிங்), பயன்பாட்டின் இயக்க
நேரத்தில்(ரன் டைம்) மட்டுமே செயல்படுகிறது. இதனால் செயல் முடிந்தவுடன் அதன் இயக்கம் துண்டிக்கப்பட்டு அதே பெயரிலுள்ள அடுத்த செய்கைக்கு வழிவிடுகிறது.

5. செய்தித்தொடர்பு:-

இதுவரை வகுப்பு(க்ளாஸ்), பொருள்(ஆப்ஜெக்ட்), செய்கை(மெத்தட்) உங்களுக்குப்புரிந்திருக்கும். வகுப்பின் அங்கம்தான் பொருளும், செய்கையும். அவற்றுள் அடங்குவது செய்தியும், தகவலும். செய்தியையும்(மெசேஜ்), தகவலையும்(டேட்டா) இணைப்பது செய்தித்தொடர்பு(கம்யூனிக்கேஷன்) ஆகும்.

'சிறார்கள் கொல்லப்பட்டார்கள்' என்பது செய்தி.
'நொய்டா', '70' என்பது தகவல்.

"நொய்டாவில் 70 சிறார்கள் கொல்லப்பட்டார்கள்" என்று இரண்டையும் இணைப்பது செய்தித்தொடர்பு.

வெறும் செய்தியோ, வெறும் தகவலோ முழுமையான பொருளைத்தராது. செய்தித்தொடர்பு அதை நிறைவுச்செய்கிறது.