பைத்தானில் C++ நிரல்களை தருவித்தல் - Study Notes
பாடச் சுருக்கம் (Chapter Summary)
இப்பாடம் யபத்தான் மற்றும் C++ ஆகிய இரு மொழிகளை ஒருங்கிணைத்துச் செயல்படும் நுட்பத்தை விளக்குகிறது. யபத்தான் ஒரு வரிகொழி மாற்றி (Interpreter) மொழியாகவும், C++ ஒரு நிரல் தொகுப்பி (Compiler) மொழியாகவும் உள்ளன. யபத்தான் நிரலில் C++ நிரல்களைத் தருவித்து இயக்குவதை உறைஇடுதல் (Wrapping) என்கிறோம். இதற்குப் பயன்படும் பல்வேறு கூறுநிலைகளான sys, os மற்றும் getopt ஆகியவை விரிவாக விளக்கப்பட்டுள்ளன.
கற்றல் நோக்கங்கள் (Learning Objectives)
- யபத்தான் மற்றும் C++ மொழிகளுக்கு இடையேயான வேறுபாடுகளைப் புரிந்துகொள்ளுதல்.
- ஸ்கிரிப்டிங் (Scripting) மற்றும் நிரலாக்க மொழிகளின் தன்மைகளை ஒப்பிடுதல்.
- MinGW இடைமுகத்தைப் பயன்படுத்தி விண்டோஸ் இயக்க அமைப்பில் C++ நிரல்களைத் தொகுத்தல்.
- sys, os மற்றும் getopt ஆகிய யபத்தான் கூறுநிலைகளைப் பயன்படுத்தி C++ நிரல்களைத் தருவித்து இயக்குதல்.
- நிரலின் செயல்பாட்டில் பிழைகளைக் கையாளுதல் மற்றும் __name__ சிறப்பு மாறியின் பங்கை அறிதல்.
முக்கிய கருத்துருக்கள் மற்றும் வரையறைகள் (Key Concepts and Definitions)
- உறைஇடுதல் (Wrapping): ஒரு நிரலாக்க மொழியில் எழுதப்பட்ட குறியீட்டை மற்றொரு மொழியில் எளிதாகத் தருவித்து இயக்குவதற்கான ஒரு இடைமுகத்தை உருவாக்குதல் உறைஇடுதல் ஆகும்.
- ஸ்கிரிப்டிங் மொழி (Scripting Language): பிற நிரலாக்க மொழிகளுடன் எளிதில் ஒருங்கிணைந்து, பணிகளைத் தானியங்குபடுத்த வடிவமைக்கப்பட்ட எளிமையான மொழி. இதற்குத் தனியாகத் தொகுத்தல் படிநிலை தேவையில்லை.
- வரிகொழி மாற்றி (Interpreter) vs தொகுப்பி (Compiler): வரிகொழி மாற்றி நிரலை வரியாக மொழிபெயர்த்து இயக்கும் (எ.கா. யபத்தான்). தொகுப்பி முழு நிரலையும் ஒரே நேரத்தில் இயந்திரக் குறியீடாக மாற்றும் (எ.கா. C++).
- MinGW: விண்டோஸ் இயக்க அமைப்பிற்கான குறைந்தபட்ச GNU தொகுப்பாகும். இது C, C++ நிரல்களைத் தொகுத்து இயக்க g++ தொகுப்பானை வழங்குகிறது.
- sys.argv: யபத்தான் நிரலுக்கு அனுப்பப்படும் கட்டளை வரிச் செயலுருபுகளின் பட்டியலைக் கொண்ட ஒரு அணி (List) ஆகும்.
- __name__: யபத்தானின் ஒரு உள்ளிணைந்த சிறப்பு மாறி. இது தற்போது இயங்கும் கோப்பு முதன்மை நிரலாக இயங்குகிறதா அல்லது கூறுநிலையாக இறக்குமதி செய்யப்பட்டுள்ளதா என்பதைக் கண்டறிய உதவுகிறது. முதன்மை நிரலாக இயங்கும்போது இதன் மதிப்பு "__main__" ஆக இருக்கும்.
நடைமுறை வழிமுறைகள் (Worked Methods)
C++ நிரலை யபத்தான் மூலம் இயக்குதல்
முதலில் C++ குறியீட்டை (எ.கா. pali_cpp.cpp) எழுதிச் சேமிக்க வேண்டும். பின்னர் அதனை இயக்க யபத்தான் நிரலை (pali.py) உருவாக்க வேண்டும். யபத்தான் நிரலில் sys, os, getopt ஆகிய கூறுநிலைகளை இறக்குமதி செய்ய வேண்டும். getopt.getopt() கொண்டு கட்டளை வரிச் செயலுருபுகள் பிரிக்கப்படுகின்றன. os.system() மூலம் g++ தொகுப்பானை அழைத்து, C++ நிரலைத் தொகுத்து .exe கோப்பை உருவாக்கி இயக்குகிறோம்.
கட்டளை வரியில் இயக்குவதற்கான வடிவம்: python pali.py -i pali_cpp
பொதுவான தேர்வுப் பொறிகள் (Common Exam Traps)
- செயலுருபு வேறுபாடு: செயற்கூறு வரையறையில் உள்ள மாறிகள் அளபுருக்கள் (Parameters) என்றும், அதற்கு அனுப்பப்படும் மதிப்புகள் செயலுருபுகள் (Arguments) என்றும் அழைக்கப்படுகின்றன. இரண்டையும் குழப்பிக் கொள்ளக் கூடாது.
- பிரிப்பான் பிழைகள்: getopt.getopt() முறையில் செயலுருபுகளைப் பிரிக்கும்போது, பிழைகள் ஏதும் இல்லாவிட்டால் 'args' ஒரு வெற்று அணியாக [] இருக்கும். ஆனால் தவறான முறை பயன்படுத்தப்பட்டால் அது வெற்று அணியாக இருக்காது.
- கோப்பு நீட்டிப்பு: கட்டளை வரியில் யபத்தான் நிரல் மூலம் C++ நிரலை இயக்கும்போது, C++ கோப்பின் பெயரை .cpp நீட்டிப்பு இல்லாமல் வழங்க வேண்டும். .cpp உடன் வழங்கினால் நிரல் பிழையைக் காட்டும்.
தேர்வு குறிப்புகள் (Exam Tips)
- C++ மற்றும் யபத்தான் வேறுபாடுகளைக் கொண்ட அட்டவணையைத் தெளிவாகப் படித்துக் கொள்ளவும்; இது அடிக்கடி கேட்கப்படும் 5-மதிப்பெண் வினாவாகும்.
- sys, os, getopt ஆகிய கூறுநிலைகளின் பயன்பாடுகளையும், அவற்றில் உள்ள முக்கிய செயற்கூறுகளையும் (sys.argv, os.system(), getopt.getopt()) நன்கு நினைவில் வைத்துக் கொள்ளவும்.
- __name__ சிறப்பு மாறியின் நிபந்தனைச் சோதனையான if __name__ == '__main__': என்பதன் விளக்கத்தைக் கற்றுக்கொள்வது கட்டாயமாகும்.