TN Online Testசமச்சீர் கல்விப் பயிற்சி

பைத்தானில் C++ நிரல்களை தருவித்தல்: ஒரு மதிப்பெண் வினாக்கள், புத்தக வினா விடைகள் மற்றும் குறிப்புகள்

12ஆம் வகுப்பு · கணினி அறிவியல் · #14

ஒரு பைத்தான் நிரல், கட்டளைச் சாளரத்தை (command prompt) விட்டு வெளியே வராமலேயே ஒரு C++ நிரலைத் தொகுத்து இயக்க முடியும். ஸ்கிரிப்டிங் மொழிகளையும் நிரலாக்க மொழிகளையும் ஒப்பிடுதல், பைத்தானுக்காக C++ ஐ உறையிடும் வழிகள், MinGW, g++ ஆகியவற்றை இந்தக் குறிப்புகள் விளக்குகின்றன. பாடநூல் நிரலில் வரும் sys, os, getopt தொகுதிகளும் __name__ == '__main__' சோதனையும் வரிவரியாக விளக்கப்படுகின்றன.

இந்தப் பாடத்தைப் படியுங்கள்

முந்தைய பொதுத் தேர்வுகளில் கேட்கப்பட்டவை

இந்தப் பாடத்திலிருந்து 6 வினாக்கள் 6 முந்தைய பொதுத் தேர்வுகளில் கேட்கப்பட்டன. விடையையும் விளக்கத்தையும் காண எந்த வினாவையும் திறக்கவும்.

  1. மார்ச் 2026
    பைத்தான் மற்றும் C++ நிரல்களை இடைமுகபடுத்துவதற்கான கட்டமைப்பு :
    விடையுடன் வினாத்தாளில் பார் →
  2. மார்ச் 2025
    Windows இயக்க முறைமையுடன் தொடர்பு கொள்ள எந்த கூறுநிலை அனுமதிக்கிறது?
    விடையுடன் வினாத்தாளில் பார் →
  3. மார்ச் 2023
    பைத்தான் நிரலில் C++ நிரலை தருவித்தல் __________ என அழைக்கப்படுகிறது.
    விடையுடன் வினாத்தாளில் பார் →
  4. மே 2022
    பைத்தான் மற்றும் C++ நிரல்களை இடைமுகப்படுத்துவதற்கான கட்டமைப்பு :
    விடையுடன் வினாத்தாளில் பார் →
  5. துணைத் தேர்வு 2021
    விண்டோஸ் இயக்க முறைமையுடன் தொடர்பு கொள்ள எந்த கூறுநிலை அனுமதிக்கிறது ?
    விடையுடன் வினாத்தாளில் பார் →
  6. மார்ச் 2020
    பைத்தான் மற்றும் C++ நிரல்களை இடைமுகப்படுத்துவதற்கான கட்டமைப்பு :
    விடையுடன் வினாத்தாளில் பார் →

பைத்தானில் C++ நிரல்களை தருவித்தல் பற்றி

நடுத்தரம் ~90 நிமிடப் படிப்பு

C++ ஒரு தொகுக்கப்படும் (compiled) மொழி; எனவே அதன் நிரல்கள் வேகமாக இயங்கும். பைத்தான் ஒரு வரிமொழிமாற்றி (interpreter) மூலம் இயங்கும் மொழி; விரைவாக எழுதலாம். பிற மொழிகளில் எழுதிய குறியீட்டை அழைத்து, அந்தப் பகுதிகளை ஒன்றாக இணைக்க முடிவதால் பைத்தான் பெரும்பாலும் ஒட்டும் மொழி (glue language) என்று அழைக்கப்படுகிறது. இந்த அலகில் ஒரு சிறிய பைத்தான் நிரல் ஒரு C++ கோப்பின் பெயரை எடுத்து, g++ மூலம் அதைத் தொகுத்து, விளைவை இயக்குகிறது. இவை அனைத்தும் ஒரே கட்டளையில் நடக்கின்றன.

இது வேலை செய்ய மூன்று விஷயங்கள் தேவை. MinGW, Windows க்கு ஒரு C++ தொகுப்பியை (g++) தருகிறது. sys தொகுதி, கட்டளை வரியில் தட்டச்சு செய்த சொற்களை நிரலுக்குத் தருகிறது. os தொகுதி, தொகுப்புக் கட்டளையை நிரல் இயக்க உதவுகிறது; getopt விருப்பங்களை (options) அவற்றின் மதிப்புகளிலிருந்து பிரிக்கிறது. பாடநூல் இந்த நிரலை python c:\pyprg\pali.py -i c:\pyprg\pali_cpp என்று இயக்குகிறது.

