"ইনলাইন" বুঝতে আপনার ইতিহাস এবং 20 বছর আগে (এবং 30) জীবন কেমন ছিল তা বুঝতে হবে।
আমরা কম্পিউটারগুলিতে কোড লিখছিলাম যেগুলির স্মৃতি খুব কম ছিল, তাই কম্পাইলারের পক্ষে একবারে একটি প্রোগ্রাম তৈরি করা সমস্ত কোড প্রক্রিয়া করা সম্ভব ছিল না। সংকলকটিও খুব ধীর ছিল, সুতরাং আপনাকে যে কোডটি পরিবর্তন হয়নি সেগুলি পুনরায় সংকলন করতে চাইলে না - 24 ঘন্টা বাছাই করা (একটি কম্পিউটারের উপরে যেটির দাম শীর্ষের গাড়িের চেয়ে বেশি দাম হিসাবে নেওয়া হয়) কয়েকটি কোডের জন্য সমস্ত কোডটি পুনরায় কম্পাইল করার জন্য I স্বাভাবিক ছিল I কাজের উপরে থাকা.
সুতরাং প্রতিটি কোড ফাইল পৃথকভাবে একটি বস্তুর ফাইলগুলিতে সংকলিত হয়েছিল। প্রতিটি বস্তু ফাইল ফাংশনের "ঠিকানা" সহ এতে থাকা সমস্ত ফাংশনের তালিকা দিয়ে শুরু করে। কোনও অবজেক্ট ফাইলে কলটির অবস্থানের পাশাপাশি অন্যান্য অবজেক্ট ফাইলগুলিতে ডাকা সমস্ত ফাংশনের একটি তালিকাও ছিল।
কোনও লিঙ্কার প্রথমে সমস্ত অবজেক্ট ফাইলগুলি পড়ত এবং তারা যে ফাইল এবং সেখানে থাকে তার ঠিকানার সাথে তারা রফতানি করে এমন সমস্ত ফাংশনের একটি তালিকা তৈরি করে। এটি ফাংশনের ঠিকানা সহ সমস্ত "বহিরাগত" ফাংশন কলগুলি আপডেট করার সময়, সমস্ত ফর্মের প্রোগ্রাম প্রোগ্রামে আউটপুট করে পুনরায় পড়বে read
লিঙ্কার বাহ্যিক ফাংশন কলগুলির রেফারেন্সগুলি স্থির করা ব্যতীত অন্য কোনও উপায়ে সংকলকটির দ্বারা উত্পাদিত মেশিন কোডটি পরিবর্তন বা অনুকূলকরণ করতে পারেনি। লিঙ্কারটি অপারেটিং সিস্টেমের অংশ ছিল এবং বেশিরভাগ সংকলকগুলির পূর্বাভাস দেয়। লোকেরা যখন একটি নতুন সংকলক লিখেছিল তখন তাদের বর্তমান লিঙ্কারগুলির সাথে কাজ করার জন্য এবং বর্তমান অবজেক্ট ফাইলগুলির সাথে লিঙ্ক করতে সক্ষম হওয়ার প্রয়োজন ছিল, অন্যথায় সিস্টেম কল করা যায়নি।
সংকলকটি কেবলমাত্র ".c" বা ".cpp" ফাইলে কোডটি দেখেছিল এটি সমস্ত অন্তর্ভুক্ত শিরোলেখ ফাইলগুলির সাথে সংকলন করে। সুতরাং এটি অন্যান্য ".c" বা ".cpp" ফাইলগুলিতে কোডের ভিত্তিতে কোনও অপ্টিমাইজেশন করতে পারে না।
"ইনলাইন" কীওয়ার্ডটি একটি ফাংশন (পদ্ধতি) এর শিরোনামকে একটি শিরোনামের ফাইলে সংজ্ঞায়িত করার অনুমতি দেয়, সুতরাং সংকলকটিকে যে কোডটি কল করে সেটি সংকলনের সময় ফাংশনের কোডটি ব্যবহার করতে দেয়। উদাহরণস্বরূপ বলুন যে আপনি একটি ক্লাস ক্লথ অ্যান্থার। সিপিপি ফাইলে সংজ্ঞায়িত করেছেন, এই শ্রেণীর একটি "আইসপিটি" পদ্ধতি থাকবে, এতে কোডের একটি লাইন রয়েছে, ফলস্বরূপ কোনও প্রোগ্রামের পরিবর্তে কল করার পরিবর্তে ফলাফলের প্রোগ্রামের একটি বড় স্পিডআপ থাকবে , ফাংশন কলটি এই এক লাইনের সাথে প্রতিস্থাপন করা হয়েছিল।
"ইনলাইন" কীওয়ার্ডটি ফাংশন কলগুলির ব্যয়কে এড়িয়ে গিয়ে ডেটা এনক্যাপুলেশনের অনুমতি দেওয়ার একটি "সস্তা এবং সহজ" উপায় হিসাবে দেখা গিয়েছিল, এটি ছাড়া অনেক প্রোগ্রামার কেবল অবজেক্টের ব্যক্তিগত ক্ষেত্রে অ্যাক্সেস করতে পারে। (ম্যাক্রো যেখানে আরও খারাপ উপায় "ইনলাইনিং" কোড যা সেই সময়ে প্রচলিত।
এই দিনগুলিতে "লেনকারগুলি" প্রচুর কোড অপ্টিমাইজেশন করে এবং সংকলক হিসাবে কোনও কোনও দলের দ্বারা এটি লেখার ঝোঁক। সংকলকটি প্রায়শই পরীক্ষা করে কোডটি সঠিক এবং এটি "সংকুচিত" করে, মেশিন কোড তৈরির বেশিরভাগ কার্য লিঙ্কারে রেখে দেয়।