Tuesday, January 14, 2020

கணினி நிரலாக்கமும் நிரலாக்க மொழிகளும்.



நிரல் என்பது அறிவுறுத்தல்களின் தொகுப்பாகும். ஒரு நிரலுக்கென்று அல்கரிதம் எழுதியிருப்போம்.ஃப்ளோ சார்ட் வரைந்திருப்போம். அதற்கடுத்த படி நிரலாகமாகும். ஒரு குறிப்பிட்ட மொழியில் நிரல் எழுத வேண்டும்.அதாவது நாம் உருவாக்கிய அல்கரிதத்தை எடுத்துக் கொண்டு நிரலாக மாற்ற வேண்டும்.அப்பொழுது தான் கணினியானது அதை இயக்க முடியும்.
நிரலாக்க மொழி என்பது ஒரு நிரலின் இயக்க அறிவுரைகள்,ஒரு முறைமையின் நடத்தையை கட்டுப்படுத்துதல்,அல்கரிதத்தை விவரித்தல்போன்றவற்றை செய்கின்றன.
ஒவ்வொரு நிரலாக்க மொழிக்கும் ஒரு சிண்டாக்ஸ் இருக்கும்.பொதுவாக நிரலாக்க மொழிகள் என்பது ஹை லெவெல் மொழிகளை குறிக்கும்.உதாரணத்திற்கு c,c++, java, c#, vb.net போன்றவை.
பொதுவாக ஹை லெவெல் மொழிகள் மனிதர்களுக்கு புரியும்படி இருந்தாலும் கணினியானது மெசின் லெவெல் மொழியை மட்டுமே புரிந்து கொள்ளும். மெசின் லெவெல் மொழி என்பது எண்களை மட்டுமே கொண்டிருக்கும். ஒவ்வொரு cpu –ற்க்கும் ஒரு மெசின் லெவல் மொழியைக் கொண்டிருக்கும்.
மெசின் லெவெல் மொழிக்கும் ஹை லெவெல் மொழிக்கும் இடையே இன்னொரு மொழி உண்டு அது அசெம்பிளி மொழியாகும்.இது பொதுவாக மெசின் லெவெல் மொழியை ஒத்திருந்தாலும் இது சற்று மனிதர்களால் புரிந்து கொள்ளகூடியது. இவை எண்களுக்கு பதிலாக பெயர்களைக் கொண்டிருக்கும்.
ஹைலெவெல் மொழியாக இருந்தாலும் அசெம்பிளி மொழியாக இருந்தாலும் இவை மெசின் லெவெல் மொழியாக மாற்ற வேண்டும். அப்பொழுது தான் அவை கணினியால் புரிந்து கொள்ள முடியும் . அதற்கு கம்பைல் அல்லது இன்டெர்பிரட் செய்ய வேண்டும்.
ஒரு பிராஜெக்ட் செய்வதற்கு முன் எந்த மொழி என்பதை தேர்ந்தெடுக்க வேண்டும்.ஒவ்வொரு மொழிக்கும் ஒரு அட்வாண்டேஜ் மற்றும் டிஸ்அட்வாண்டேஜ் இருக்கும்.
சில மொழிகள் கம்பைல் செய்யப் படுகின்றன. சில மொழிகள் இண்டர்பிரட் செய்யப்படுகின்றன. சான்றிற்க்கு basic மொழியானது இண்டர்பிரட் செய்யப்படுகின்றது c  மொழியானது கம்பைல் செய்யப்படுகின்றது.
ஒரு மொழியை தேர்ந்தேடுக்க பின் வரும் காரணிகள் உதவுகின்றன.
1.      கணினியின் ஹார்டு வேர் மற்றும் சாஃப்ட்வேர்.
2.      நிரலின் வகை
3.      அனுபமுள்ள நிரலாளர்கள்>
4.      பயன்பாட்டின் அம்சங்கள்.
5.      டெவலப் செய்வதற்க்கும் நிர்வாகிப்பதற்கும் ஆகும் செலவு.
6.      ஒன்றிற்கு மேற்பட்ட பயனர்கள் ஒரே நேரத்தில் அணுக கூடிய நிலை
7.      போர்டபிளிட்டி