பைத்தானுக்கும் C++ க்கும் உள்ள வேறுபாடுகள், உறையிடும் கருவிகள், sys.argv, os.system(), getopt.getopt() ஒவ்வொன்றும் என்ன செய்கிறது, __name__ இன் பொருள் ஆகியவற்றைத் திருப்புதல் செய்யுங்கள். பிறகு பாடநூல் நிரலை வரிவரியாகப் படியுங்கள்; பார்க்காமலேயே ஒவ்வொரு வரியும் என்ன செய்கிறது என்று சொல்ல முடியும் வரை படியுங்கள்.

நீங்கள் கற்பவை

  • ஸ்கிரிப்டிங் மொழி, நிரலாக்க மொழி என்ற அடிப்படையில் பைத்தானுக்கும் C++ க்கும் உள்ள வேறுபாடுகளைக் கூறுதல்.
  • MinGW, g++ என்ன செய்கின்றன, g++ ஏன் PATH இல் இருக்க வேண்டும் என்று விளக்குதல்.
  • பைத்தானிலிருந்து ஒரு C++ கோப்பைத் தொகுத்து இயக்கும் பாடநூல் நிரலைப் படிப்படியாகப் பின்தொடர்தல்.
  • கட்டளை வரியில் தரப்படும் அளபுருக்களைப் படிக்க sys.argv பயன்படுத்துதல்.
  • getopt.getopt() இன் தொடரியலை எழுதி, அதன் அளபுருக்களையும் திருப்பி அனுப்பும் மதிப்புகளையும் விளக்குதல்.
  • ஒரு பைத்தான் கோப்பில் if __name__ == '__main__': என்பதன் நோக்கத்தை விளக்குதல்.

தொடங்குவதற்கு முன்

  • பைத்தான் செயற்கூறுகள், மாறிகள், கட்டுப்பாட்டு ஓட்டம்.
  • C++ நிரலின் அடிப்படை அமைப்பு: தலைப்புக் கோப்புகள் மற்றும் main().
  • Windows கட்டளைச் சாளரத்திலிருந்து ஒரு கட்டளையை இயக்குதல்.

இந்த அத்தியாயத்தில் உள்ள தலைப்புகள்

ஸ்கிரிப்டிங் மொழிகளும் நிரலாக்க மொழிகளும் பைத்தான் வரிமொழிமாற்றி மூலம் இயங்கும், இயங்கு தரவின வகை மொழி; C++ தொகுக்கப்படும், நிலையான தரவின வகை மொழி. ஸ்கிரிப்டிங் மொழிகளுக்குத் தனியாகத் தொகுக்கும் படி தேவையில்லை.
ஒட்டும் மொழியாகப் பைத்தான் C, C++ போன்ற தொகுக்கப்படும் மொழிகளில் எழுதிய நிரல்களைப் பைத்தான் அழைத்து, ஒரே நிரலிலிருந்து கட்டுப்படுத்த முடியும்.
பைத்தானுக்காக C++ ஐ உறையிடுதல் C, C++ குறியீட்டைப் பைத்தானிலிருந்து பயன்படுத்தப் பாடநூல் பட்டியலிடும் வழிகள்: Python-C-API, Ctypes, SWIG, Cython, Boost.Python, MinGW.
MinGW மற்றும் g++ Minimalist GNU for Windows தரும் g++, கட்டளைச் சாளரத்திலிருந்து ஒரு .cpp கோப்பை .exe கோப்பாகத் தொகுக்கிறது.
sys.argv கட்டளை வரி அளபுருக்களின் பட்டியல்; sys.argv[0] நிரலின் பெயர், sys.argv[1:] விருப்பங்களையும் கோப்புப் பெயர்களையும் கொண்டிருக்கும்.
os.system() பைத்தானிலிருந்து ஒரு shell கட்டளையை இயக்குகிறது; முதலில் g++ ஐ அழைக்கவும், பிறகு g++ உருவாக்கிய இயக்கக் கோப்பை இயக்கவும் பயன்படுகிறது.
getopt.getopt() கட்டளை வரி அளபுருக்களை (விருப்பம், மதிப்பு) இணைகளின் பட்டியலான opts ஆகவும், மீதமுள்ள அளபுருக்களின் பட்டியலான args ஆகவும் பிரிக்கிறது.
__name__ மற்றும் '__main__' கோப்பு நேரடியாக இயக்கப்படும்போது '__main__' என அமைக்கப்படும் சிறப்பு மாறி; இதனால் கோப்பு import செய்யப்படும்போது main() இயங்காது.

