Function (computer programming)
கணினி நிரலாக்கத்தில், ஒரு செயல்பாடு அல்லது சப்ரூட்டின் என்பது ஒரு குறிப்பிட்ட பணியைச் செய்யும் நிரல் அறிவுறுத்தல்களின் வரிசையாகும், இது ஒரு யூனிட்டாக தொகுக்கப்பட்டுள்ளது. இந்த அலகு பின்னர் அந்த குறிப்பிட்ட பணியை செய்ய வேண்டிய இடங்களில் நிரல்களில் பயன்படுத்தப்படலாம். செயல்பாடுகள் நிரல்களுக்குள் வரையறுக்கப்படலாம், அல்லது பல நிரல்களால் பயன்படுத்தக்கூடிய நூலகங்களில் தனித்தனியாக வரையறுக்கப்படலாம். வெவ்வேறு நிரலாக்க மொழிகளில், ஒரு செயல்பாட்டை வழக்கமான, துணை நிரல், துணை நெறிமுறை அல்லது செயல்முறை என்று அழைக்கலாம்; பொருள் சார்ந்த நிரலாக்கத்தில் (ஓஓபி), இது ஒரு முறை என்று அழைக்கப்படலாம். தொழில்நுட்ப ரீதியாக, இந்த சொற்கள் அனைத்தும் வெவ்வேறு வரையறைகளைக் கொண்டுள்ளன, மேலும் பெயரிடல் மொழிக்கு மொழி மாறுபடும். பொதுவான குடைச் சொல் அழைக்கக்கூடிய அலகு சில நேரங்களில் பயன்படுத்தப்படுகிறது. ஒரு செயல்பாடு பெரும்பாலும் குறியிடப்படுகிறது, இதனால் அதை பல முறை தொடங்கலாம் மற்றும் நிரலின் ஒரு செயல்பாட்டின் போது பல இடங்களிலிருந்து தொடங்கலாம், மற்ற செயல்பாடுகள் உட்பட, பின்னர் அழைப்புக்குப் பிறகு அடுத்த அறிவுறுத்தலுக்கு கிளை (திரும்ப), செயல்பாட்டின் பணி முடிந்ததும். ஒரு சப்ரூட்டின் யோசனை ஆரம்பத்தில் ஜான் மோக்லி மற்றும் கேத்லீன் அன்டோனெல்லி ஆகியோரால் ENIAC இல் தங்கள் பணியின் போது உருவாக்கப்பட்டது, மேலும் ஜனவரி 1947 ஹார்வர்ட் சிம்போசியத்தில் "EDVAC-வகை இயந்திரங்களுக்கான சிக்கல்களைத் தயாரித்தல்" என்ற தலைப்பில் பதிவு செய்யப்பட்டது. மாரிஸ் வில்க்ஸ், டேவிட் வீலர் மற்றும் ஸ்டான்லி கில் ஆகியோர் பொதுவாக இந்த கருத்தை முறையான கண்டுபிடிப்புக்கு பெருமைப்படுகிறார்கள், அவர்கள் ஒரு மூடிய துணை-முறை என்று அழைத்தனர், இது ஒரு திறந்த சப்ரூட்டின் அல்லது மேக்ரோவுடன் முரண்படுகிறது. இருப்பினும், ஆலன் டூரிங் 1945 ஆம் ஆண்டின் ஒரு ஆய்வறிக்கையில் NPL ACE க்கான வடிவமைப்பு முன்மொழிவுகள் குறித்து விவாதித்தார், இது ஒரு திரும்ப முகவரி அடுக்கின் கருத்தை கண்டுபிடிக்கும் அளவுக்கு சென்றது. செயல்பாடுகள் ஒரு சக்திவாய்ந்த நிரலாக்க கருவியாகும், மேலும் பல நிரலாக்க மொழிகளின் தொடரியல் சப்ரூட்டின்களை எழுதுவதற்கும் பயன்படுத்துவதற்கும் ஆதரவை உள்ளடக்கியது. செயல்பாடுகளின் விவேகமான பயன்பாடு (எடுத்துக்காட்டாக, கட்டமைக்கப்பட்ட நிரலாக்க அணுகுமுறை மூலம்) பெரும்பாலும் ஒரு பெரிய நிரலை உருவாக்குவதற்கும் பராமரிப்பதற்கும் ஏற்படும் செலவை கணிசமாகக் குறைக்கும், அதே நேரத்தில் அதன் தரம் மற்றும் நம்பகத்தன்மையை அதிகரிக்கும். செயல்பாடுகள், பெரும்பாலும் நூலகங்களில் சேகரிக்கப்படுகின்றன, மென்பொருளைப் பகிர்வதற்கும் வர்த்தகம் செய்வதற்கும் ஒரு முக்கியமான பொறிமுறையாகும். OOP இன் ஒழுக்கம் பொருள்கள் மற்றும் முறைகளை அடிப்படையாகக் கொண்டது (இவை இந்த பொருள்கள் அல்லது பொருள் வகுப்புகளுடன் இணைக்கப்பட்ட செயல்பாடுகள்). ஒரு செயல்பாட்டின் உள்ளடக்கம் அதன் உடல் ஆகும், இது செயல்பாடு அழைக்கப்படும்போது அல்லது அழைக்கப்படும்போது செயல்படுத்தப்படும் நிரல் குறியீட்டின் ஒரு பகுதியாகும். அழைப்பு நிரலில் இருந்து ஒன்று அல்லது அதற்கு மேற்பட்ட தரவு மதிப்புகளைப் பெற எதிர்பார்க்கும் வகையில் ஒரு செயல்பாடு எழுதப்படலாம் (அதன் அளவுருக்கள் அல்லது முறையான அளவுருக்களை மாற்றுவதற்கு). அழைப்பு நிரல் இந்த அளவுருக்களுக்கான உண்மையான மதிப்புகளை வழங்குகிறது, இது வாதங்கள் என்று அழைக்கப்படுகிறது. வெவ்வேறு நிரலாக்க மொழிகள் வாதங்களை அனுப்ப வெவ்வேறு மரபுகளைப் பயன்படுத்தலாம்ஃ ஒரு செயல்பாட்டு அழைப்பு கணினி நினைவகத்தில் தரவு கட்டமைப்புகளை மாற்றியமைத்தல், ஒரு புற சாதனத்திலிருந்து வாசிப்பது அல்லது எழுதுவது, ஒரு கோப்பை உருவாக்குவது, நிரல் அல்லது இயந்திரத்தை நிறுத்துவது அல்லது ஒரு குறிப்பிட்ட நேரத்திற்கு நிரலின் செயல்பாட்டை தாமதப்படுத்துவது போன்ற பக்க விளைவுகளையும் கொண்டிருக்கலாம். பக்க விளைவுகள் கொண்ட ஒரு துணை நிரல் ஒவ்வொரு முறையும் அழைக்கப்படும்போது வெவ்வேறு முடிவுகளைத் தரக்கூடும், அது ஒரே வாதங்களுடன் அழைக்கப்பட்டாலும் கூட. ஒரு எடுத்துக்காட்டு ஒரு சீரற்ற எண் செயல்பாடு, பல மொழிகளில் கிடைக்கிறது, இது ஒவ்வொரு முறையும் அழைக்கப்படும்போது வெவ்வேறு போலி-சீரற்ற எண்ணைத் தருகிறது. பக்க விளைவுகளுடன் கூடிய செயல்பாடுகளை பரவலாகப் பயன்படுத்துவது கட்டாய நிரலாக்க மொழிகளின் சிறப்பியல்பாகும். ஒரு செயல்பாட்டை குறியிடலாம், இதனால் அது ஒன்று அல்லது அதற்கு மேற்பட்ட இடங்களில், அதன் பணியைச் செய்ய தன்னை மீண்டும் மீண்டும் அழைக்கலாம். இந்த முறை கணித தூண்டல் மற்றும் மறுநிகழ்வு வகுத்தல் மற்றும் கைப்பற்றுதல் வழிமுறைகளால் வரையறுக்கப்பட்ட செயல்பாடுகளை நேரடியாக செயல்படுத்த அனுமதிக்கிறது. ஒரு பூலியன் மதிப்புள்ள செயல்பாட்டைக் கணக்கிடும் நோக்கம் கொண்ட ஒரு செயல்பாடு (அதாவது, ஆம்/இல்லை என்ற கேள்விக்கு பதிலளிப்பது) சில நேரங்களில் ஒரு முன்கணிப்பு என்று அழைக்கப்படுகிறது. தர்க்க நிரலாக்க மொழிகளில், பெரும்பாலும் அனைத்து செயல்பாடுகளும் முன்கணிப்புகள் என்று அழைக்கப்படுகின்றன, ஏனெனில் அவை முதன்மையாக வெற்றி அல்லது தோல்வியை தீர்மானிக்கின்றன. எந்த மதிப்பையும் திருப்பித் தராத அல்லது பூஜ்ய மதிப்பைத் திருப்பித் தரும் செயல்பாடு சில நேரங்களில் ஒரு செயல்முறை என்று அழைக்கப்படுகிறது. நடைமுறைகள் பொதுவாக அவற்றின் வாதங்களை மாற்றியமைக்கின்றன மற்றும் நடைமுறை நிரலாக்கத்தின் முக்கிய பகுதியாகும். சொற்களஞ்சியம் ஒரு சப்ரூட்டின் என்பது ஒரு மதிப்பைத் திருப்பித் தராத ஒரு செயல்பாடு ஆகும். சிக்கலான கணக்கீடுகளை அர்த்தமுள்ள துண்டுகளாகப் பிரித்து அவற்றைப் பெயரிடுவதே செயல்பாடுகளின் முதன்மை நோக்கமாகும். செயல்பாடு ஒரு கணக்கிடப்பட்ட மதிப்பை அதன் அழைப்பாளருக்கு (அதன் திரும்பும் மதிப்பு) திருப்பித் தரலாம் அல்லது பல்வேறு முடிவு மதிப்புகள் அல்லது வெளியீட்டு அளவுருக்களை வழங்கலாம். உண்மையில், செயல்பாடுகளின் பொதுவான பயன்பாடு கணித செயல்பாடுகளை செயல்படுத்துவதாகும், இதில் செயல்பாட்டின் நோக்கம் ஒன்று அல்லது அதற்கு மேற்பட்ட முடிவுகளைக் கணக்கிடுவதாகும், அதன் மதிப்புகள் செயல்பாட்டிற்கு அனுப்பப்பட்ட வாதங்களால் முழுமையாக தீர்மானிக்கப்படுகின்றன. (எடுத்துக்காட்டுகளில் ஒரு எண்ணின் மடக்கைக் கணக்கிடுவது அல்லது ஒரு மேட்ரிக்ஸின் தீர்மானிப்பவர் அடங்கும்.) சில மொழிகளில், ஒரு மதிப்பைத் திருப்பித் தரும் ஒரு செயல்முறைக்கான தொடரியல் அடிப்படையில் ஒரு மதிப்பைத் திருப்பித் தராத ஒரு செயல்முறைக்கான தொடரியல் போன்றது, எ. கா., ரிட்டர்ன்ஸ் பிரிவு இல்லாததைத் தவிர. சில மொழிகளில் ஒரு செயல்முறை அதன் வாதங்களைப் பொறுத்து, ஒரு மதிப்புடன் அல்லது இல்லாமல் திரும்புவதற்கு மாறும் வகையில் தேர்வு செய்யலாம். மொழி ஆதரவு உயர் நிலை நிரலாக்க மொழிகள் பொதுவாக குறிப்பிட்ட கட்டமைப்புகளை உள்ளடக்குகின்றனஃ செயல்பாட்டை உருவாக்கும் நிரலின் (உடல்) பகுதியை வரையறுக்கவும் (பெயர்) செயல்பாட்டிற்கு ஒரு அடையாளங்காட்டியை (பெயர்) ஒதுக்குங்கள் அதன் அளவுருக்கள் மற்றும் திரும்பும் மதிப்புகளின் பெயர்கள் மற்றும் தரவு வகைகளைக் குறிப்பிடவும் அதன் தற்காலிக மாறிகளுக்கு ஒரு தனிப்பட்ட பெயரிடும் நோக்கத்தை வழங்கவும் செயல்பாட்டிற்கு வெளியே உள்ள மாறிகளை அடையாளம் காணவும், செயல்பாட்டை அழைக்கவும் அதன் அளவுருக்களுக்கு மதிப்புகளை வழங்கவும் முக்கிய நிரலில் துணை நிரலின் முகவரி உள்ளது முக்கிய நிரலில் செயல்பாட்டு அழைப்பின் அடுத்த அறிவுறுத்தலின் முகவரியைக் கொண்டுள்ளது அதன் உடலுக்குள் இருந்து திரும்பும் மதிப்புகளைக் குறிப்பிடவும் அழைப்பு தொகுப்பு செயல்பாடுகளின் போது எதிர்கொள்ளும் ஏதேனும் விதிவிலக்கான நிபந்தனைகளை ஒரு தொகுதி, நூலகம், பொருள். அந்த மொழிகளில், செயல்பாட்டு அழைப்புகள் பொதுவாக வெளிப்பாடுகளில் உட்பொதிக்கப்பட்டுள்ளன (எ. கா., ஒரு sqrt செயல்பாட்டை y = z + sqrt (x) என்று அழைக்கலாம்). செயல்முறை அழைப்புகள் சொற்களாக செயல்படுகின்றன (எ. கா., ஒரு அச்சு செயல்முறை x> 0 என்று அழைக்கப்படலாம், பின்னர் அச்சு (x) அல்லது அழைப்பு அல்லது GOSUB (எ. கா., அழைப்பு அச்சு (x)) போன்ற அறிக்கைகளால் வெளிப்படையாக அழைக்கப்படுகின்றன. சி மற்றும் லிஸ்ப் போன்ற பிற மொழிகள், செயல்பாடுகள் மற்றும் சப்ரூட்டின்களை வேறுபடுத்துவதில்லை. ஹாஸ்கெல் போன்ற கண்டிப்பாக செயல்பாட்டு நிரலாக்க மொழிகளில், துணை நிரல்கள் எந்த பக்க விளைவுகளையும் ஏற்படுத்தாது, அதாவது நிரலின் பல்வேறு உள் நிலைகள் மாறாது. அதே வாதங்களுடன் மீண்டும் மீண்டும் அழைத்தால் செயல்பாடுகள் எப்போதும் அதே முடிவைத் தரும். இத்தகைய மொழிகள் பொதுவாக ஒரு மதிப்பைத் திருப்பித் தரும் செயல்பாடுகளை மட்டுமே ஆதரிக்கின்றன, ஏனெனில் ஒரு மதிப்பைத் திருப்பித் தராத செயல்பாடுகள் பக்க விளைவை ஏற்படுத்தாவிட்டால் எந்த பயனும் இல்லை. சி, சி + + மற்றும் சி #போன்ற நிரலாக்க மொழிகளில், ஒரு மதிப்பைத் தரும் செயல்பாடுகள் மற்றும் எந்த மதிப்பையும் திருப்பித் தராத செயல்பாடுகள் இரண்டும் "செயல்பாடுகள்" என்று அழைக்கப்படுகின்றன (கணித செயல்பாடுகள் அல்லது செயல்பாட்டு நிரலாக்கத்துடன் குழப்பமடையக்கூடாது, அவை வெவ்வேறு கருத்துகளாகும்). ஒரு மொழியின் தொகுப்பாளர் வழக்கமாக செயல்முறை அழைப்புகளை மொழிபெயர்க்கிறார் மற்றும் நன்கு வரையறுக்கப்பட்ட அழைப்பு மரபுகளின்படி இயந்திர அறிவுறுத்தல்களுக்குத் திரும்புகிறார், இதனால் செயல்பாடுகளை அழைக்கும் நிரல்களிலிருந்து தனித்தனியாக தொகுக்க முடியும். அழைப்பு மற்றும் திரும்பும் அறிக்கைகளுடன் தொடர்புடைய அறிவுறுத்தல் வரிசைகள் செயல்முறையின் முன்னுரை மற்றும் உபஸஂஹாரம் என்று அழைக்கப்படுகின்றன. ஒரு நிரலை செயல்பாடுகளாகப் பிரிப்பதன் நன்மைகள் பின்வருமாறுஃ ஒரு சிக்கலான நிரலாக்க பணியை எளிமையான படிகளாக மறுசீரமைத்தல்ஃ தரவு கட்டமைப்புகளுடன் கட்டமைக்கப்பட்ட நிரலாக்கத்தின் இரண்டு முக்கிய கருவிகளில் இதுவும் ஒன்றாகும். ஒரு நிரலுக்குள் நகல் குறியீட்டைக் குறைத்தல். பல நிரல்களில் குறியீட்டை மீண்டும் பயன்படுத்துவது. பல்வேறு புரோகிராமர்கள் அல்லது ஒரு திட்டத்தின் பல்வேறு நிலைகளில் ஒரு பெரிய நிரலாக்க பணியைப் பிரிப்பது. செயல்பாட்டின் பயனர்களிடமிருந்து செயல்படுத்தல் விவரங்களை மறைத்தல். குறியீட்டின் ஒரு தொகுதியை ஒரு செயல்பாட்டு அழைப்புடன் மாற்றுவதன் மூலம் குறியீட்டின் வாசிப்பை மேம்படுத்துதல், அங்கு ஒரு விளக்க செயல்பாட்டு பெயர் குறியீட்டின் தொகுதியை விவரிக்க உதவுகிறது. இது அழைப்பு குறியீட்டை சுருக்கமாகவும், செயல்பாடு மீண்டும் பயன்படுத்தப்படாவிட்டாலும் படிக்கக்கூடியதாகவும் ஆக்குகிறது. கண்டறியும் திறனை மேம்படுத்துதல் (அதாவது. பெரும்பாலான மொழிகள் அழைப்பு தடத்தைப் பெறுவதற்கான வழிகளை வழங்குகின்றன, இதில் சம்பந்தப்பட்ட செயல்பாடுகளின் பெயர்கள் மற்றும் கோப்பு பெயர்கள் மற்றும் வரி எண்கள் போன்ற கூடுதல் தகவல்கள் அடங்கும்); குறியீட்டை செயல்பாடுகளாக சிதைக்காமல் இருப்பதன் மூலம், பிழைத்திருத்தம் கடுமையாக பாதிக்கப்படும். ஒரு செயல்பாட்டிற்கு பொதுவாக நிலையான வீட்டு பராமரிப்பு குறியீடு தேவைப்படுகிறது-செயல்பாட்டின் நுழைவு மற்றும் வெளியேறும் போது (செயல்பாட்டு முன்னுரை மற்றும் இறுதி-பொதுவாக பொது நோக்க பதிவேடுகள் மற்றும் திரும்பும் முகவரியை குறைந்தபட்சமாக சேமிக்கிறது). கணினி இயந்திரங்கள் ஏற்கனவே சில காலமாக இருந்த பிறகு ஒரு சப்ரூட்டின் யோசனை உருவாக்கப்பட்டது. எண்கணித மற்றும் நிபந்தனை ஜம்ப் அறிவுறுத்தல்கள் நேரத்திற்கு முன்பே திட்டமிடப்பட்டு ஒப்பீட்டளவில் குறைவாகவே மாறிவிட்டன, ஆனால் செயல்முறை அழைப்புகளுக்கு பயன்படுத்தப்படும் சிறப்பு அறிவுறுத்தல்கள் பல ஆண்டுகளாக பெரிதும் மாறிவிட்டன. மான்செஸ்டர் பேபி மற்றும் ஆர். சி. ஏ 1802 போன்ற ஆரம்பகால கணினிகள் மற்றும் நுண்செயலிகளுக்கு ஒரு துணை வழக்கமான அழைப்பு அறிவுறுத்தல் கூட இல்லை. சப்ரூட்டின்கள் செயல்படுத்தப்படலாம், ஆனால் அவை புரோகிராமர்கள் அழைப்பு வரிசையைப் பயன்படுத்த வேண்டும்-தொடர்ச்சியான அறிவுறுத்தல்கள்-ஒவ்வொரு அழைப்பு தளத்திலும். 1945 ஆம் ஆண்டில் கொன்ராட் சூஸின் Z4 இல் சப்ரூட்டின்கள் செயல்படுத்தப்பட்டன. 1945 ஆம் ஆண்டில், ஆலன் எம். டூரிங் "புதைத்தல்" மற்றும் "அன்பரி" என்ற சொற்களை சப்ரூட்டின்களிலிருந்து அழைப்பதற்கும் திரும்புவதற்கும் ஒரு வழிமுறையாக பயன்படுத்தினார். ஜனவரி 1947 இல் ஹார்வர்ட் பல்கலைக்கழகம் மற்றும் யுனைடெட் ஸ்டேட்ஸ் கடற்படையின் ஆயுதப் பணியகத்தின் கூட்டு நிதியுதவியின் கீழ் 'பெரிய அளவிலான டிஜிட்டல் கணக்கீட்டு இயந்திரங்களின் சிம்போசியம்' இல் ஜான் மோஷ்லி பொதுக் குறிப்புகளை வழங்கினார். இங்கே அவர் தொடர் மற்றும் இணையான செயல்பாட்டைப் பற்றி விவாதிக்கிறார், கே மெக்னால்டி ENIAC குழுவில் ஜான் மோக்லியுடன் நெருக்கமாக பணியாற்றியதாகவும், இரண்டாம் உலகப் போரின் போது அவர் நிரலாக்கிய ENIAC கணினிக்கான சப்ரூட்டின்களுக்கான யோசனையை உருவாக்கியதாகவும் கூறுகிறார். அவரும் மற்ற ENIAC புரோகிராமர்களும் ஏவுகணை பாதைகளை கணக்கிட உதவும் வகையில் சப்ரூட்டின்களைப் பயன்படுத்தினர். கோல்ட்ஸ்டைன் மற்றும் வான் நியூமன் ஆகியோர் ஆகஸ்ட் 16,1948 அன்று சப்ரூட்டின்களின் பயன்பாடு குறித்து விவாதித்து ஒரு கட்டுரையை எழுதினர். ஐபிஎம் 1620, இன்டெல் 4004 மற்றும் இன்டெல் 8008 மற்றும் பிஐசி மைக்ரோகண்ட்ரோலர்கள் போன்ற சில ஆரம்பகால கணினிகள் மற்றும் நுண்செயலிகள், ஒற்றை-அறிவுறுத்தல் சப்ரூட்டின் அழைப்பைக் கொண்டுள்ளன, அவை திரும்பும் முகவரிகளை சேமிக்க ஒரு பிரத்யேக வன்பொருள் அடுக்கைப் பயன்படுத்துகின்றன-அத்தகைய வன்பொருள் ஒரு சில நிலைகளை மட்டுமே ஆதரிக்கிறது சப்ரூட்டின் கூடு கட்டுதல், ஆனால் மறுநிகழ்வு சப்ரூட்டின்களை ஆதரிக்க முடியும். 1960 களின் நடுப்பகுதிக்கு முந்தைய இயந்திரங்கள்-யுனிவாக் I, பி. டி. பி-1 மற்றும் ஐபிஎம் 1130 போன்றவை-பொதுவாக ஒரு அழைப்பு மரபுகளைப் பயன்படுத்துகின்றன, இது அறிவுறுத்தல் கவுண்டரை சப்ரூட்டின் என்று அழைக்கப்படும் முதல் நினைவக இருப்பிடத்தில் சேமிக்கிறது. இது தன்னிச்சையாக ஆழமான சப்ரூட்டின் கூடு கட்டுவதை அனுமதிக்கிறது, ஆனால் தொடர்ச்சியான சப்ரூட்டின்களை ஆதரிக்காது. ஐபிஎம் சிஸ்டம்/360 ஒரு சப்ரூட்டின் அழைப்பு அறிவுறுத்தலைக் கொண்டிருந்தது, இது சேமிக்கப்பட்ட அறிவுறுத்தல் எதிர் மதிப்பை ஒரு பொது நோக்க பதிவேட்டில் வைத்தது; இது தன்னிச்சையாக ஆழமான சப்ரூட்டின் கூடு கட்டுதல் மற்றும் தொடர்ச்சியான சப்ரூட்டின்களை ஆதரிக்க பயன்படுத்தப்படலாம். பி. டி. பி-11 (1970) ஸ்டேக்-புஷிங் சப்ரூட்டின் அழைப்பு அறிவுறுத்தலைக் கொண்ட முதல் கணினிகளில் ஒன்றாகும்; இந்த அம்சம் தன்னிச்சையாக ஆழமான சப்ரூட்டின் கூடு கட்டுதல் மற்றும் மறுசுழற்சி சப்ரூட்டின்கள் ஆகிய இரண்டையும் ஆதரிக்கிறது. மொழி ஆதரவு மிக ஆரம்பகால அசெம்பிளர்களில், சப்ரூட்டீன் ஆதரவு குறைவாக இருந்தது. சப்ரூட்டின்கள் ஒருவருக்கொருவர் அல்லது முக்கிய நிரலில் இருந்து வெளிப்படையாக பிரிக்கப்படவில்லை, உண்மையில் ஒரு சப்ரூட்டினின் மூலக் குறியீட்டை மற்ற துணை நிரல்களுடன் இணைக்க முடியும். சில அசெம்பிளர்கள் அழைப்பு மற்றும் ரிட்டர்ன் காட்சிகளை உருவாக்க முன் வரையறுக்கப்பட்ட மேக்ரோக்களை வழங்குவார்கள். 1960 களில், அசெம்பிளர்கள் பொதுவாக இன்லைன் மற்றும் தனித்தனியாக அசெம்பிள் செய்யப்பட்ட சப்ரூட்டின்கள் இரண்டிற்கும் மிகவும் அதிநவீன ஆதரவைக் கொண்டிருந்தன, அவை ஒன்றாக இணைக்கப்படலாம். பயனர்-எழுதப்பட்ட துணை நடைமுறைகள் மற்றும் செயல்பாடுகளை ஆதரிக்கும் முதல் நிரலாக்க மொழிகளில் ஒன்று ஃபோர்ட்ரான் II ஆகும். ஐபிஎம் ஃபோர்ட்ரான் II தொகுப்பாளர் 1958 இல் வெளியிடப்பட்டது. ALGOL 58 மற்றும் பிற ஆரம்பகால நிரலாக்க மொழிகளும் நடைமுறை நிரலாக்கத்தை ஆதரித்தன. நூலகங்கள் இந்த சிக்கலான அணுகுமுறையுடன் கூட, சப்ரூட்டின்கள் மிகவும் பயனுள்ளதாக இருந்தன. வெவ்வேறு நிரல்களில் ஒரே குறியீட்டைப் பயன்படுத்த அவர்கள் அனுமதித்தனர். ஆரம்பகால கணினிகளில் நினைவகம் மிகவும் அரிதான வளமாக இருந்தது, மேலும் சப்ரூட்டீன்கள் நிரல்களின் அளவில் குறிப்பிடத்தக்க சேமிப்பை அனுமதித்தன. பல ஆரம்பகால கணினிகள் ஒரு குத்திய காகித நாடா மூலம் நிரல் அறிவுறுத்தல்களை நினைவகத்தில் ஏற்றுகின்றன. ஒவ்வொரு சப்ரூட்டினையும் பின்னர் ஒரு தனி நாடா மூலம் வழங்க முடியும், பிரதான நிரலுக்கு முன்னும் பின்னும் (அல்லது "மெயின்லைன்") ஏற்றப்படலாம் அல்லது இணைக்கப்படலாம்; அதே சப்ரூட்டின் நாடா பின்னர் பல்வேறு நிரல்களால் பயன்படுத்தப்படலாம். இதேபோன்ற அணுகுமுறை கணினிகளில் பயன்படுத்தப்பட்டது, அவை பஞ்ச் கார்டுகளிலிருந்து நிரல் வழிமுறைகளை ஏற்றுகின்றன. சப்ரூட்டின் நூலகம் என்ற பெயர் முதலில் ஒரு நூலகத்தைக் குறிக்கிறது, நேரடி அர்த்தத்தில், இது கூட்டு பயன்பாட்டிற்காக நாடாக்கள் அல்லது அட்டைகளின் தளங்களின் குறியீட்டு தொகுப்புகளை வைத்திருந்தது. சுய-மாற்றியமைக்கும் குறியீட்டின் தேவையை அகற்ற, கணினி வடிவமைப்பாளர்கள் இறுதியில் ஒரு மறைமுக ஜம்ப் அறிவுறுத்தலை வழங்கினர், அதன் செயல்பாடு, திரும்பும் முகவரியாக இருப்பதற்குப் பதிலாக, திரும்பும் முகவரியைக் கொண்ட மாறி அல்லது செயலி பதிவேட்டின் இருப்பிடமாக இருந்தது. அந்த கணினிகளில், செயல்பாட்டின் ரிட்டர்ன் ஜம்பை மாற்றியமைப்பதற்குப் பதிலாக, அழைப்பு நிரல் ரிட்டர்ன் முகவரியை ஒரு மாறியில் சேமிக்கும், இதனால் செயல்பாடு முடிந்ததும், அது ஒரு மறைமுக ஜம்பை இயக்கும், இது முன்னரே வரையறுக்கப்பட்ட மாறி வழங்கிய இடத்திற்கு செயல்படுத்தப்படும். மற்றொரு முன்னேற்றம் சப்ரூட்டின் அறிவுறுத்தலுக்கான ஜம்ப் ஆகும், இது ரிட்டர்ன் முகவரியின் சேமிப்பை அழைப்பு ஜம்புடன் இணைத்து, அதன் மூலம் மேல்நிலையை கணிசமாகக் குறைக்கிறது. எடுத்துக்காட்டாக, ஐபிஎம் சிஸ்டம்/360 இல், செயல்முறை அழைப்புக்காக வடிவமைக்கப்பட்ட கிளை அறிவுறுத்தல்கள் பிஏஎல் அல்லது பிஏஎல்ஆர், திரும்பும் முகவரியை அறிவுறுத்தலில் குறிப்பிடப்பட்டுள்ள செயலி பதிவேட்டில், மரபு பதிவு 14 மூலம் சேமிக்கும். திரும்புவதற்கு, சப்ரூட்டின் அந்த பதிவேட்டின் மூலம் ஒரு மறைமுக கிளை அறிவுறுத்தலை (பிஆர்) மட்டுமே செயல்படுத்த வேண்டியிருந்தது. சப்ரூட்டினுக்கு வேறு ஏதேனும் நோக்கத்திற்காக அந்த பதிவு தேவைப்பட்டால் (மற்றொரு சப்ரூட்டினை அழைப்பது போன்றவை), அது பதிவின் உள்ளடக்கங்களை ஒரு தனிப்பட்ட நினைவக இருப்பிடம் அல்லது ஒரு பதிவு அடுக்கில் சேமிக்கும். HP 2100 போன்ற அமைப்புகளில், JSB அறிவுறுத்தல் இதே போன்ற பணியைச் செய்யும், தவிர, திரும்பும் முகவரி கிளையின் இலக்காக இருந்த நினைவக இருப்பிடத்தில் சேமிக்கப்பட்டது. செயல்முறையின் செயல்பாடு உண்மையில் அடுத்த நினைவக இடத்தில் தொடங்கும். எடுத்துக்காட்டாக, HP 2100 அசெம்பிளி மொழியில், ஒருவர் எழுதுவார். JSB MYSUB (கால்ஸ் சப்ரூட்டின் MYSUB.) பிபி. (எம். ஒய். எஸ். யு. பி முடிந்த பிறகு இங்கு வருவேன்.) பிரதான நிரலில் இருந்து MYSUB எனப்படும் சப்ரூட்டினை அழைக்க. சப்ரூட்டீன் MYSUB NOP (MYSUB இன் திரும்பும் முகவரிக்கான சேமிப்பு) என குறியிடப்படும். ஏ. ஏ. (எம். ஒய். எஸ். யு. பியின் உடலின் தொடக்கம்.) . JMP MYSUB, I (அழைப்பு நிரலுக்குத் திரும்புகிறது.) JSB அறிவுறுத்தல் அடுத்த அறிவுறுத்தலின் முகவரியை (அதாவது, BB) அதன் செயல்பாடு (அதாவது, MYSUB) என குறிப்பிடப்பட்ட இடத்தில் வைத்தது, பின்னர் அடுத்த இடத்திற்கு கிளைத்தது (அதாவது, AA = MYSUB + 1). மறைமுக ஜம்ப் JMP MYSUB ஐ செயல்படுத்துவதன் மூலம் சப்ரூட்டின் பிரதான திட்டத்திற்குத் திரும்ப முடியும், இது MYSUB இருப்பிடத்தில் சேமிக்கப்பட்ட இடத்திற்கு கிளைத்தது. ஃபோர்ட்ரான் மற்றும் பிற மொழிகளுக்கான தொகுப்பான்கள் கிடைக்கும்போது இந்த அறிவுறுத்தல்களை எளிதாக பயன்படுத்த முடியும். இந்த அணுகுமுறை பல நிலை அழைப்புகளை ஆதரித்தது; இருப்பினும், ஒரு சப்ரூட்டினின் திரும்பும் முகவரி, அளவுருக்கள் மற்றும் திரும்பும் மதிப்புகள் நிலையான நினைவக இருப்பிடங்களுக்கு ஒதுக்கப்பட்டதால், இது தொடர்ச்சியான அழைப்புகளை அனுமதிக்கவில்லை. தற்செயலாக, 1980 களின் முற்பகுதியில் லோட்டஸ் 1-2-3, ஒரு விரிதாளில் மறு கணக்கீட்டு சார்புநிலைகளைக் கண்டறிய இதேபோன்ற முறையைப் பயன்படுத்தியது. அதாவது, திரும்பும் முகவரியை சேமிக்க ஒவ்வொரு அறையிலும் ஒரு இடம் ஒதுக்கப்பட்டது. இயற்கையான மறு கணக்கீட்டு வரிசைக்கு வட்ட குறிப்புகள் அனுமதிக்கப்படாததால், இது ஐபிஎம் பிசி போன்ற சிறிய கணினிகளில் மிகவும் குறைவாக இருந்த நினைவகத்தில் ஒரு அடுக்குக்கு இடத்தை ஒதுக்காமல் ஒரு மரம் நடக்க அனுமதிக்கிறது. அழைப்பு அடுக்கு ஒரு செயல்பாட்டு அழைப்பின் பெரும்பாலான நவீன செயல்பாடுகள் அழைப்பு அடுக்கைப் பயன்படுத்துகின்றன, இது அடுக்கு தரவு கட்டமைப்பின் ஒரு சிறப்பு வழக்கு, செயல்பாட்டு அழைப்புகள் மற்றும் வருமானங்களை செயல்படுத்துகிறது. ஒவ்வொரு செயல்முறை அழைப்பும் அடுக்கின் மேற்புறத்தில் ஒரு அடுக்கு சட்டகம் என்று அழைக்கப்படும் ஒரு புதிய உள்ளீட்டை உருவாக்குகிறது; செயல்முறை திரும்பும்போது, அதன் அடுக்கு சட்டகம் அடுக்கிலிருந்து நீக்கப்படும், மேலும் அதன் இடத்தை மற்ற செயல்முறை அழைப்புகளுக்கு பயன்படுத்தலாம். ஒவ்வொரு அடுக்கு சட்டமும் தொடர்புடைய அழைப்பின் தனிப்பட்ட தரவைக் கொண்டுள்ளது, இதில் பொதுவாக செயல்முறையின் அளவுருக்கள் மற்றும் உள் மாறிகள் மற்றும் திரும்பும் முகவரி ஆகியவை அடங்கும். அழைப்பு வரிசையை சாதாரண அறிவுறுத்தல்களின் வரிசையால் செயல்படுத்த முடியும் (குறைக்கப்பட்ட அறிவுறுத்தல் தொகுப்பு கணினி (RISC) மற்றும் மிக நீண்ட அறிவுறுத்தல் சொல் (VLIW) கட்டமைப்புகளில் இன்னும் பயன்படுத்தப்படும் ஒரு அணுகுமுறை), ஆனால் 1960 களின் பிற்பகுதியில் இருந்து வடிவமைக்கப்பட்ட பல பாரம்பரிய இயந்திரங்கள் அந்த நோக்கத்திற்காக சிறப்பு அறிவுறுத்தல்களை உள்ளடக்கியுள்ளன. அழைப்பு அடுக்கு பொதுவாக நினைவகத்தின் தொடர்ச்சியான பகுதியாக செயல்படுத்தப்படுகிறது. அடுக்கின் அடிப்பகுதி இந்த பகுதிக்குள் மிகக் குறைந்த அல்லது மிக உயர்ந்த முகவரியா என்பது ஒரு தன்னிச்சையான வடிவமைப்பு தேர்வாகும், இதனால் அடுக்கு நினைவகத்தில் முன்னோக்கி அல்லது பின்னோக்கி வளரக்கூடும்; இருப்பினும், பல கட்டமைப்புகள் பிந்தையதைத் தேர்ந்தெடுத்தன. சில வடிவமைப்புகள், குறிப்பாக சில ஃபோர்த் செயலாக்கங்கள், இரண்டு தனித்தனி அடுக்குகளைப் பயன்படுத்தின, ஒன்று முக்கியமாக கட்டுப்பாட்டு தகவல்களுக்கும் (திரும்பும் முகவரிகள் மற்றும் லூப் கவுண்டர்கள் போன்றவை) மற்றொன்று தரவுகளுக்கும் பயன்படுத்தப்பட்டது. முந்தையது ஒரு அழைப்பு அடுக்காக இருந்தது அல்லது வேலை செய்தது மற்றும் பிற மொழி கட்டமைப்புகள் மூலம் புரோகிராமருக்கு மறைமுகமாக மட்டுமே அணுகக்கூடியதாக இருந்தது, அதே நேரத்தில் பிந்தையது மிகவும் நேரடியாக அணுகக்கூடியதாக இருந்தது. அடுக்கு அடிப்படையிலான செயல்முறை அழைப்புகள் முதன்முதலில் அறிமுகப்படுத்தப்பட்டபோது, விலைமதிப்பற்ற நினைவகத்தை சேமிப்பதே ஒரு முக்கியமான உந்துதலாக இருந்தது. இந்த திட்டத்தின் மூலம், ஒவ்வொரு செயல்முறையின் தனிப்பட்ட தரவுகளுக்கும் (அளவுருக்கள், திரும்பும் முகவரி மற்றும் உள்ளூர் மாறிகள்) தொகுப்பாளர் நினைவகத்தில் தனி இடத்தை ஒதுக்க வேண்டியதில்லை. எந்த நேரத்திலும், அடுக்கில் தற்போது செயலில் உள்ள அழைப்புகளின் தனிப்பட்ட தரவு மட்டுமே உள்ளது (அதாவது, அவை அழைக்கப்பட்டுள்ளன, ஆனால் இன்னும் திரும்பவில்லை). நிரல்கள் வழக்கமாக நூலகங்களிலிருந்து கூடியிருந்த வழிகளின் காரணமாக, ஆயிரக்கணக்கான செயல்பாடுகளை உள்ளடக்கிய நிரல்களைக் கண்டுபிடிப்பது வழக்கத்திற்கு மாறானது அல்ல, அவற்றில் ஒரு சில மட்டுமே எந்த நேரத்திலும் செயலில் உள்ளன. இத்தகைய நிரல்களுக்கு, அழைப்பு அடுக்கு பொறிமுறை குறிப்பிடத்தக்க அளவு நினைவகத்தை சேமிக்க முடியும். உண்மையில், அழைப்பு அடுக்கு பொறிமுறையை தானியங்கி நினைவக மேலாண்மைக்கு ஆரம்ப மற்றும் எளிய முறையாகக் காணலாம். இருப்பினும், அழைப்பு அடுக்கு முறையின் மற்றொரு நன்மை என்னவென்றால், இது தொடர்ச்சியான செயல்பாட்டு அழைப்புகளை அனுமதிக்கிறது, ஏனெனில் அதே செயல்முறைக்கு ஒவ்வொரு உள்ளமைக்கப்பட்ட அழைப்பும் அதன் தனிப்பட்ட தரவின் தனி நிகழ்வைப் பெறுகிறது. பல திரைகள் கொண்ட சூழலில், பொதுவாக ஒன்றுக்கு மேற்பட்ட அடுக்குகள் உள்ளன. கோரோடின்கள் அல்லது சோம்பேறி மதிப்பீட்டை முழுமையாக ஆதரிக்கும் ஒரு சூழல் அவற்றின் செயல்படுத்தும் பதிவுகளை சேமிக்க அடுக்குகளைத் தவிர வேறு தரவு கட்டமைப்புகளைப் பயன்படுத்தலாம். தாமதமான அடுக்குதல் அழைப்பு அடுக்கு பொறிமுறையின் ஒரு குறைபாடு ஒரு செயல்முறை அழைப்பின் அதிகரித்த செலவு மற்றும் அதன் பொருந்தக்கூடிய வருவாய் ஆகும். கூடுதல் செலவில் ஸ்டேக் சுட்டிக்காட்டியை அதிகரிப்பது மற்றும் குறைப்பது (மற்றும், சில கட்டமைப்புகளில், ஸ்டேக் ஓவர்ஃப்ளோவைச் சரிபார்ப்பது), மற்றும் முழுமையான முகவரிகளுக்கு பதிலாக, பிரேம்-ரிலேட்டிவ் முகவரிகளால் உள்ளூர் மாறிகள் மற்றும் அளவுருக்களை அணுகுவது ஆகியவை அடங்கும். அதிகரித்த செயலாக்க நேரம் அல்லது அதிகரித்த செயலி சிக்கல் அல்லது இரண்டிலும் செலவு உணரப்படலாம். இந்த மேல்நிலை இலை நடைமுறைகள் அல்லது இலை செயல்பாடுகளில் மிகவும் வெளிப்படையானது மற்றும் ஆட்சேபிக்கத்தக்கது, அவை எந்த செயல்முறையையும் செய்யாமல் திரும்பி வருகின்றன. அந்த மேல்நிலையைக் குறைக்க, பல நவீன தொகுப்பான்கள் அழைப்பு அடுக்கைப் பயன்படுத்துவதை உண்மையில் தேவைப்படும் வரை தாமதப்படுத்த முயற்சிக்கின்றன. எடுத்துக்காட்டாக, ஒரு செயல்முறை P இன் அழைப்பு சில செயலி பதிவேடுகளில் அழைக்கப்படும் செயல்முறையின் திரும்பும் முகவரி மற்றும் அளவுருக்களை சேமிக்கலாம், மேலும் ஒரு எளிய தாவல் மூலம் செயல்முறையின் உடலுக்கு கட்டுப்பாட்டை மாற்றலாம். செயல்முறை பி வேறு எந்த அழைப்பையும் செய்யாமல் திரும்பினால், அழைப்பு அடுக்கு பயன்படுத்தப்படாது. பி மற்றொரு செயல்முறை கியூவை அழைக்க வேண்டும் என்றால், அது கியூ திரும்பிய பிறகு தேவைப்படும் எந்தவொரு பதிவேடுகளின் உள்ளடக்கங்களையும் (திரும்பும் முகவரி போன்றவை) சேமிக்க அழைப்பு அடுக்கைப் பயன்படுத்தும். எடுத்துக்காட்டுகள் சி மற்றும் சி + + நிரலாக்க மொழிகளில், துணை நிரல்கள் செயல்பாடுகள் என்று அழைக்கப்படுகின்றன (ஒரு வகுப்புடன் தொடர்புடையபோது உறுப்பினர் செயல்பாடுகள் அல்லது இல்லாதபோது இலவச செயல்பாடுகள் என மேலும் வகைப்படுத்தப்படுகின்றன). ஒரு செயல்பாடு எந்த மதிப்பையும் திருப்பித் தராது என்பதைக் குறிக்க இந்த மொழிகள் சிறப்பு முக்கிய வார்த்தையான வெற்றிடத்தைப் பயன்படுத்துகின்றன. சி/சி + + செயல்பாடுகள் பக்க விளைவுகளை ஏற்படுத்தக்கூடும் என்பதை நினைவில் கொள்ளுங்கள், இதில் முகவரிகள் அளவுருக்களாக அனுப்பப்படும் எந்த மாறிகளையும் மாற்றியமைப்பது உட்பட. எடுத்துக்காட்டுகள்ஃ வெற்றிட செயல்பாடு1 () {/* சில குறியீடு */} செயல்பாடு ஒரு மதிப்பைத் திருப்பித் தராது, மேலும் இது ஒரு தனித்த செயல்பாடாக அழைக்கப்பட வேண்டும், எ. கா., செயல்பாடு1 (); இன்ட் செயல்பாடு2 () {ரிட்டர்ன் 5;} இந்த செயல்பாடு ஒரு முடிவை (எண் 5) தருகிறது, மேலும் அழைப்பு ஒரு வெளிப்பாட்டின் ஒரு பகுதியாக இருக்கலாம், எ. கா., x + செயல்பாடு2 () சார் செயல்பாடு3 (இன்ட் எண்) {சார் தேர்வு [] = {'S', 'M', 'T', 'W', 'T', 'F', 'S'}; ரிட்டர்ன் தேர்வு [எண்];} இந்த செயல்பாடு 0 மற்றும் 6 க்கு இடையில் ஒரு எண்ணை ஆரம்ப எழுத்தில் மாற்றுகிறது. அதை அழைப்பதன் விளைவாக ஒரு மாறிக்கு ஒதுக்கப்படலாம், எ. கா., num _ திநம் = செயல்பாடு 3 (எண்); இந்த செயல்பாடு ஒரு மதிப்பைத் திருப்பித் தராது, ஆனால் அதன் முகவரி அளவுருவாக அனுப்பப்படும் மாறியை மாற்றியமைக்கிறது; இது செயல்பாடு 4 (& மாறி _ முதல் _ அதிகரிப்பு) உடன் அழைக்கப்படும். அடிப்படை பேச்சுவழக்குகள் மைக்ரோசாஃப்ட் ஸ்மால் பேசிக் எடுத்துக்காட்டு () 'சப்ரூட்டின் துணை உதாரணத்தை அழைக்கிறது' சப்ரூட்டின் TextWindow.WriteLine ஐத் தொடங்குகிறது ("இது மைக்ரோசாஃப்ட் ஸ்மால் பேசிக் இல் உள்ள சப்ரூட்டினுக்கு ஒரு எடுத்துக்காட்டு"). 'சப்ரூட்டின் எண்ட்சப் என்ன செய்கிறது' என்பது சப்ரூட்டினை முடிக்கிறது மேலே உள்ள எடுத்துக்காட்டில், எடுத்துக்காட்டு () சப்ரூட்டினை அழைக்கிறது. உண்மையான சப்ரூட்டினை வரையறுக்க, சப் முக்கிய சொல் பயன்படுத்தப்பட வேண்டும், சப் பின்வரும் சப்ரூட்டின் பெயருடன். உள்ளடக்கம் பின்பற்றப்பட்ட பிறகு, எண்ட்சப் தட்டச்சு செய்யப்பட வேண்டும். விஷுவல் பேசிக் (கிளாசிக்) விஷுவல் பேசிக் (கிளாசிக்) மொழியில், துணை நிரல்கள் செயல்பாடுகள் அல்லது துணை (அல்லது ஒரு வகுப்புடன் தொடர்புடைய முறைகள்) என்று அழைக்கப்படுகின்றன. விஷுவல் பேசிக் 6 ஒரு அளவுருவாக அனுப்பப்படுவதை வரையறுக்க வகைகள் எனப்படும் பல்வேறு சொற்களைப் பயன்படுத்துகிறது. முன்னிருப்பாக, குறிப்பிடப்படாத மாறி ஒரு மாறுபாடு வகையாக பதிவு செய்யப்படுகிறது மற்றும் பைரெஃப் (இயல்புநிலை) அல்லது பைவால் என அனுப்பப்படலாம். மேலும், ஒரு செயல்பாடு அல்லது துணை அறிவிக்கப்படும்போது, அதற்கு ஒரு பொது, தனியார் அல்லது நண்பர் பதவி வழங்கப்படுகிறது, இது அது அறிவிக்கப்பட்ட தொகுதி அல்லது திட்டத்திற்கு வெளியே அணுக முடியுமா என்பதை தீர்மானிக்கிறது. மதிப்பு மூலம் [பைவால்]-முகவரியை அனுப்புவதற்குப் பதிலாக, மதிப்பின் நகலை அனுப்புவதன் மூலம் ஒரு வாதத்தின் மதிப்பை ஒரு நடைமுறைக்கு அனுப்பும் வழி. இதன் விளைவாக, மாறியின் உண்மையான மதிப்பை அது அனுப்பப்படும் செயல்முறையால் மாற்ற முடியாது. குறிப்பு மூலம் [பைரஃப்]-ஒரு வாதத்தின் மதிப்பை அதன் மதிப்பின் நகலை அனுப்புவதற்குப் பதிலாக, மாறியின் முகவரியை அனுப்புவதன் மூலம் ஒரு செயல்முறைக்கு அனுப்பும் வழி. இது நடைமுறையை உண்மையான மாறியை அணுக அனுமதிக்கிறது. இதன் விளைவாக, மாறியின் உண்மையான மதிப்பை அது அனுப்பப்படும் செயல்முறையால் மாற்ற முடியும். வேறுவிதமாகக் குறிப்பிடப்படாவிட்டால், வாதங்கள் குறிப்பு மூலம் நிறைவேற்றப்படுகின்றன. பொது (விருப்பமானது)-செயல்பாட்டு நடைமுறை அனைத்து தொகுதிகளிலும் உள்ள மற்ற அனைத்து நடைமுறைகளுக்கும் அணுகக்கூடியது என்பதைக் குறிக்கிறது. ஒரு ஆப்ஷன் பிரைவேட் கொண்ட ஒரு தொகுதியில் பயன்படுத்தப்பட்டால், செயல்முறை திட்டத்திற்கு வெளியே கிடைக்காது. தனியார் (விருப்பமானது)-செயல்பாட்டு செயல்முறை அது அறிவிக்கப்பட்ட தொகுதியில் உள்ள பிற நடைமுறைகளுக்கு மட்டுமே அணுகக்கூடியது என்பதைக் குறிக்கிறது. ஃப்ரெண்ட் (விருப்பப்படி)-ஒரு வகுப்பு தொகுதியில் மட்டுமே பயன்படுத்தப்படுகிறது. செயல்பாட்டு செயல்முறை திட்டம் முழுவதும் தெரியும், ஆனால் ஒரு பொருளின் நிகழ்வின் கட்டுப்பாட்டாளருக்கு தெரியவில்லை என்பதைக் குறிக்கிறது. தனியார் செயல்பாடு செயல்பாடு 1 () 'சில குறியீடு இங்கே முடிவு செயல்பாடு செயல்பாடு ஒரு மதிப்பைத் திருப்பித் தராது மற்றும் ஒரு தனித்த செயல்பாடு என்று அழைக்கப்பட வேண்டும், எ. கா., செயல்பாடு 1 தனியார் செயல்பாடு செயல்பாடு 2 () முழு எண் செயல்பாடு 2 = 5 இறுதி செயல்பாடு இந்த செயல்பாடு ஒரு முடிவை (எண் 5) தருகிறது, மேலும் அழைப்பு ஒரு வெளிப்பாட்டின் ஒரு பகுதியாக இருக்கலாம், எ. கா., x + செயல்பாடு 2 () தனியார் செயல்பாடு செயல்பாடு 3 (முழு எண்ணாக பைவல் இன்ட்வால்யூ) ஸ்ட்ரிங் டிம் ஸ்ட்ரேரே (6) ஸ்ட்ரிங் ஸ்ட்ரேரே = அரே (எம், டி, டபிள்யூ, டி, எஃப், எஸ். அதை அழைப்பதன் விளைவாக ஒரு மாறிக்கு ஒதுக்கப்படலாம், எ. கா., num _ திநம் = செயல்பாடு 3 (எண்). தனியார் செயல்பாடு செயல்பாடு 4 (பைரெஃப் இன்ட்வெல்யூ முழு எண்ணாக) intValue = intValue + 1 முடிவு செயல்பாடு இந்த செயல்பாடு ஒரு மதிப்பைத் திருப்பித் தராது, ஆனால் அதன் முகவரி அளவுருவாக அனுப்பப்படும் மாறியை மாற்றியமைக்கிறது; இது "செயல்பாடு 4 (மாறி _ க்கு _ அதிகரிப்பு)" என்று அழைக்கப்படும். பிஎல்/ஐ இல் ஒரு அழைக்கப்படும் செயல்முறை சரம் நீளம் மற்றும் வரிசை வரம்புகள் போன்ற வாதத்தைப் பற்றிய தகவல்களை வழங்கும் ஒரு விளக்கத்தை அனுப்பலாம். இது செயல்முறையை மிகவும் பொதுவானதாக இருக்க அனுமதிக்கிறது மற்றும் புரோகிராமர் அத்தகைய தகவல்களை அனுப்ப வேண்டிய தேவையை நீக்குகிறது. முன்னிருப்பாக பிஎல்/ஐ குறிப்பு மூலம் வாதங்களை அனுப்புகிறது. இரு பரிமாண வரிசையின் ஒவ்வொரு உறுப்பின் அடையாளத்தையும் மாற்றுவதற்கான ஒரு (அற்பமான) செயல்பாடு பின்வருமாறு தோன்றலாம்ஃ மாற்ற _ அடையாளம்ஃ செயல்முறை (வரிசை); வரிசை (*, *) மிதவை என்று அறிவிக்கவும்; வரிசை =-வரிசை; இறுதி மாற்றம் _ அடையாளம்; இதை பல்வேறு வரிசைகளுடன் பின்வருமாறு அழைக்கலாம்ஃ/* முதல் வரிசை வரம்புகள்-5 முதல் + 10 வரை மற்றும் 3 முதல் 9 வரை */வரிசை 1 ஐ அறிவிக்கவும் (-5:10,3:9) மிதக்க;/* இரண்டாவது வரிசை வரம்புகள் 1 முதல் 16 வரை மற்றும் 1 முதல் 16 வரை */வரிசை 2 ஐ அறிவிக்கவும் (16,16) மிதக்க அழைப்பு மாற்று அடையாளம் (வரிசை 1); அழைப்பு மாற்றம் _ அடையாளம் (வரிசை 2); பைத்தானில் பைதான், முக்கிய சொல் டிஃப் ஒரு செயல்பாட்டை வரையறுக்க பயன்படுத்தப்படுகிறது. செயல்பாட்டின் தொகுப்பை உருவாக்கும் அறிக்கைகள் ஒரே வரியில் தொடர வேண்டும் அல்லது அடுத்த வரியில் தொடங்கி இன்டென்ட்டாக இருக்க வேண்டும். பின்வரும் எடுத்துக்காட்டு நிரல் "ஹலோ வேர்ல்ட்!" என்று அச்சிடுகிறது. அதைத் தொடர்ந்து "விக்கிப்பீடியா" அடுத்த line.def எளிய செயல்பாட்டில் (): அச்சிடவும் ('ஹலோ வேர்ல்ட்!') பிரிண்ட் ('விக்கிப்பீடியா') எளிய செயல்பாடு () #வெளியீடு பின்வருமாறு இருக்கும்ஃ ஹலோ வேர்ல்ட்! விக்கிப்பீடியா டெஃப் ஃபங்க் (பெயர்) பிரிண்ட் ("வரவேற்பு" + பெயர்) பிரிண்ட் (ஃபங்க் (மார்ட்டின்))) #output என்பதுஃ வெல்கம் மார்ட்டின் லோக்கல் மாறிகள், மறுநிகழ்வு மற்றும் மறுபிரவேசம் ஒரு துணை நிரல் ஒரு குறிப்பிட்ட அளவு கீறல் இடத்தை பயன்படுத்துவது பயனுள்ளதாக இருக்கும்; அதாவது, இடைநிலை முடிவுகளை நடத்த அந்த துணை நிரலின் செயல்பாட்டின் போது பயன்படுத்தப்படும் நினைவகம். இந்த கீறல் இடத்தில் சேமிக்கப்படும் மாறிகள் உள்ளூர் மாறிகள் என்று அழைக்கப்படுகின்றன, மேலும் கீறல் இடம் செயல்படுத்தும் பதிவு என்று அழைக்கப்படுகிறது. ஒரு செயல்படுத்தும் பதிவு பொதுவாக ஒரு திரும்பும் முகவரியைக் கொண்டுள்ளது, இது துணை நிரல் முடிவடையும் போது கட்டுப்பாட்டை எங்கு அனுப்ப வேண்டும் என்பதைக் கூறுகிறது. ஒரு துணை நிரல் அழைப்பு தளங்களின் எந்த எண்ணையும் தன்மையையும் கொண்டிருக்கலாம். மறுநிகழ்வு ஆதரிக்கப்பட்டால், ஒரு துணை நிரல் தன்னைத்தானே அழைக்கலாம், இதனால் அதன் செயல்பாடு இடைநிறுத்தப்படலாம், அதே துணை நிரலின் மற்றொரு உள்ளமைக்கப்பட்ட செயல்பாடு நிகழ்கிறது. சில சிக்கலான வழிமுறைகளை எளிமைப்படுத்துவதற்கும் சிக்கலான சிக்கல்களை உடைப்பதற்கும் மறுநிகழ்வு ஒரு பயனுள்ள வழிமுறையாகும். தொடர்ச்சியான மொழிகள் பொதுவாக ஒவ்வொரு அழைப்பிலும் உள்ளூர் மாறிகளின் புதிய நகலை வழங்குகின்றன. புரோகிராமர் உள்ளூர் மாறிகளின் மதிப்பு அழைப்புகளுக்கு இடையில் ஒரே மாதிரியாக இருக்க விரும்பினால், அவை சில மொழிகளில் நிலையானவை என்று அறிவிக்கப்படலாம், அல்லது உலகளாவிய மதிப்புகள் அல்லது பொதுவான பகுதிகளைப் பயன்படுத்தலாம். ஃபிபோனாச்சி எண்களைக் கண்டறிய சி/சி + + இல் ஒரு மறுநிகழ்வு செயல்பாட்டின் எடுத்துக்காட்டு இங்கேஃ இன்ட் ஃபைப் (இன்ட் என்) {என்றால் (என் <= 1) {ரிட்டர்ன் என்;} ரிட்டர்ன் ஃபைப் (என்-1) + ஃபைப் (என்-2);} ஃபோர்ட்ரான் போன்ற ஆரம்பகால மொழிகள் ஆரம்பத்தில் மறுநிகழ்வை ஆதரிக்கவில்லை, ஏனெனில் மாறிகள் நிலையான முறையில் ஒதுக்கப்பட்டன, அதே போல் திரும்பும் முகவரிக்கான இருப்பிடமும். ஆரம்பகால கணினி அறிவுறுத்தல் தொகுப்புகள் திரும்பும் முகவரிகள் மற்றும் மாறிகளை ஒரு அடுக்கில் சேமிப்பதை கடினமாக்கியது. குறியீட்டு பதிவேடுகள் அல்லது பொது நோக்க பதிவேடுகள் கொண்ட இயந்திரங்கள், எ. கா., சி. டி. சி 6000 தொடர், பி. டி. பி-6, ஜி. இ 635, சிஸ்டம்/360, யுனிவாக் 1100 தொடர், அந்த பதிவேடுகளில் ஒன்றை அடுக்கு சுட்டியாகப் பயன்படுத்தலாம். ALGOL க்குப் பிறகு பிஎல்/ஐ மற்றும் சி போன்ற நவீன மொழிகள் கிட்டத்தட்ட ஒரு அடுக்கைப் பயன்படுத்துகின்றன, பொதுவாக பெரும்பாலான நவீன கணினி அறிவுறுத்தல் தொகுப்புகளால் ஆதரிக்கப்படுகின்றன, இது ஒரு துணை நிரலின் ஒவ்வொரு செயல்பாட்டிற்கும் ஒரு புதிய செயல்படுத்தும் பதிவை வழங்குகிறது. அந்த வகையில், இடைநீக்கம் செய்யப்பட்ட பிற மரணதண்டனைகளின் விளைவைப் பற்றி கவலைப்படாமல் அதன் உள்ளூர் மாறிகளை மாற்றியமைக்க நெஸ்டட் மரணதண்டனை இலவசம். நெஸ்டட் அழைப்புகள் குவிந்தால், ஒரு அழைப்பு அடுக்கு அமைப்பு உருவாகிறது, இது இடைநீக்கம் செய்யப்பட்ட ஒவ்வொரு துணை நிரலுக்கும் ஒரு செயல்படுத்தும் பதிவைக் கொண்டுள்ளது. உண்மையில், இந்த அடுக்கு அமைப்பு கிட்டத்தட்ட எங்கும் உள்ளது, எனவே செயல்படுத்தும் பதிவுகள் பொதுவாக அடுக்கு பிரேம்கள் என்று அழைக்கப்படுகின்றன. பாஸ்கல், பி. எல்/ஐ மற்றும் அடா போன்ற சில மொழிகளும் நெஸ்டட் செயல்பாடுகளை ஆதரிக்கின்றன, அவை வெளிப்புற (பெற்றோர்) செயல்பாட்டின் எல்லைக்குள் மட்டுமே அழைக்கக்கூடிய செயல்பாடுகளாகும். உள் செயல்பாடுகள் அவற்றை அழைக்கும் வெளிப்புற செயல்பாட்டின் உள்ளூர் மாறிகளுக்கு அணுகலைக் கொண்டுள்ளன. டிஸ்ப்ளே என்றும் அழைக்கப்படும் ஆக்டிவேஷன் ரெக்கார்டுக்குள் கூடுதல் சூழல் தகவல்களைச் சேமிப்பதன் மூலம் இது நிறைவேற்றப்படுகிறது. அதே துணை நிரலின் மற்றொரு செயல்படுத்தல் ஏற்கனவே நடந்து கொண்டிருக்கும்போது கூட ஒரு துணை நிரலை சரியாக செயல்படுத்த முடிந்தால், அந்த துணை நிரல் மறுபிரவேசம் என்று கூறப்படுகிறது. ஒரு மறுநிகழ்வு துணை நிரல் மறுபிரவேசமாக இருக்க வேண்டும். பல இழைகள் ஒருவருக்கொருவர் தலையிடும் பயம் இல்லாமல் ஒரே துணை நிரலை அழைக்க முடியும் என்பதால், பல இழைகள் கொண்ட சூழ்நிலைகளிலும் மறுபயன்பாட்டு துணை நிரல்கள் பயனுள்ளதாக இருக்கும். ஐபிஎம் சிஐசிஎஸ் பரிவர்த்தனை செயலாக்க அமைப்பில், அரை-நுழைவு சற்று குறைவான கட்டுப்பாடாக இருந்தது, ஆனால் ஒத்த, பல நூல்களால் பகிரப்பட்ட பயன்பாட்டு நிரல்களுக்கான தேவை. வலுவாக தட்டச்சு செய்யப்பட்ட மொழிகளில், சில நேரங்களில் ஒரே பெயரில் பல செயல்பாடுகளைக் கொண்டிருப்பது விரும்பத்தக்கது, ஆனால் வெவ்வேறு வகையான தரவுகளில் அல்லது வெவ்வேறு அளவுரு சுயவிவரங்களுடன் செயல்படுகிறது. எடுத்துக்காட்டாக, ஒரு வர்க்கமூல செயல்பாடு யதார்த்தங்கள், சிக்கலான மதிப்புகள் அல்லது மேட்ரிக்ஸ்களில் செயல்பட வரையறுக்கப்படலாம். ஒவ்வொரு சந்தர்ப்பத்திலும் பயன்படுத்தப்பட வேண்டிய வழிமுறை வேறுபட்டது, மேலும் ரிட்டர்ன் ரிசல்ட் வேறுபட்டிருக்கலாம். ஒரே பெயரில் மூன்று தனித்தனி செயல்பாடுகளை எழுதுவதன் மூலம், புரோகிராமர் ஒவ்வொரு வகை தரவுகளுக்கும் வெவ்வேறு பெயர்களை நினைவில் கொள்ள வேண்டியதில்லை. மேலும், நேர்மறை மற்றும் எதிர்மறை யதார்த்தங்களைப் பிரிக்க, யதார்த்தங்களுக்கு ஒரு துணை வகையை வரையறுக்க முடிந்தால், யதார்த்தங்களுக்கு இரண்டு செயல்பாடுகளை எழுதலாம், ஒன்று அளவுரு நேர்மறையாக இருக்கும்போது யதார்த்தத்தை திருப்பித் தருகிறது, மற்றொன்று அளவுரு எதிர்மறையாக இருக்கும்போது சிக்கலான மதிப்பைத் தருகிறது. பொருள் சார்ந்த நிரலாக்கத்தில், ஒரே பெயரில் தொடர்ச்சியான செயல்பாடுகள் வெவ்வேறு அளவுரு சுயவிவரங்கள் அல்லது வெவ்வேறு வகைகளின் அளவுருக்களை ஏற்றுக்கொள்ளும்போது, ஒவ்வொரு செயல்பாடுகளும் மிகைப்படுத்தப்பட்டதாகக் கூறப்படுகிறது. சி + + இல் செயல்பாட்டு ஓவர்லோடிங்கின் ஒரு எடுத்துக்காட்டு இங்கே உள்ளது, ஒரே பெயரில் (பகுதி) ஆனால் வெவ்வேறு அளவுருக்களுடன் இரண்டு செயல்பாடுகளை செயல்படுத்துவதை நிரூபிக்கிறதுஃ #include <ஐயோஸ்ட்ரீம்> இரட்டை பகுதி (இரட்டை எச், இரட்டை டபிள்யூ) {ரிட்டர்ன் எச் * டபிள்யூ;}/* முதல் பகுதி செயல்பாடு ஒரு செவ்வகத்தின் பரப்பளவைக் கண்டுபிடிப்பதாகும், * எனவே இது உயரம் மற்றும் அகலத்திற்கு இரண்டு எண்களை அளவுருக்களாக ஏற்றுக்கொள்கிறது. */இரட்டை பரப்பளவு (இரட்டை r) {திரும்ப r * r * 3.14;}/* இரண்டாவது பரப்பளவு செயல்பாடு ஒரு வட்டத்தின் பரப்பளவைக் கண்டுபிடிப்பதாகும், எனவே இது ஆரத்திற்கு ஒரு எண்ணை மட்டுமே அளவுருவாக ஏற்றுக்கொள்கிறது. */int பிரதான () {இரட்டை செவ்வக பகுதி = பரப்பளவு (3,4);// இது முதல் பகுதி செயல்பாட்டை அழைக்கிறது, ஏனெனில் இரண்டு அளவுருக்கள் வழங்கப்பட்டுள்ளன. இரட்டை வட்டம் _ பகுதி = பகுதி (5);// இது இரண்டாவது பகுதி செயல்பாட்டை அழைக்கிறது, ஏனெனில் ஒரு அளவுரு மட்டுமே வழங்கப்படுகிறது. std:: cout <<ஒரு செவ்வகத்தின் பரப்பளவு "<<செவ்வக பகுதி <<std:: எண்டில்; std:: cout <<" ஒரு வட்டத்தின் பரப்பளவு "<<வட்டம் பகுதி <<std:: எண்டில்;} மற்றொரு எடுத்துக்காட்டாக, ஒரு செயல்பாடு திசைகளை ஏற்றுக்கொண்டு, திரையில் இந்த புள்ளிகளுக்கு அதன் பாதையை கண்டுபிடிக்கும் ஒரு பொருளை உருவாக்கலாம். கட்டமைப்பாளருக்கு அனுப்பக்கூடிய ஏராளமான அளவுருக்கள் உள்ளன (சுவடுகளின் நிறம், தொடங்கும் x மற்றும் y ஒருங்கிணைப்புகள், சுவடுகளின் வேகம்). புரோகிராமர் நிற அளவுருவை மட்டுமே கட்டமைப்பாளர் ஏற்றுக்கொள்ள வேண்டும் என்று விரும்பினால், அவர் நிறத்தை மட்டுமே ஏற்றுக்கொள்ளும் மற்றொரு கட்டமைப்பாளரை அழைக்கலாம், இது மற்ற அனைத்து அளவுருக்களுக்கும் இயல்புநிலை மதிப்புகளின் தொகுப்பில் கடந்து செல்லும் அனைத்து அளவுருக்களையும் கட்டமைப்பாளரை அழைக்கிறது (எக்ஸ் மற்றும் ஒய் பொதுவாக திரையில் மையமாக இருக்கும் அல்லது தோற்றத்தில் வைக்கப்படும், மேலும் வேகம் குறியீட்டாளர் தேர்ந்தெடுத்த மற்றொரு மதிப்புக்கு அமைக்கப்படும்). பல்வேறு வகையான வாதங்களுடன் அழைக்கப்படும் நுழைவு குறிப்புகளின் தொகுப்பிற்கான பொதுவான பெயரை வரையறுக்க பிஎல்/ஐ ஜெனரிக் பண்புக்கூறைக் கொண்டுள்ளது. எடுத்துக்காட்டுஃ ஜென் _ நேம் ஜெனரிக் (பெயர் எப்போது (ஃபிக்ஸ் பைனரி), ஃப்ளேம் வென் (ஃப்ளோட்), பாதை பெயர் மற்றவை); ஒவ்வொரு உள்ளீட்டிற்கும் பல வாத வரையறைகள் குறிப்பிடப்படலாம். "ஜென் _ நேம்" என்ற அழைப்பின் விளைவாக வாதம் பைனரி சரிசெய்யப்படும்போது "பெயர்", ஃப்ளோட் செய்யும் போது "ஃப்ளேம்" போன்றவற்றுக்கு அழைப்பு வரும். வாதம் பொருந்தினால் எந்தத் தேர்வும் "பாதை பெயர்" என்று அழைக்கப்படாது. ஒரு மூடல் என்பது அது உருவாக்கப்பட்ட சூழலில் இருந்து கைப்பற்றப்பட்ட அதன் சில மாறிகளின் மதிப்புகளுடன் கூடிய ஒரு துணை நிரலாகும். ஜான் மெக்கார்த்தியால் அறிமுகப்படுத்தப்பட்ட லிஸ்ப் நிரலாக்க மொழியின் குறிப்பிடத்தக்க அம்சமாக மூடல்கள் இருந்தன. செயல்படுத்துவதைப் பொறுத்து, மூடல்கள் பக்க விளைவுகளுக்கான ஒரு பொறிமுறையாக செயல்பட முடியும். மரபுகள் செயல்பாடுகளின் குறியீட்டிற்கான பல மரபுகள் உருவாக்கப்பட்டுள்ளன. அவற்றின் பெயரிடல் தொடர்பாக, பல டெவலப்பர்கள் ஒரு செயல்பாட்டின் பெயர் ஒரு குறிப்பிட்ட பணியைச் செய்யும்போது ஒரு வினைச்சொல்லாகவும், சில விசாரணைகளைச் செய்யும்போது ஒரு பெயர்ச்சொல்லாகவும், மாறிகளை மாற்றுவதற்கு பயன்படுத்தப்படும்போது ஒரு பெயர்ச்சொல்லாகவும் இருக்க வேண்டும் என்ற அணுகுமுறையை ஏற்றுக்கொண்டுள்ளனர். சில புரோகிராமர்கள் ஒரு செயல்பாடு ஒரே ஒரு பணியை மட்டுமே செய்ய வேண்டும் என்றும், ஒரு செயல்பாடு ஒன்றுக்கு மேற்பட்ட பணிகளைச் செய்தால், அதை அதிக செயல்பாடுகளாகப் பிரிக்க வேண்டும் என்றும் பரிந்துரைக்கின்றனர். குறியீடு பராமரிப்பில் செயல்பாடுகள் முக்கிய கூறுகள் என்றும், திட்டத்தில் அவற்றின் பங்கு தனித்துவமாக இருக்க வேண்டும் என்றும் அவர்கள் வாதிடுகின்றனர். மாடுலர் நிரலாக்கத்தின் (மாடுலரைசிங் கோட்) ஆதரவாளர்கள் ஒவ்வொரு செயல்பாடும் மற்ற குறியீடுகளின் மீது குறைந்தபட்ச சார்பு இருக்க வேண்டும் என்று வாதிடுகின்றனர். எடுத்துக்காட்டாக, உலகளாவிய மாறிகளின் பயன்பாடு பொதுவாக இந்த முன்னோக்கை ஆதரிப்பவர்களால் புத்திசாலித்தனமாக கருதப்படுகிறது, ஏனெனில் இது செயல்பாட்டிற்கும் இந்த உலகளாவிய மாறிகளுக்கும் இடையில் இறுக்கமான இணைப்பைச் சேர்க்கிறது. அத்தகைய இணைப்பு தேவையில்லை என்றால், அதற்கு பதிலாக நிறைவேற்றப்பட்ட அளவுருக்களை ஏற்றுக்கொள்ள மறுசீரமைப்பு செயல்பாடுகளைச் செய்வது அவர்களின் ஆலோசனையாகும். இருப்பினும், செயல்பாடுகளுக்கு அனுப்பப்படும் அளவுருக்களின் எண்ணிக்கையை அதிகரிப்பது குறியீடு வாசிப்பை பாதிக்கும். திரும்பக் குறியீடுகள் அதன் முக்கிய அல்லது இயல்பான விளைவைத் தவிர, ஒரு சப்ரூட்டின் அதன் செயல்பாட்டின் போது ஏற்பட்ட விதிவிலக்கான நிலைமைகளைப் பற்றி அழைப்பு நிரலுக்குத் தெரிவிக்க வேண்டியிருக்கலாம். சில மொழிகள் மற்றும் நிரலாக்க தரநிலைகளில், இது பெரும்பாலும் ஒரு திரும்பக் குறியீடு மூலம் செய்யப்படுகிறது, இது சில நிலையான இடத்தில் துணை நிரலால் வைக்கப்படும் ஒரு முழு மதிப்பு, இது சாதாரண மற்றும் விதிவிலக்கான நிலைமைகளை குறியாக்கம் செய்கிறது. ஐபிஎம் சிஸ்டம்/360 இல், சப்ரூட்டினிலிருந்து ரிட்டர்ன் குறியீடு எதிர்பார்க்கப்பட்ட நிலையில், ரிட்டர்ன் மதிப்பு பெரும்பாலும் 4 இன் பெருக்கமாக வடிவமைக்கப்பட்டுள்ளது-இதனால் இது ஒரு கிளை அட்டவணையில் நேரடி கிளை அட்டவணை குறியீடாகப் பயன்படுத்தப்படலாம், இது பெரும்பாலும் அழைப்பு அறிவுறுத்தலுக்குப் பிறகு உடனடியாக அமைந்துள்ளது கூடுதல் நிபந்தனை சோதனைகளைத் தவிர்க்க, செயல்திறனை மேலும் மேம்படுத்துகிறது. சிஸ்டம்/360 அசெம்பிளி மொழியில், ஒருவர் எழுதுவார், எடுத்துக்காட்டாகஃ BAL 14, SUBRTN01 ஒரு சப்ரூட்டினுக்குச் சென்று, R14 B அட்டவணையில் திரும்பும் முகவரியை சேமித்து வைக்கவும் (15) கிளை அட்டவணையை குறியிட ரெக் 15 இல் திரும்பிய மதிப்பைப் பயன்படுத்தவும், * பொருத்தமான கிளை இன்ஸ்ட்ரிக்கு கிளைக்கவும். அட்டவணை B சரி திரும்பக் குறியீடு = 00 நல்லது} B BAD திரும்பக் குறியீடு = 04 செல்லாத உள்ளீடு} கிளை அட்டவணை B பிழை திரும்பக் குறியீடு = 08 எதிர்பாராத நிலை} செயல்பாட்டு அழைப்புகளின் உகப்பாக்கம் ஒரு செயல்பாட்டை அழைப்பதில் குறிப்பிடத்தக்க இயக்க நேர மேல்நிலை உள்ளது, இதில் வாதங்களை அனுப்புதல், துணை நிரலுக்கு கிளை செய்தல் மற்றும் அழைப்பாளரிடம் மீண்டும் கிளை செய்தல் ஆகியவை அடங்கும். மேல்நிலை பெரும்பாலும் சில செயலி பதிவேடுகளைச் சேமிப்பது மற்றும் மீட்டெடுப்பது, அழைப்பு சட்டக சேமிப்பை ஒதுக்குவது மற்றும் மீட்டெடுப்பது போன்றவை அடங்கும். சில மொழிகளில், ஒவ்வொரு செயல்பாட்டு அழைப்பும் செயல்பாட்டின் திரும்பக் குறியீட்டை தானாகச் சோதிப்பதையோ அல்லது அது எழுப்பக்கூடிய விதிவிலக்குகளைக் கையாளுவதையோ குறிக்கிறது. பொருள் சார்ந்த மொழிகளில் மேல்நிலைக்கு ஒரு குறிப்பிடத்தக்க ஆதாரம் முறை அழைப்புகளுக்கு தீவிரமாக பயன்படுத்தப்படும் டைனமிக் அனுப்புதல் ஆகும். செயல்முறை அழைப்புகளின் சில வெளிப்படையான தேர்வுகள் உள்ளன, அவை நடைமுறைகள் பக்க விளைவுகளை ஏற்படுத்தக்கூடும் என்றால் பயன்படுத்த முடியாது. எடுத்துக்காட்டாக, வெளிப்பாட்டில் (f (x)-1)/(f (x) + 1), செயல்பாடு f இரண்டு முறை அழைக்கப்பட வேண்டும், ஏனெனில் இரண்டு அழைப்புகளும் வெவ்வேறு முடிவுகளைத் தரக்கூடும். மேலும், பிரிவு ஆபரேட்டரின் செயல்பாடுகளின் மதிப்பீட்டு வரிசையை வரையறுக்கும் சில மொழிகளில், x இன் மதிப்பு இரண்டாவது அழைப்புக்கு முன் மீண்டும் பெறப்பட வேண்டும், ஏனெனில் முதல் அழைப்பு அதை மாற்றியிருக்கலாம். ஒரு துணை நிரல் ஒரு பக்க விளைவை ஏற்படுத்த முடியுமா என்பதை தீர்மானிப்பது மிகவும் கடினம் (உண்மையில், ரைஸின் தேற்றத்தின் அடிப்படையில் தீர்மானிக்க முடியாதது). எனவே, அந்த தேர்வுகள் முற்றிலும் செயல்பாட்டு நிரலாக்க மொழிகளில் பாதுகாப்பாக இருக்கும்போது, வழக்கமான கட்டாய நிரலாக்கத்தின் தொகுப்பாளர்கள் பொதுவாக மோசமானதாக கருத வேண்டும். இன்லைனிங் இந்த மேல்நிலையை அகற்ற பயன்படுத்தப்படும் ஒரு முறை ஒவ்வொரு அழைப்பு தளத்திலும் துணை நிரலின் உடலின் இன்லைன் விரிவாக்கம் அல்லது இன்லைனிங் ஆகும் (செயல்பாடு மற்றும் பின்புறத்திற்கு கிளைப்பதற்கு எதிராக). இது அழைப்பு மேல்நிலையைத் தவிர்ப்பது மட்டுமல்லாமல், அந்த அழைப்பின் சூழல் மற்றும் வாதங்களை கணக்கில் எடுத்துக்கொள்வதன் மூலம் செயல்முறையின் உடலை மிகவும் திறம்பட மேம்படுத்த கம்பைலரை அனுமதிக்கிறது. செருகப்பட்ட பொருளை தொகுப்பாளரால் உகந்ததாக்கலாம். இருப்பினும், புரோகிராமில் செயல்பாட்டிற்கு ஒரே ஒரு அழைப்பு மட்டுமே இல்லையென்றால், இன்லைனிங் வழக்கமாக குறியீடு அளவை அதிகரிக்கும். ஒத்திசைவற்ற செயல்முறை அழைப்பையும் பார்க்கவும், அதன் அளவுருக்கள் பிற செயல்பாடுகளால் அமைக்கப்பட்ட பிறகு அழைக்கப்படும் ஒரு துணை நிரல் உள்ளமைக்கப்பட்ட செயல்பாடு கட்டளை-கேள்வி பிரிப்பு (CQS) கூட்டு செயல்பாடு கோரோடின்கள், இரண்டும் முக்கிய நிரல்கள் போல ஒருவருக்கொருவர் அழைக்கும் துணை நிரல்கள் மதிப்பீட்டு உத்தி நிகழ்வு கையாளுபவர், ஒரு உள்ளீட்டு நிகழ்வு அல்லது குறுக்கீடு செயல்பாட்டிற்கு பதிலளிக்கும் வகையில் அழைக்கப்படும் ஒரு துணை நிரல் (கணிதம்) செயல்பாட்டு நிரலாக்க இணைக்கப்பட்ட செயல்பாடு லாம்ப்டா செயல்பாடு (கணினி நிரலாக்கம்), ஒரு அடையாளம் காணும் முறை (கணினி நிரலாக்கம்) மாடுலர் நிரலாக்க ஆபரேட்டர் ஓவர்லோடிங் பாதுகாக்கப்பட்ட செயல்முறை சேர்க்கை குறிப்புகள் மூலக் குறியீடு கட்டுரைகள் எடுத்துக்காட்டாக சி குறியீடு ஹோலிஸம் புரோகிராமிங் கட்டமைப்புடன்