உதாரணத்திற்கு fortan மொழியானது  numerical டேட்டாவை எளிதாக கையாளும் ஆனால் பெரிய நிரல்கள் கையாளுவது கடினம்.pascal மொழியானது structure oriented நிரல்களை கையாளுகின்றது எனினும் c மொழி அளவிற்க்கு வளைந்து கொடுக்கக் கூடியது அல்ல.

நிரலாக்க மொழிகளின் ஜெனெரேசன்கள்.

 

நிரலாக  மொழி என்பது சாஃப்ட்வேர் உருவாக்கத்திற்க்கு பயன்படும் முதன்மை கருவியாகும்.இப்பொழுது நூற்றுக் கணக்கான  நிரலாக்க மொழிகள் சந்தையில் இருந்தாலும் 1940-ல் ஒரே ஒரு மொழி தான் இருந்தது அது மெசின் லெவெல் மொழியாகும்.
நிரலாக்க மொழிகளின் லெவெல்கள்  அதன் நண்மைகளுடன் தொடர்பு உடையது. ஐந்து ஜெனெரேசன் என்பது மெசின் லெவெல் மொழி, அசெம்பிளி  மொழி, ஹை லெவெல் மொழி, மிகவும் ஹை லெவெல் மொழி, செயற்க்கை நுண்ணறிவு சார்ந்த மொழிகள் ஆகும்.

மெசின் லெவெல் மொழி

இது தான் முதம் முதலாய் பயன்படுத்தப்பட்ட மொழி மற்றும் இது தாம் கணினியால் நேரடியாக புரிந்து கொள்ளக் கூடியது.எல்லா கட்டளைகள் மற்றும் டேட்டாக்கள் 0 மற்றும் 1 என்பதாக இருக்கும் அதாவது  எலக்ட்ரானிக்  off மற்றும் on ஸ்டேட்.
1950-ல் ஒவ்வொரு cpu –விற்க்கும் ஒரு மெசின் லெவெல் மொழி இருந்தது.இவை மனிதர்கள் புரிந்து கொள்வது மிகவும் கடினம்.
இது மிகவும் வேகமானது மற்றும் திறன் வாய்ந்தது ஆகும்.
எனினும் இவை எழுதுவது கடினம். நிர்வாகிப்பது கடினம்.போர்ட்டபிளிட்ட்டி கிடையாது.

அசெம்பிளி மொழி.

இது இரண்டாவது தலைலமுறை மொழியாகும்.இவை கட்டளைகளை  எண்களாக குறிப்பிடாமல் Add , sub போன்று கீயை பயன்படுத்தியது.இவை மெசின் லெவெல் மொழிகளுடன் நேரடி தொடர்வுடையது.இதுவும் லோ லெவெல் மொழி தான்.
இவை 1950-ல் உருவாக்க பட்டன எண்களுக்கு பதில் mnemonic code-களை கொண்டிருந்தன .சான்றிற்க்கு ADD என்பது கூட்டுவதற்க்கும் CMP என்பது ஒப்பிடுவதற்கும்  MUL என்பது பெருக்குவதற்க்கும் பயன்பட்டன.
இவை புரிந்துகொள்ள எளிது.மெசின் லெவெலைக் காட்டிலும் எழுவதற்கு எளிது. பிழை அறிதல் எளிது.மாற்றுதல் எளிது.
எனினும் இவை மெசின் சார்ந்தது. போர்ட்டபிளிட்டி கிடையாது. நிரலாளர்களுக்கு cpu பற்றிய அறிவு தேவை. நேரடியாக இயக்கக்கூடியது கிடையாது.

ஹைலெவெல் மொழி.