பைத்தானில் C++ நிரல்களை தருவித்தல் — விரிவான விளக்கம்

பைத்தானிலிருந்து C++ நிரல்களை இயக்குதல்

ஸ்கிரிப்டிங் மொழிகளும் நிரலாக்க மொழிகளும்

C++ ஒரு தொகுக்கப்படும், நிலையான தரவின வகை (statically typed) மொழி: இயங்குவதற்கு முன் முழு நிரலும் இயந்திர மொழிக்கு மாற்றப்படும்; ஒவ்வொரு மாறியின் வகையும் நிலையானது. பைத்தான் வரிமொழிமாற்றி மூலம் இயங்கும், இயங்கு தரவின வகை (dynamically typed) மொழி: தனியாகத் தொகுக்கும் படி தேவையில்லை; ஒரு மாறிக்கு மதிப்பு தரப்படும்போது அதன் வகை முடிவாகிறது. பைத்தான் போன்ற ஸ்கிரிப்டிங் மொழி பணிகளைத் தானியக்கமாக்கவும் நிரல்களை இணைக்கவும் பயன்படுகிறது; அதனால்தான் அது ஒட்டும் மொழி எனப்படுகிறது. வேகமாக இயங்க வேண்டிய பகுதிகளை C++ இல் எழுதி, பைத்தானிலிருந்து கட்டுப்படுத்தலாம்.

உறையிடுதலும் MinGW உம்

C++ குறியீட்டைப் பைத்தானிலிருந்து பயன்படுத்தக்கூடியதாக ஆக்குவது உறையிடுதல் (wrapping) எனப்படும். பாடநூல் Python-C-API, Ctypes, SWIG (Simplified Wrapper Interface Generator), Cython, Boost.Python, MinGW ஆகியவற்றைப் பட்டியலிடுகிறது. இந்தப் பாடம் MinGW (Minimalist GNU for Windows) ஐப் பயன்படுத்துகிறது. இது இயக்கநேரத் தலைப்புக் கோப்புகளும் (runtime header files) GNU கருவிகளும் கொண்ட தொகுப்பு; Windows இல் C, C++, FORTRAN குறியீட்டைத் தொகுத்து இணைக்க (link) உதவுகிறது. இதிலுள்ள g++ நிரல் GNU C++ தொகுப்பியை அழைக்கிறது. கட்டளைச் சாளரத்திலிருந்து g++ ஐ இயக்க, MinGW இன் bin கோப்புறையை PATH இல் சேர்க்க வேண்டும்.

sys தொகுதியும் sys.argv உம்

sys.argv என்பது நிரலை இயக்கும்போது தரப்படும் கட்டளை வரி அளபுருக்களின் பட்டியல். sys.argv[0] எப்போதும் பைத்தான் நிரலின் பெயர். அதற்குப் பின் வருபவை நீங்கள் தட்டச்சு செய்த விருப்பங்களும் கோப்புப் பெயர்களும், எ.கா. -i மற்றும் C++ கோப்பின் பெயர். அதனால்தான் நிரல் main(sys.argv[1:]) என்று அழைக்கிறது: நிரலின் பெயரைத் தவிர மற்ற அனைத்தையும் அனுப்புகிறது.

os தொகுதியும் os.system() உம்

os தொகுதி, இயக்க அமைப்பின் வசதிகளைப் பைத்தான் பயன்படுத்த உதவுகிறது. os.system() ஒரு கட்டளையை shell இல் இயக்குகிறது. நிரல் சரங்களை இணைத்துத் தொகுப்புக் கட்டளையை உருவாக்குகிறது: os.system('g++ ' + inp_file + ' -o ' + exe_file); இங்கே -o வெளியீட்டு இயக்கக் கோப்பின் (executable) பெயரைக் குறிக்கிறது. இரண்டாவது அழைப்பு os.system(exe_file) உருவான நிரலை இயக்குகிறது. மேற்கோள்குறிகளுக்குள் உள்ள இடைவெளிகள் முக்கியம்; அவை இல்லாவிட்டால் சொற்கள் ஒட்டிக்கொள்ளும், g++ தோல்வியடையும்.

