Language binding
প্রোগ্রামিং এবং সফ্টওয়্যার ডিজাইনে, বাইন্ডিং হল একটি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) যা কোনও প্রোগ্রামিং ভাষাকে বিদেশী লাইব্রেরি বা অপারেটিং সিস্টেম পরিষেবা (যা সেই ভাষার স্থানীয় নয়) ব্যবহার করার অনুমতি দেওয়ার জন্য বিশেষভাবে তৈরি আঠালো কোড সরবরাহ করে। বৈশিষ্ট্য বাইন্ডিং সাধারণত এক জিনিসের সাথে অন্য জিনিসের ম্যাপিংকে বোঝায়। সফ্টওয়্যার লাইব্রেরির প্রসঙ্গে, বাইন্ডিং হল মোড়ক গ্রন্থাগার যা দুটি প্রোগ্রামিং ভাষাকে সংযুক্ত করে, যাতে একটি ভাষার জন্য লেখা একটি গ্রন্থাগার অন্য ভাষায় ব্যবহার করা যায়। অনেক সফ্টওয়্যার লাইব্রেরি সিস্টেম প্রোগ্রামিং ভাষায় লেখা হয় যেমন সি বা সি + +। জাভা, কমন লিস্প, স্কিম, পাইথন বা লুয়ার মতো সাধারণত উচ্চ-স্তরের অন্য ভাষা থেকে এই ধরনের গ্রন্থাগারগুলি ব্যবহার করার জন্য, গ্রন্থাগারের সাথে একটি বন্ধন অবশ্যই সেই ভাষায় তৈরি করতে হবে, সম্ভবত পরিবর্তনের পরিমাণের উপর নির্ভর করে ভাষার কোডটি পুনরায় সংকলন করতে হবে। যাইহোক, বেশিরভাগ ভাষা একটি বিদেশী ফাংশন ইন্টারফেস প্রদান করে, যেমন পাইথনের এবং ওসিএএমএল-এর সিটাইপস, এবং এমবেডেবল কমন লিস্পের সিএফআই এবং ইউএফআই। উদাহরণস্বরূপ, পাইথন বাইন্ডিং ব্যবহার করা হয় যখন পাইথন থেকে কোনও উদ্দেশ্যে লেখা একটি বিদ্যমান সি লাইব্রেরি ব্যবহার করা হয়। আরেকটি উদাহরণ হল libsvn যা সাবভার্সন সফ্টওয়্যার সংগ্রহস্থল অ্যাক্সেস করার জন্য একটি এপিআই প্রদান করতে সি-তে লেখা হয়। জাভা কোডের মধ্যে থেকে সাবভার্সন অ্যাক্সেস করতে, libsvnjavhal ব্যবহার করা যেতে পারে, যা libsvn ইনস্টল হওয়ার উপর নির্ভর করে এবং জাভা এবং libsvn ভাষার মধ্যে একটি সেতু হিসাবে কাজ করে, এইভাবে একটি API প্রদান করে যা কাজটি করার জন্য libsvn থেকে ফাংশনগুলিকে আহ্বান করে। গ্রন্থাগারের বন্ধন তৈরি করার প্রধান উদ্দেশ্যগুলির মধ্যে রয়েছে সফ্টওয়্যারের পুনঃব্যবহার, বিভিন্ন ভাষায় একটি গ্রন্থাগারের পুনঃপ্রয়োগ হ্রাস করা এবং কিছু উচ্চ-স্তরের ভাষায় দক্ষতার সাথে কিছু অ্যালগরিদম বাস্তবায়নের অসুবিধা। রানটাইম এনভায়রনমেন্ট অবজেক্ট মডেল কমন অবজেক্ট রিকোয়েস্ট ব্রোকার আর্কিটেকচার (সিওআরবিএ)-ক্রস-প্ল্যাটফর্ম-ল্যাঙ্গুয়েজ মডেল কম্পোনেন্ট অবজেক্ট মডেল (সিওএম)-মাইক্রোসফ্ট উইন্ডোজ শুধুমাত্র ক্রস-ল্যাঙ্গুয়েজ মডেল ডিস্ট্রিবিউটেড কম্পোনেন্ট অবজেক্ট মডেল (ডিসিওএম)-এক্সটেনশন যা সিওএমকে নেটওয়ার্কের উপর কাজ করতে সক্ষম করে ক্রস প্ল্যাটফর্ম কম্পোনেন্ট অবজেক্ট মডেল (এক্সপিসিওএম)-মোজিলা অ্যাপ্লিকেশন ক্রস-প্ল্যাটফর্ম মডেল কমন ল্যাঙ্গুয়েজ ইনফ্রাস্ট্রাকচার-. নেট ফ্রেমওয়ার্ক ক্রস-প্ল্যাটফর্ম-ল্যাঙ্গুয়েজ মডেল Freedesktop.org ডি-বাস-ওপেন ক্রস-প্ল্যাটফর্ম-ল্যাঙ্গুয়েজ মডেল ভার্চ্যুয়াল মেশিন অ্যাপ্লিকেশন ভার্চ্যুয়াল মেশিনের তুলনা পোর্টেবল অবজেক্ট-ক্রস-প্ল্যাটফর্ম-ল্যাঙ্গুয়েজ অবজেক্ট মডেল কম্পাইলার কম্পিউটার লাইব্রেরি