இவை மனிதர்களால் புரிந்து கொள்ளக் கூடிய எளிய மொழியில் எழுதப்பட்டன. இவை மூன்றாவது தலை முறை ஆகும். இவை புரோக்கிராமர் ஃப்ரெண்ட்லி மொழிகளாகும். இவை மெசின் கட்டமைப்புடன் நேரடி தொடர்பு கிடையாது .
இதன் ஒரு ஸ்டேட்மெண்ட் ஆனது ஒன்ற்றிக்கு மேற்பட்ட மெசின் லெவெல் அறிவுறைகளாக விரிவு பெறக் கூடியது. இவற்றிற்க்கு உதாராணமாக fortan மற்றும் cobol மொழிகளைன் கூறலாம்.1960களில் உருவாக்கப்பட்டது English like மொழிகளால் எழுதப்பட்டது.
இவற்றை லோ லெவெல் மொழியாக மாற்றித் தான் பயன்படுத்த முடியும்.அதற்கு கம்பைல் அல்லது இன்டெர்பிரட் செய்தல் வேண்டும்.ஒவ்வொரு வகையான கணினிக்கு ஒவ்வொரு வகையான கம்பைலர்கள் தேவைப்பட்டன.
இவை எழுதுவதற்கு எளிது. பிழை அறிதல் எளிது.நிர்வாகிப்பது எளிது. Cpu, memory , register போன்றவற்றை அணுக நிரல் எழுதுவது கடினம்.

மிகவும் ஹைலெவெல் மொழி- நான்காவது தலைமுறை.

இவை English லைக் மொழியில் எழுதப்பட்டன. இவை மூன்றாவது தலை முறை மொழியிலிருந்து எவ்வாறு மாறுபட்டது என்றால் இவைகள் non-procedural ஆகும். புரசிசர்கள் மொழிகளில் எல்லாமே நிரலாளர்களால் எவ்வாறு செயன்பட வேண்டும் . இந்த நிலையில் இதைச் செய் இல்லையென்றால் இதே செய் என்று இன்புட்டாக கொடுக்கப்பட்டன. ஆனால் நான் புரசிசர் மொழிகளில் எல்லாத் தகவல்களும் வழங்க வேண்டிய அவசியம் கிடையாது.இவை நிர்வாகிப்பது எளிதாக இருந்தன.
இவற்றிற்கு உதாரணமாக டேட்டா பேஸ் கொரிகளக் கூறலாம். கொரியானது டேட்டா  பேஸிலிருந்து நாம் விரும்பும் தகவல்களை கேட்டுப்பெற  பயன்படுகின்றது.இவை structured query language(sql) எனப்படுகின்றன..
சான்றாக
Select * from employee
இந்த தலை முறையின் மொழிகளின் ஒரே ஒரு குறை இவை மெசின் ரிசோர்ஸ்களை திறம்வாய்ந்த நிலையில் பயன்படுத்துவது இல்லை.

செயற்கை நுண்ணறிவு மொழி-ஐந்தாவது தலைமுறை.

இந்த தலை முறை மொழிகள் பிரச்சனையை கன்ஸ்ட்ரைண்ட்களை பயன்படுத்தி  அதற்கு தீர்வு கண்டன. இதற்கு முன் அல்கரிதல் பயன்படுத்தி பிரச்சனைக்கு தீர்வு காணப்பட்டது.
நிரலாளர்கள் எந்தெந்த பிரச்சனைகளுக்கு தீர்வு காணுதல் வேண்டும், எந்த நிர்பந்தங்களை சந்திக்க வேண்டும் என்பதற்கு நிரல் எழுதப்படுகின்றன.
ஆய்வு செய்வர்கள் கொடுக்கபட்ட கன்ஸ்ட்ரைன்ட்களில்  பிரச்சனைக்கு எவ்வாறு தீர்வு காண்பது என்பதில் செயல் பட்டார்கள். சாஃப்ட்வேர் வெண்டார்கள் ஐந்தாவது தலை முறைக்கு மாற ஆரம்பித்து விட்டார்கள்.
-நன்றி.
முத்து கார்த்திகேயன்,மதுரை.





ads Udanz

No comments:

Post a Comment