getopt மூலம் விருப்பங்களைப் பிரித்தல்

இதன் தொடரியல் opts, args = getopt.getopt(argv, options, [long_options]). பாடநூலில் getopt.getopt(argv, "i:", ['ifile=']) பயன்படுகிறது; இங்கே i க்குப் பின் உள்ள முக்காற்புள்ளி, -i விருப்பத்துக்கு ஒரு மதிப்பு தேவை என்பதைக் குறிக்கிறது. opts என்பது ('-i', 'c:\pyprg\pali_cpp') போன்ற (விருப்பம், மதிப்பு) இணைகளின் பட்டியல். args என்பது விருப்பங்கள் அல்லாத மீதமுள்ள அளபுருக்களின் பட்டியல்; அப்படி எதுவும் இல்லையென்றால் அது காலியாக இருக்கும்.

__name__ மற்றும் தொகுப்புப் பிழைகள்

ஒரு கோப்பு நேரடியாக இயக்கப்படும்போது, பைத்தான் __name__ என்ற சிறப்பு மாறியை '__main__' என அமைக்கிறது. if __name__ == '__main__': என்ற வரி, அந்தச் சூழலில் மட்டும் main() இயங்குமாறு செய்கிறது; கோப்பு ஒரு தொகுதியாக import செய்யப்படும்போது இயங்காது. C++ மூலக் குறியீட்டில் பிழைகள் இருந்தால், நிரல் இயக்கப்பட்ட அதே கட்டளைச் சாளரத்தில் g++ தனது பிழைச் செய்திகளை வரி எண்களுடன் காட்டும்; இயக்கக் கோப்பு எதுவும் உருவாகாது.

தவிர்க்க வேண்டிய பொதுவான தவறுகள்

  • MinGW இன் bin கோப்புறையை PATH இல் சேர்க்காமல் விடுவது; அப்போது g++ அடையாளம் காணப்படவில்லை என்று கட்டளைச் சாளரம் காட்டும். நிரலை இயக்கும் முன் சூழல் மாறியை (environment variable) அமையுங்கள்.
  • os.system() க்காகச் சரங்களை இணைக்கும்போது இடைவெளிகளை விட்டுவிடுவது. பகுதிகள் தனிச் சொற்களாக இருக்க 'g++ ' + inp_file + ' -o ' + exe_file என்று எழுதுங்கள்.
  • முழு sys.argv பட்டியலையும் main() க்கு அனுப்புவது. sys.argv[0] நிரலின் பெயர்; அதைத் தவிர்க்க sys.argv[1:] ஐ அனுப்புங்கள்.
  • கட்டளை வரியில் .cpp நீட்டிப்பையும் தட்டச்சு செய்வது. பாடநூல் நிரல் '.cpp', '.exe' ஆகியவற்றைத் தானே சேர்க்கிறது; எனவே pali_cpp போல கோப்பின் பெயரை மட்டும் தாருங்கள்.
  • getopt.getopt() இல் "i:" இல் உள்ள முக்காற்புள்ளியை மறப்பது. அது இல்லாவிட்டால், -i மதிப்பு எதையும் ஏற்காத விருப்பமாகக் கருதப்படும்.

இவற்றை பயிற்சித் தேர்வு மூலம் சோதித்துப் பாருங்கள்; பிறகு விடையுடன் கூடிய வினாக்கள் பகுதியில் விரிவான விளக்கத்தைப் படியுங்கள்.

அடிக்கடி கேட்கப்படும் கேள்விகள்

ஸ்கிரிப்டிங் மொழிக்கும் நிரலாக்க மொழிக்கும் உள்ள வேறுபாடு என்ன?

பைத்தான் போன்ற ஸ்கிரிப்டிங் மொழி வரிமொழிமாற்றி மூலம் இயங்கும்; தனியாகத் தொகுக்கும் படி தேவையில்லை. C++ போன்ற நிரலாக்க மொழி இயங்கும் முன் இயந்திர மொழிக்குத் தொகுக்கப்பட வேண்டும்; அது நிலையான தரவின வகை கொண்டது. பணிகளைத் தானியக்கமாக்கவும் பிற நிரல்களை இணைக்கவும் ஸ்கிரிப்டிங் மொழிகள் அடிக்கடி பயன்படுகின்றன.

