Interning (computer science)
কম্পিউটার বিজ্ঞানে, ইন্টার্নিং হল নতুন বস্তু তৈরি করার পরিবর্তে চাহিদা অনুযায়ী সমান মূল্যের বস্তুর পুনরায় ব্যবহার করা। এই সৃজনশীল প্যাটার্নটি প্রায়শই বিভিন্ন প্রোগ্রামিং ভাষায় সংখ্যা এবং স্ট্রিংয়ের জন্য ব্যবহৃত হয়। পাইথনের মতো অনেক বস্তু-ভিত্তিক ভাষায়, এমনকি আদিম প্রকার যেমন পূর্ণসংখ্যা সংখ্যাও বস্তু। বিপুল সংখ্যক পূর্ণসংখ্যা বস্তু নির্মাণের ওভারহেড এড়াতে, এই বস্তুগুলি ইন্টার্নিংয়ের মাধ্যমে পুনরায় ব্যবহার করা হয়। কাজ করার জন্য ইন্টার্নিংয়ের জন্য ইন্টার্ন করা বস্তুগুলি অবশ্যই অপরিবর্তনীয় হতে হবে, যেহেতু অবস্থা একাধিক চলকের মধ্যে ভাগ করা হয়। স্ট্রিং ইন্টার্নিং ইন্টার্নিং-এর একটি সাধারণ প্রয়োগ, যেখানে একই প্রোগ্রামে অভিন্ন মান সহ অনেক স্ট্রিংয়ের প্রয়োজন হয়। হিস্ট্রি লিস্প তার প্রতীকগুলির জন্য ইন্টার্নড স্ট্রিংয়ের ধারণাটি প্রবর্তন করেছিল। এল. আই. এস. পি 1.5 প্রোগ্রামার ম্যানুয়াল ইন্টার্ন নামে একটি ফাংশন বর্ণনা করে যা সরবরাহকৃত নামের একটি বিদ্যমান প্রতীককে মূল্যায়ন করে, অথবা যদি কোনও অস্তিত্ব না থাকে তবে সেই নামের একটি নতুন প্রতীক তৈরি করে। অন্তর্নির্মিত প্রতীকগুলির এই ধারণাটি লিস্পের আরও সাম্প্রতিক উপভাষাগুলিতে অব্যাহত রয়েছে, যেমন ক্লোজুর বিশেষ আকারে যেমন একটি (ডেফ প্রতীক) যা প্রতীক তৈরি এবং অন্তর্নির্মিত করে। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং প্যারাডাইম ইন্টার্নিং হল ফ্লাইওয়েট প্যাটার্নের একটি গুরুত্বপূর্ণ প্রক্রিয়া, যেখানে কোনও বস্তুর অভ্যন্তরীণ অবস্থা সংরক্ষণের জন্য একটি ইন্টার্নিং পদ্ধতি বলা হয় যাতে এটি বিভিন্ন বস্তুর মধ্যে ভাগ করা যায় যা বিভিন্ন বাহ্যিক অবস্থা ভাগ করে নেয়, অপ্রয়োজনীয় অনুলিপি এড়ায়। প্রোগ্রামিং ভাষা বাস্তবায়নে মেমরির ব্যবহার পরিচালনার জন্য ইন্টার্নিং একটি গুরুত্বপূর্ণ কৌশল হিসাবে অব্যাহত রয়েছে; উদাহরণস্বরূপ, জাভা ভাষা নির্দিষ্টকরণের জন্য অভিন্ন স্ট্রিং আক্ষরিক (অর্থাৎ, কোড পয়েন্টের একই ক্রম ধারণকারী আক্ষরিক) অবশ্যই স্ট্রিং শ্রেণীর একই উদাহরণকে বোঝাতে হবে, কারণ স্ট্রিং আক্ষরিকগুলি "ইন্টার্নড" যাতে অনন্য দৃষ্টান্তগুলি ভাগ করা যায়। পাইথন প্রোগ্রামিং ভাষায় ছোট পূর্ণসংখ্যাগুলি অন্তর্নির্মিত করা হয়, যদিও যার বিশদ বিবরণ ভাষা সংস্করণের উপর নির্ভরশীল। অনুপ্রেরণা ইন্টার্ন মেমরি সংরক্ষণ করে এবং এইভাবে একটি প্রোগ্রামের কর্মক্ষমতা এবং মেমরি পদচিহ্ন উন্নত করতে পারে। নেতিবাচক দিকটি হল বস্তুর বিদ্যমান মানগুলি অনুসন্ধান করার জন্য প্রয়োজনীয় সময় যা ইন্টার্ন করা হবে। আরও দেখুন ফ্লাইওয়েট প্যাটার্ন হ্যাশ কনসিং রেফারেন্স বাহ্যিক লিঙ্ক ডিজাইন প্যাটার্ন-ইউনিভার্সিটি অফ ওয়াশিংটন স্ট্রিং ইন্টার্নিং ইন পাইথন সফ্টওয়্যার অপ্টিমাইজেশন স্ট্রিং (কম্পিউটার বিজ্ঞান)