lavanya
07-03-2004, 09:03 PM
நிரல்வரைவு தொழில்நுட்பம் (Programming Technology) - 4
சென்ற பதிவில் டாஸ் கட்டளைகளை உபயோகித்து சின்னதாய் ஒரு புரோக்ராம் வடிவ
மாதிரியை பார்த்தோம்...அது டாஸினால் ஆக கூடிய சில உப வேலைகளை செய்ய மட்டும்
இயலும்...எவ்வளவுதான் தனுஷ்,சிம்பு அலை வீசினாலும் இன்னும் விஜய் அஜித்திற்கு
மார்க்கெட் இருந்து கொண்டே இருப்பது போல எத்தனையோ இயக்க முறைமைகள்
வந்தாலும் இன்னும் டாஸிற்கு கொஞ்சம் ரசிகர்கள் இருக்கவே செய்கிறார்கள்.எனவே தான்
விண்டோஸ் எக்ஸ்பியில் கூட டாஸ் இடம்பெறுவதை மைக்ரோசாப்டால் தவிர்க்க
முடியவில்லை.இப்போது நாம் அதிலிருந்து சற்று விலகி மீண்டும் உயர்நிலை மொழி எழுதும்
கற்றுகொள்ளும் முயற்சிக்கு வருவோம்...
நான் இரண்டாம் பதிவில் கொடுத்திருந்த வரிமாற்றியாளர்,முழுமொழி மாற்றியாளர் என்ற கருத்தமைவை மீண்டும் கொஞ்சம் ஞாபகத்திற்கு கொண்டு வாருங்கள்...ஏனெனில் உயர்
நிலை மொழிகள் எழுதத் தொடங்கும்போது இவை இரண்டையும் நன்றாக நினைவில் இருத்தி கொள்ளுதல் அவசியம்...ஏனெனில் உயர்நிலை மொழிகளில் வரையப்படும்
புரோக்ராம்கள் இரண்டுவித நிலைப்பாடை கொண்டவை...ஒன்று ஒரு மொழியில் உருவாக்கப்
பட்ட ஒரு தொகுப்பிலிருந்து சின்ன வசதிக்காக புரோக்ராம்கள் எழுத படைக்கப்பட்டவை
மற்றொன்று ஒரு மொழியை கொண்டே அந்த மொழியை இன்னும் விரிவு படுத்துவது...
இரண்டாவது வகையில் சிறப்பான நிலையை அடைபவர்களை கம்ப்யூட்டர் விற்பன்னர்கள்
அல்லது வல்லுனர்கள் என்பார்கள்.
இன்னும் கொஞ்சம் எளிமையாக விளக்க முயல்கிறேன். கம்ப்யூட்டர்களை நாம் அதன்
முக்கிய கேந்திரமான மின்னனு பொருட்களை வைத்து தலைமுறைகள் பிரிக்கிறோம்...
வாக்குவம் டியூப் எனப்படும் வெற்றிட குழாய்கள் பயன்படுத்தப்பட்ட கணிப்பொறிகள் முதலாம்
தலைமுறை. ட்ரான்ஸிஸ்டர்கள் எனப்படும் பொருட்களை கொண்டு பயன்படுத்த
தொடங்கியவை இரண்டாம் தலைமுறை. இண்டகரேட்டடு சர்க்யூட் எனப்படும் நுண்ணிய
மின் சுற்று பயன்படுத்தப்பட்டவை மூன்றாம் தலைமுறை. நுண்செயலி என அழைக்கப்பட்ட
மைக்ரோபுராசஸர் பயன்படுத்தப்பட்ட கணிப்பொறிகள் நான்காம் தலைமுறை இப்போது
அந்த நுண்செயலிலேயே மேம்படுத்தப்பட்ட வடிவங்கள்,தரப்பாடுகள்,விரைவுப்பாடுகள்
கொண்டவை ஐந்தாம் தலைமுறையாக சொல்லிக் கொண்டிருக்கிறார்கள்..இதுபோலவே
கணிப்பொறியில் பயன்படுத்தப்பட்ட மொழிகளையும் தலைமுறையாக பிரிக்கிறார்கள்,
எந்திர மொழியும் பின் எந்திரமொழி சார்ந்த தொகுப்பு மொழியும் கொண்டவை முதலாம்
கணிப்பொறி மொழிகள் என்கிறார்கள். பின்பு ஆங்கிலம் கலந்த கட்டளைப்பாடுகளை
கொண்ட வணிக மற்றும் கல்வி நோக்க பயன்பாடுகளுக்கான மொழிகள் கண்டுபிடிக்கப்பட்டு
அத இரண்டாம் தலைமுறை மொழிகள் ஆயின..பின்பு எல்லாவித பயன்பாடுகளுக்கும் பயன்
படுத்தும் வசதியுடைய மொழிகள் கண்டுபிடிக்கப்பட்டு அது மூன்றாம் தலைமுறை மொழி என்ற அந்தஸ்தை தட்டிக்கொண்டு போக அதிலிருந்து குறிப்பிட்ட பயன்பாடுகளுக்கு மட்டும்
உருவாக்கப்பட்ட சாப்ட்வேர் குழந்தைகள் பிறக்க அவை நான்காம் தலைமுறை மொழிகள்
(4GLS - Forth Generation Language Software ) என்று பெருமையாக அழைக்கப்பட்டன...
இப்போது எந்திரங்களை ஆளுமை செய்யும் மொழிகளான லிஸ்ப் (List Processing) போன்ற
மொழிகளை எல்லாம் ஐந்தாம் தலைமுறை மொழிகள் என்கிறார்கள். கீழேயுள்ள வரைபாடுகள்
எல்லாம் மொழிகளின் தலைமுறைகளை குறிக்கின்றன.
1. முதலாம் தலைமுறை - எந்திர மொழி , தொகுப்பு மொழி ( Machine and Assembly
Language)
2. இரண்டாம் தலைமுறை - Pascal,Fortran,Cobol
3. மூன்றாம் தலைமுறை - C, C++
4. நான்காம் தலைமுறை - Dbase,foxbase,foxpro,lotus.
5. ஐந்தாம் தலைமுறை - Lisp,Modula...
மேலே உள்ள வரிசைப்பாட்டில் ஒரு முக்கியமான முரண்பாடு இருக்கிறது....அதாவது
நான்காம் தலைமுறை பட்டியலில் இருக்கும் எதுவுமே உயர்நிலை மொழிகள் அல்ல.
எல்லாமே பயன்பாட்டு மென்பொருள்கள்..ஆனால் இதிலிருந்து நாம் சின்ன சின்னதாய்
புரோக்ராம் எழுதி சின்ன சின்ன மென்பொருளை உருவாக்கி கொள்ளலாம்...தவிர இது
எல்லாமே மூன்றாம் தலைமுறையிலிருந்து உருவாக்கப்பட்ட குழந்தைகள்..இப்போது
உங்களுக்கு தெளிவாக புரிந்திருக்கும் என்று நினைக்கிறேன். அதாவது நான்காம் தலை
முறை மொழிகள் போல் தற்போது உள்ள வடிவம் கொண்டவை எல்லாம் நாம் நிறைய
மென்பொருளை உருவாக்கி கொண்டாலும் ஒரு எல்லை என்பதை தீர்மானமாக கொண்டவை
ஆனால் இந்த மூன்றாம் தலைமுறையை கவனியுங்கள்...இந்த மொழிகள் எல்லாம் இன்னும்
விரிவுபடுத்திக்கொண்டுதான் வந்து கொண்டிருக்கின்றன, சி மற்றும் சி++ கற்றுக்
கொண்டவர்கள் இன்னும் முடிவுக்கே வந்திருக்க மாட்டார்கள், ஏனெனில் இவற்றிற்கு
வானமே எல்லை.
பாக்ஸ்புரோவும் சி'யும் ஒண்ணாக முடியாது..ஆனா ரெண்டிலேயும் புரோக்ராம் எழுதலாம்.
ரெண்டுமே உயர்நிலை மொழிகள். வித்தியாசம் என்ன ? பயன்பாட்டு வரையறையும் செயல்படும் விதமும்தான்..அதுனாலதான் உங்களுக்கு இவ்வளவு நிறைய விஷயங்களை
சொல்ல வேண்டியதாக போயிற்று.
ஒரு சின்ன புரோக்ராமை சி மொழியிலும் பாக்ஸ்புரோவிலேயும் தனித்தனியே எழுதி இயக்குறோம்னு வச்சிக்கங்க.. என்னன்ன நடக்கும்...? அது தெரிஞ்சாலே உங்களுக்கு
எந்தவித சந்தேகமும் வராது..நம்ம ரெண்டாவது பதிவில் என்ன படிச்சோம்..? உயர்நிலை
மொழியில் எழுதப்பட்ட புரோக்ராம்களை கம்ப்யூட்டருக்கு தெரிவிக்க அந்த பணி நடக்க
ரெண்டு பேர் ரொம்ப ஹெல்ப் பண்ணுவாங்கன்னு படிச்சோம் இல்லையா...ஒருத்தர் பேர்
வரிமாற்றியாளர்...(Interpretor) மற்றொருவர் பேர் முழுமொழி மாற்றியாளர் (Compilor)
இவங்க ரெண்டு பேரும் என்ன செய்வாங்க.... எழுதப்படற புரோக்ராம் எந்தவகை தன்மை
அப்படிங்கறதை அனுமானிச்சி அதுக்கேத்த மாதிரி வந்து ஹெல்ப் பண்ணுவாங்க..அதாவது
பாக்ஸ்புரோல ஒரு புரோக்ராம் எழுதுறோம்னு வச்சுக்கங்க..இதை கம்ப்யூட்டருக்கு புராசஸ்
பண்ணி அனுப்ப வரிமாற்றியாளர் உதவுவார்... இவர் என்ன பண்ணுவார்..புரோக்ராம்ல உள்ள
ஒவ்வொரு வரியா கம்ப்யூட்டருக்கு மாத்துவார்...அதுல நாலாவது வரியிலே ஒரு தப்பு இருந்துச்சின்னு வச்சிக்கங்க...சட்டுன்னு எல்லாத்தயும் நிப்பாட்டிட்டு 'நாலாவது வரியிலே
ஒரு தப்பு இருக்குப்பா' ன்னு சொல்லிட்டு நின்னுடுவார்...நாம அதை கரெக்ட் பண்றோம்னு
வச்சிக்கிங்க அப்புறம் மறுபடியும் பர்ஸ்ட்லேர்ந்து ஆரம்பிப்பாரு அடுத்து பதிமூணாவது
வரியிலே ஒரு தப்பு இருக்குன்னு வச்சிக்கிங்க..அதை சுட்டி காமிச்சுட்டு அப்படியே
நின்னுடுவாரு..இப்படியே கதை போனா வெறுத்துரும் இல்லையா...?
இதே சி மாதிரி உள்ள புரோக்ராம்ல கம்பைலர் வருவார்...இவர் என்ன பண்ணுவார்..?
ஒரே தபால (தடவைல) எல்லாத்தையும் படிச்சி முடிச்சிட்டு 'இந்த பாருப்பா இன்னா
புரோக்ராம் எழுதி இருக்கே..? 4 வது வரிலே ஒரு தப்பு பதிமூணுல ஒரு தப்பு பதினேழு
வரில ஒரு தப்பு..இருபதாம் வரில ஒரு தப்பு இருக்கு அப்படின்னு தப்பான வரிகளை
எல்லாம் லிஸ்ட் போட்டு காமிச்சிக்கினு போய்டுவாரு...நம்ம என்ன பண்ணலாம்..திறமையான
புரோக்ராமர்னா அப்பவே எல்லாத்தையும் கரெக்ட் பண்ணி அடுத்த தபால சக்ஸஸ்
பண்ணிடலாம்... இப்ப பாருங்க வரிமாற்றியாளருக்கும் முழுமொழி மாற்றியாளருக்கும் உள்ள
செயபடும் விதம் நல்லா தெரிஞ்சிச்சிங்களா...? ரெண்டுமே கம்ப்யூட்டரில் மொழிமாற்றியாளர் வேலைதான் செய்யுது.....இப்ப இந்த மாதிரி வேற என்ன வேறுபாடு எல்லாம் இவங்க ரெண்டு பேருக்கும் இருக்கும்னு பார்ப்போமா...?
1. வரி மாற்றியில் புரோராமின் வரிகள் ஒவ்வொரு கட்டளையாக மொழிபெயர்ப்பு செய்யப்படும்.
முழுமொழி மாற்றியில் புரோராம் முழுமையும் ஒரே நேரத்தில் மொழிபெயர்ப்பு செய்யப்படும்.
2. புரோக்ராமை வேறொரு கம்ப்யூட்டரில் இயக்க மூலவரைவு (Source Program), வரிமாற்றி
இரண்டும் தேவைப்படும்.
பொருள் வரைவு (Object Program) வசதி உள்ளதால் முழுமொழி மாற்றியில் இவை
இரண்டும் தேவையில்லை.
3. வரிமாற்றியில் புரோக்ராமை செயல்படுத்த ஆகும் நேரம் அதிகம்
முழுமொழிமாற்றியில் புரோக்ராமை செயல்படுத்த ஆகும் நேரம் குறைவு,
4. தவறுகளை கண்டுபிடித்தலும் திருத்தலும் வேகமாக செய்ய இயலும்
தவறுகளை கண்டுபிடித்தலும் திருத்தலும் மெதுவாக செய்ய இயலும்
5. குறைந்த அளவு நினைவகம் (Memory) தேவைப்படும்.
அதிக அளவு நினைவகம் (Memory) தேவைப்படும்.
6. ஒவ்வொரு முறையும் புரோக்ராம் செயல்படுத்தப்படும்பொழுது ஒவ்வொரு கட்டளையின்
வடிவமும் (syntax) சரியாக உள்ளதா என பார்த்த பின்பே எந்திரமொழிக்கு மாற்றும்
எந்திர மொழிக்கு மாற்றிய பின்னரே கட்டளை வரிகள் syntax error நீக்கப்பட்டு பின்
செயல்பட துவங்கும்.
உயர்நிலை மொழியின் இந்த மொழி மாற்றித் துருவங்கள் இரண்டுக்கும் இடையே உள்ள
வேறுபாடுகள் பார்த்தோம்..இதில் இன்னொரு மிகப்பெரிய சிறப்பம்சம் இருக்கிறது.அதாவது
பாக்ஸ்புரோ போன்ற மென்பொருள்களில் நீங்கள் சின்னதாக ஒரு புராஜெக்ட் செய்கிறீர்கள்
அதை உங்கள் நண்பரின் வீட்டுக்கு பிளாப்பியிலோ அல்லது சிடியிலோ காப்பி செய்து
கொண்டு போய் இயக்குகிறீர்கள்... இயங்குமா...? உங்கள் நண்பரின் கம்ப்யூட்டரிலும்
பாக்ஸ்புரோ இருந்தால் இயங்கும்..ஆனால் அவர் கம்ப்யூட்டரில் பாக்ஸ்புரோ இல்லை
எனில் உங்கள் புராஜக்ட் இயங்காது.. ஏன் என்று சொல்லுங்கள் பார்ப்போம்?
ஆனால் சி சி++ மொழிகளில் எழுதப்படும் புரோக்ராம்கள் புராஜக்ட்கள் உங்கள் நண்பர்
கம்ப்யூட்டரில் அவ்வித சாப்ட்வேர்கள் இல்லை எனினும் இயங்கும்...உங்கள் கம்ப்யூட்ட
ரில் இயங்கியது போலவே இயங்கும்...இதற்கும் மட்டும் அப்படி என்ன விஷேசம்..?
சொல்லுங்கள் பார்ப்போம்.
மேலே உள்ள இரண்டு கேள்விக்கும் உங்களுக்கு தெளிவிருக்கிறது என்றால் மேலே நான்
தந்திருக்கும் வேறுபாடுகளில் இரண்டாவது பாயிண்ட் உங்களுக்கு தெளிவாகி விட்டது என
அறிந்து கொள்ளலாம்
(தொடரும்)
சும்மா படித்து வையுங்கள்
புரோக்ராம் எழுதுபவர்கள் சில வேடிக்கையான நம்பிக்கைகள் வைத்திருக்கிறார்கள்.வருடக்கணக்கில் புரோக்ராம் எழுதி எழுதி மாய்ந்து போன பின்பு அவர்கள்
கண்டறிந்த சில உண்மைகள்.
1. மிக சிறிய புரோக்ராம்களை தவிர மற்ற எல்லாவற்றிலும் முதல் தடவை எழுதும் போது
நிச்சயம் ஒரு தப்பாவது இருக்கும்.
2. தப்பு இருந்தால் கணிப்பொறியால் அதை கண்டுபிக்க இயலும்.
3. ஏதாவது தப்பாக நிகழும் சாத்தியம் இருந்தால் அது நிகழ்ந்தே தீரும்...
மேற்கண்ட மூன்றாவது கருத்தமைவை மர்பிஸ்லா என்பார்கள்.
சென்ற பதிவில் டாஸ் கட்டளைகளை உபயோகித்து சின்னதாய் ஒரு புரோக்ராம் வடிவ
மாதிரியை பார்த்தோம்...அது டாஸினால் ஆக கூடிய சில உப வேலைகளை செய்ய மட்டும்
இயலும்...எவ்வளவுதான் தனுஷ்,சிம்பு அலை வீசினாலும் இன்னும் விஜய் அஜித்திற்கு
மார்க்கெட் இருந்து கொண்டே இருப்பது போல எத்தனையோ இயக்க முறைமைகள்
வந்தாலும் இன்னும் டாஸிற்கு கொஞ்சம் ரசிகர்கள் இருக்கவே செய்கிறார்கள்.எனவே தான்
விண்டோஸ் எக்ஸ்பியில் கூட டாஸ் இடம்பெறுவதை மைக்ரோசாப்டால் தவிர்க்க
முடியவில்லை.இப்போது நாம் அதிலிருந்து சற்று விலகி மீண்டும் உயர்நிலை மொழி எழுதும்
கற்றுகொள்ளும் முயற்சிக்கு வருவோம்...
நான் இரண்டாம் பதிவில் கொடுத்திருந்த வரிமாற்றியாளர்,முழுமொழி மாற்றியாளர் என்ற கருத்தமைவை மீண்டும் கொஞ்சம் ஞாபகத்திற்கு கொண்டு வாருங்கள்...ஏனெனில் உயர்
நிலை மொழிகள் எழுதத் தொடங்கும்போது இவை இரண்டையும் நன்றாக நினைவில் இருத்தி கொள்ளுதல் அவசியம்...ஏனெனில் உயர்நிலை மொழிகளில் வரையப்படும்
புரோக்ராம்கள் இரண்டுவித நிலைப்பாடை கொண்டவை...ஒன்று ஒரு மொழியில் உருவாக்கப்
பட்ட ஒரு தொகுப்பிலிருந்து சின்ன வசதிக்காக புரோக்ராம்கள் எழுத படைக்கப்பட்டவை
மற்றொன்று ஒரு மொழியை கொண்டே அந்த மொழியை இன்னும் விரிவு படுத்துவது...
இரண்டாவது வகையில் சிறப்பான நிலையை அடைபவர்களை கம்ப்யூட்டர் விற்பன்னர்கள்
அல்லது வல்லுனர்கள் என்பார்கள்.
இன்னும் கொஞ்சம் எளிமையாக விளக்க முயல்கிறேன். கம்ப்யூட்டர்களை நாம் அதன்
முக்கிய கேந்திரமான மின்னனு பொருட்களை வைத்து தலைமுறைகள் பிரிக்கிறோம்...
வாக்குவம் டியூப் எனப்படும் வெற்றிட குழாய்கள் பயன்படுத்தப்பட்ட கணிப்பொறிகள் முதலாம்
தலைமுறை. ட்ரான்ஸிஸ்டர்கள் எனப்படும் பொருட்களை கொண்டு பயன்படுத்த
தொடங்கியவை இரண்டாம் தலைமுறை. இண்டகரேட்டடு சர்க்யூட் எனப்படும் நுண்ணிய
மின் சுற்று பயன்படுத்தப்பட்டவை மூன்றாம் தலைமுறை. நுண்செயலி என அழைக்கப்பட்ட
மைக்ரோபுராசஸர் பயன்படுத்தப்பட்ட கணிப்பொறிகள் நான்காம் தலைமுறை இப்போது
அந்த நுண்செயலிலேயே மேம்படுத்தப்பட்ட வடிவங்கள்,தரப்பாடுகள்,விரைவுப்பாடுகள்
கொண்டவை ஐந்தாம் தலைமுறையாக சொல்லிக் கொண்டிருக்கிறார்கள்..இதுபோலவே
கணிப்பொறியில் பயன்படுத்தப்பட்ட மொழிகளையும் தலைமுறையாக பிரிக்கிறார்கள்,
எந்திர மொழியும் பின் எந்திரமொழி சார்ந்த தொகுப்பு மொழியும் கொண்டவை முதலாம்
கணிப்பொறி மொழிகள் என்கிறார்கள். பின்பு ஆங்கிலம் கலந்த கட்டளைப்பாடுகளை
கொண்ட வணிக மற்றும் கல்வி நோக்க பயன்பாடுகளுக்கான மொழிகள் கண்டுபிடிக்கப்பட்டு
அத இரண்டாம் தலைமுறை மொழிகள் ஆயின..பின்பு எல்லாவித பயன்பாடுகளுக்கும் பயன்
படுத்தும் வசதியுடைய மொழிகள் கண்டுபிடிக்கப்பட்டு அது மூன்றாம் தலைமுறை மொழி என்ற அந்தஸ்தை தட்டிக்கொண்டு போக அதிலிருந்து குறிப்பிட்ட பயன்பாடுகளுக்கு மட்டும்
உருவாக்கப்பட்ட சாப்ட்வேர் குழந்தைகள் பிறக்க அவை நான்காம் தலைமுறை மொழிகள்
(4GLS - Forth Generation Language Software ) என்று பெருமையாக அழைக்கப்பட்டன...
இப்போது எந்திரங்களை ஆளுமை செய்யும் மொழிகளான லிஸ்ப் (List Processing) போன்ற
மொழிகளை எல்லாம் ஐந்தாம் தலைமுறை மொழிகள் என்கிறார்கள். கீழேயுள்ள வரைபாடுகள்
எல்லாம் மொழிகளின் தலைமுறைகளை குறிக்கின்றன.
1. முதலாம் தலைமுறை - எந்திர மொழி , தொகுப்பு மொழி ( Machine and Assembly
Language)
2. இரண்டாம் தலைமுறை - Pascal,Fortran,Cobol
3. மூன்றாம் தலைமுறை - C, C++
4. நான்காம் தலைமுறை - Dbase,foxbase,foxpro,lotus.
5. ஐந்தாம் தலைமுறை - Lisp,Modula...
மேலே உள்ள வரிசைப்பாட்டில் ஒரு முக்கியமான முரண்பாடு இருக்கிறது....அதாவது
நான்காம் தலைமுறை பட்டியலில் இருக்கும் எதுவுமே உயர்நிலை மொழிகள் அல்ல.
எல்லாமே பயன்பாட்டு மென்பொருள்கள்..ஆனால் இதிலிருந்து நாம் சின்ன சின்னதாய்
புரோக்ராம் எழுதி சின்ன சின்ன மென்பொருளை உருவாக்கி கொள்ளலாம்...தவிர இது
எல்லாமே மூன்றாம் தலைமுறையிலிருந்து உருவாக்கப்பட்ட குழந்தைகள்..இப்போது
உங்களுக்கு தெளிவாக புரிந்திருக்கும் என்று நினைக்கிறேன். அதாவது நான்காம் தலை
முறை மொழிகள் போல் தற்போது உள்ள வடிவம் கொண்டவை எல்லாம் நாம் நிறைய
மென்பொருளை உருவாக்கி கொண்டாலும் ஒரு எல்லை என்பதை தீர்மானமாக கொண்டவை
ஆனால் இந்த மூன்றாம் தலைமுறையை கவனியுங்கள்...இந்த மொழிகள் எல்லாம் இன்னும்
விரிவுபடுத்திக்கொண்டுதான் வந்து கொண்டிருக்கின்றன, சி மற்றும் சி++ கற்றுக்
கொண்டவர்கள் இன்னும் முடிவுக்கே வந்திருக்க மாட்டார்கள், ஏனெனில் இவற்றிற்கு
வானமே எல்லை.
பாக்ஸ்புரோவும் சி'யும் ஒண்ணாக முடியாது..ஆனா ரெண்டிலேயும் புரோக்ராம் எழுதலாம்.
ரெண்டுமே உயர்நிலை மொழிகள். வித்தியாசம் என்ன ? பயன்பாட்டு வரையறையும் செயல்படும் விதமும்தான்..அதுனாலதான் உங்களுக்கு இவ்வளவு நிறைய விஷயங்களை
சொல்ல வேண்டியதாக போயிற்று.
ஒரு சின்ன புரோக்ராமை சி மொழியிலும் பாக்ஸ்புரோவிலேயும் தனித்தனியே எழுதி இயக்குறோம்னு வச்சிக்கங்க.. என்னன்ன நடக்கும்...? அது தெரிஞ்சாலே உங்களுக்கு
எந்தவித சந்தேகமும் வராது..நம்ம ரெண்டாவது பதிவில் என்ன படிச்சோம்..? உயர்நிலை
மொழியில் எழுதப்பட்ட புரோக்ராம்களை கம்ப்யூட்டருக்கு தெரிவிக்க அந்த பணி நடக்க
ரெண்டு பேர் ரொம்ப ஹெல்ப் பண்ணுவாங்கன்னு படிச்சோம் இல்லையா...ஒருத்தர் பேர்
வரிமாற்றியாளர்...(Interpretor) மற்றொருவர் பேர் முழுமொழி மாற்றியாளர் (Compilor)
இவங்க ரெண்டு பேரும் என்ன செய்வாங்க.... எழுதப்படற புரோக்ராம் எந்தவகை தன்மை
அப்படிங்கறதை அனுமானிச்சி அதுக்கேத்த மாதிரி வந்து ஹெல்ப் பண்ணுவாங்க..அதாவது
பாக்ஸ்புரோல ஒரு புரோக்ராம் எழுதுறோம்னு வச்சுக்கங்க..இதை கம்ப்யூட்டருக்கு புராசஸ்
பண்ணி அனுப்ப வரிமாற்றியாளர் உதவுவார்... இவர் என்ன பண்ணுவார்..புரோக்ராம்ல உள்ள
ஒவ்வொரு வரியா கம்ப்யூட்டருக்கு மாத்துவார்...அதுல நாலாவது வரியிலே ஒரு தப்பு இருந்துச்சின்னு வச்சிக்கங்க...சட்டுன்னு எல்லாத்தயும் நிப்பாட்டிட்டு 'நாலாவது வரியிலே
ஒரு தப்பு இருக்குப்பா' ன்னு சொல்லிட்டு நின்னுடுவார்...நாம அதை கரெக்ட் பண்றோம்னு
வச்சிக்கிங்க அப்புறம் மறுபடியும் பர்ஸ்ட்லேர்ந்து ஆரம்பிப்பாரு அடுத்து பதிமூணாவது
வரியிலே ஒரு தப்பு இருக்குன்னு வச்சிக்கிங்க..அதை சுட்டி காமிச்சுட்டு அப்படியே
நின்னுடுவாரு..இப்படியே கதை போனா வெறுத்துரும் இல்லையா...?
இதே சி மாதிரி உள்ள புரோக்ராம்ல கம்பைலர் வருவார்...இவர் என்ன பண்ணுவார்..?
ஒரே தபால (தடவைல) எல்லாத்தையும் படிச்சி முடிச்சிட்டு 'இந்த பாருப்பா இன்னா
புரோக்ராம் எழுதி இருக்கே..? 4 வது வரிலே ஒரு தப்பு பதிமூணுல ஒரு தப்பு பதினேழு
வரில ஒரு தப்பு..இருபதாம் வரில ஒரு தப்பு இருக்கு அப்படின்னு தப்பான வரிகளை
எல்லாம் லிஸ்ட் போட்டு காமிச்சிக்கினு போய்டுவாரு...நம்ம என்ன பண்ணலாம்..திறமையான
புரோக்ராமர்னா அப்பவே எல்லாத்தையும் கரெக்ட் பண்ணி அடுத்த தபால சக்ஸஸ்
பண்ணிடலாம்... இப்ப பாருங்க வரிமாற்றியாளருக்கும் முழுமொழி மாற்றியாளருக்கும் உள்ள
செயபடும் விதம் நல்லா தெரிஞ்சிச்சிங்களா...? ரெண்டுமே கம்ப்யூட்டரில் மொழிமாற்றியாளர் வேலைதான் செய்யுது.....இப்ப இந்த மாதிரி வேற என்ன வேறுபாடு எல்லாம் இவங்க ரெண்டு பேருக்கும் இருக்கும்னு பார்ப்போமா...?
1. வரி மாற்றியில் புரோராமின் வரிகள் ஒவ்வொரு கட்டளையாக மொழிபெயர்ப்பு செய்யப்படும்.
முழுமொழி மாற்றியில் புரோராம் முழுமையும் ஒரே நேரத்தில் மொழிபெயர்ப்பு செய்யப்படும்.
2. புரோக்ராமை வேறொரு கம்ப்யூட்டரில் இயக்க மூலவரைவு (Source Program), வரிமாற்றி
இரண்டும் தேவைப்படும்.
பொருள் வரைவு (Object Program) வசதி உள்ளதால் முழுமொழி மாற்றியில் இவை
இரண்டும் தேவையில்லை.
3. வரிமாற்றியில் புரோக்ராமை செயல்படுத்த ஆகும் நேரம் அதிகம்
முழுமொழிமாற்றியில் புரோக்ராமை செயல்படுத்த ஆகும் நேரம் குறைவு,
4. தவறுகளை கண்டுபிடித்தலும் திருத்தலும் வேகமாக செய்ய இயலும்
தவறுகளை கண்டுபிடித்தலும் திருத்தலும் மெதுவாக செய்ய இயலும்
5. குறைந்த அளவு நினைவகம் (Memory) தேவைப்படும்.
அதிக அளவு நினைவகம் (Memory) தேவைப்படும்.
6. ஒவ்வொரு முறையும் புரோக்ராம் செயல்படுத்தப்படும்பொழுது ஒவ்வொரு கட்டளையின்
வடிவமும் (syntax) சரியாக உள்ளதா என பார்த்த பின்பே எந்திரமொழிக்கு மாற்றும்
எந்திர மொழிக்கு மாற்றிய பின்னரே கட்டளை வரிகள் syntax error நீக்கப்பட்டு பின்
செயல்பட துவங்கும்.
உயர்நிலை மொழியின் இந்த மொழி மாற்றித் துருவங்கள் இரண்டுக்கும் இடையே உள்ள
வேறுபாடுகள் பார்த்தோம்..இதில் இன்னொரு மிகப்பெரிய சிறப்பம்சம் இருக்கிறது.அதாவது
பாக்ஸ்புரோ போன்ற மென்பொருள்களில் நீங்கள் சின்னதாக ஒரு புராஜெக்ட் செய்கிறீர்கள்
அதை உங்கள் நண்பரின் வீட்டுக்கு பிளாப்பியிலோ அல்லது சிடியிலோ காப்பி செய்து
கொண்டு போய் இயக்குகிறீர்கள்... இயங்குமா...? உங்கள் நண்பரின் கம்ப்யூட்டரிலும்
பாக்ஸ்புரோ இருந்தால் இயங்கும்..ஆனால் அவர் கம்ப்யூட்டரில் பாக்ஸ்புரோ இல்லை
எனில் உங்கள் புராஜக்ட் இயங்காது.. ஏன் என்று சொல்லுங்கள் பார்ப்போம்?
ஆனால் சி சி++ மொழிகளில் எழுதப்படும் புரோக்ராம்கள் புராஜக்ட்கள் உங்கள் நண்பர்
கம்ப்யூட்டரில் அவ்வித சாப்ட்வேர்கள் இல்லை எனினும் இயங்கும்...உங்கள் கம்ப்யூட்ட
ரில் இயங்கியது போலவே இயங்கும்...இதற்கும் மட்டும் அப்படி என்ன விஷேசம்..?
சொல்லுங்கள் பார்ப்போம்.
மேலே உள்ள இரண்டு கேள்விக்கும் உங்களுக்கு தெளிவிருக்கிறது என்றால் மேலே நான்
தந்திருக்கும் வேறுபாடுகளில் இரண்டாவது பாயிண்ட் உங்களுக்கு தெளிவாகி விட்டது என
அறிந்து கொள்ளலாம்
(தொடரும்)
சும்மா படித்து வையுங்கள்
புரோக்ராம் எழுதுபவர்கள் சில வேடிக்கையான நம்பிக்கைகள் வைத்திருக்கிறார்கள்.வருடக்கணக்கில் புரோக்ராம் எழுதி எழுதி மாய்ந்து போன பின்பு அவர்கள்
கண்டறிந்த சில உண்மைகள்.
1. மிக சிறிய புரோக்ராம்களை தவிர மற்ற எல்லாவற்றிலும் முதல் தடவை எழுதும் போது
நிச்சயம் ஒரு தப்பாவது இருக்கும்.
2. தப்பு இருந்தால் கணிப்பொறியால் அதை கண்டுபிக்க இயலும்.
3. ஏதாவது தப்பாக நிகழும் சாத்தியம் இருந்தால் அது நிகழ்ந்தே தீரும்...
மேற்கண்ட மூன்றாவது கருத்தமைவை மர்பிஸ்லா என்பார்கள்.