பைத்தான் ஏன் ஒட்டும் மொழி என்று அழைக்கப்படுகிறது?

பிற மொழிகளில் எழுதிய குறியீட்டுடன் அது எளிதாக இணைய முடிவதால். வேகமாக இயங்க வேண்டிய பகுதிகளை C அல்லது C++ இல் எழுதலாம்; ஒரு பைத்தான் நிரல் அவற்றை அழைத்துக் கட்டுப்படுத்தும்.

MinGW என்றால் என்ன, இங்கே அது ஏன் தேவை?

MinGW (Minimalist GNU for Windows) என்பது Windows இல் C, C++, FORTRAN நிரல்களைத் தொகுக்க உதவும், g++ உட்பட்ட இயக்கநேரத் தலைப்புக் கோப்புகளும் GNU கருவிகளும் கொண்ட தொகுப்பு. பைத்தான் நிரல் g++ கட்டளையை மட்டுமே தருகிறது; .exe கோப்பை உண்மையில் உருவாக்கும் தொகுப்பியை MinGW தருகிறது.

sys.argv எப்படி வேலை செய்கிறது?

sys.argv என்பது கட்டளை வரியில் python க்குப் பின் தட்டச்சு செய்த அனைத்தின் பட்டியல். python pali.py -i pali_cpp என்று இயக்கினால், sys.argv என்பது ['pali.py', '-i', 'pali_cpp']. sys.argv[0] நிரலின் பெயர்; மீதமுள்ளவை விருப்பங்களும் மதிப்புகளும்.

getopt.getopt() என்ன திருப்பி அனுப்புகிறது?

இது இரண்டு பட்டியல்களைத் திருப்பி அனுப்புகிறது. opts இல் ('-i', 'pali_cpp') போன்ற (விருப்பம், மதிப்பு) இணைகள் இருக்கும். args இல் விருப்பங்கள் அல்லாத மீதமுள்ள அளபுருக்கள் இருக்கும்; எதுவும் இல்லையென்றால் அது காலியாக இருக்கும். நிரல் opts மீது மடக்கு இயக்கி, -i இன் மதிப்புடன் run() ஐ அழைக்கிறது.

C++ நிரலில் பிழை இருந்தால் என்ன ஆகும்?

os.system() g++ ஐ இயக்கும்போது, நிரல் இயங்கும் அதே கட்டளைச் சாளரத்தில் தொகுப்பி தனது பிழைச் செய்திகளை வரி எண்களுடன் காட்டும். இயக்கக் கோப்பு எதுவும் உருவாகாது; எனவே இரண்டாவது os.system() அழைப்புக்கு இயக்க எதுவும் இருக்காது.

கடைசியாகப் புதுப்பிக்கப்பட்டது 17 செப்டெம்பர் 2026

கணினி அறிவியல் பாடத்தின் மற்ற பாடங்கள்

அனைத்தையும் பார்க்க
1 செயற்கூறு 2 தரவு அருவமாக்கம் 3 வரையெல்லை 4 நெறிமுறையின் யுத்திகள் 5 பைத்தான் அறிமுகம்—மாறிகள் மற்றும் செயற்குறிகள் 6 கட்டுப்பாட்டுக் கட்டமைப்புகள் 7 பைத்தான் செயற்கூறுகள் 8 சரங்கள் மற்றும் சரங்களைக் கையாளுதல் 9 (List, Tuples, Set மற்றும் Dictionary) தொகுப்பு தரவினங்கள் 10 பைத்தான் இனக்குழுக்கள் மற்றும் பொருள்கள் 11 தரவுதள கருத்துருக்கள் 12 வினவல் அமைப்பு மொழி (SQL) 13 பைத்தான் மற்றும் CSV கோப்புகள் 15 SQL மூலம் தரவுகளைக் கையாளுதல் 16 தரவுக் காட்சிப்படுத்துதல்: PYPLOT பயன்படுத்தி – கோட்டு வரைபடம், வட்ட வரைபடம் மற்றும் பட்டை வரைபடம் உருவாக்குதல்