অপারেন্ড

গণিতের ভাষায় অপারেন্ড ("operand") হলো কোনো গাণিতিক প্রক্রিয়ার ("operation") উপাদান। অপারেন্ডকে বলা যায়, এটা হচ্ছে সেই বস্তু বা উপাদান কিংবা রাশি যার ওপর গাণিতিক প্রক্রিয়া চালানো হয়।
নিচের পাটিগণিতীয় রাশিটিতে অপারেটর ও অপারেন্ড-এর একটি উদাহরণ দেখানো হয়েছে:
উপরের এই উদাহরণটিতে '+' চিহ্নটি যোগ নামক গাণিতিক প্রক্রিয়ার জন্য ব্যবহৃত করা হয়েছে।
এখানে অপারেন্ড "3" হচ্ছে যোগ অপারেটরের অনুসরণকারী একটি ইনপুট এবং অপারেন্ড "6" হচ্ছে অপর আরেকটি ইনপুট যা গাণিতিক প্রক্রিয়াটির জন্য আবশ্যক।
এই গাণিতিক প্রক্রিয়াটির ফলাফল হলো 9, যাকে যোজ্য 3 ও যোজক 6-এর যোগফল বা সমষ্টিও বলা হয়।
একইভাবে নিচের উদাহরণটি দেখা যাক:
বর্গমূল নামক এই গাণিতিক প্রক্রিয়ায় অপারেন্ড হলো "25", যা এই গাণিতিক প্রক্রিয়াটির ইনপুট।
সুতরাং, অপারেন্ডকে "কোনো অপারেশন বা গাণিতিক প্রক্রিয়ার ইনপুট" হিসেবেও উল্লেখ করা যায়।
অপারেন্ড জটিল আকারেরও হতে পারে। এমনকি অপারেন্ড ও অপারেটরের সমন্বয়ে গঠিত একটি রাশিমালাও অন্য আরেকটি গাণিতিক প্রক্রিয়ার অপারেন্ড হতে পারে।
উপরের রাশিমালায় গুণ নামক গাণিতিক প্রক্রিয়াটির প্রথম অপারেন্ড হলো '(3 + 5)' এবং '2' হলো এর দ্বিতীয় অপারেন্ড। এখানে, '(3 + 5)' অপারেন্ডটি নিজেই একটি রাশিমালা, যা '3' এবং '5' অপারেন্ডসহ একটি যোগ অপারেটরের সমন্বয়ে গঠিত হয়েছে।
কোন অপারেন্ডের জন্য কোন অপারেটর কিংবা কোন অপারেটরের জন্য কোন অপারেন্ড তার মূল্যায়ন নির্ভর করে গাণিতিক প্রক্রিয়ার ধারাবাহিকতার বা ক্রমের নিয়মাবলির ওপর।
উপরের রাশিমালায়, যোগ অপাটেরটি অপেক্ষা গুণ অপারেটরটির অগ্রাধিকার রয়েছে। তাই, এখানে গুণ অপারেটরটির অপারেন্ড হলো '5' এবং '2'। পক্ষান্তরে, যোগ অপারেটরটির অপারেন্ড হলো '3' এবং '5 × 2'
কোনো অপারেটরের অপারেন্ডের (অথবা অপারেন্ডগুলোর) সাপেক্ষে অপারেটরটির অবস্থানের পরিবর্তন ঘটতে পারে, যে পরিবর্তন নির্ভর করে কোন কোন গাণিতিক প্রতীক-চিহ্নাদি ব্যবহার করা হচ্ছে তার ওপর। দৈনন্দিন ব্যবহারের ক্ষেত্রে ইনফিক্স নোটেশন সর্বাধিক চোখে পড়ে এবং আমরা মূলত এই নোটেশনের মাধ্যমে লেখা রাশিমালাতেই অভ্যস্ত।। তথাপি, প্রিফিক্স নোটেশন ও পোস্টফিক্স নোটেশনের মতো আরও কয়েকটি নোটেশনের অস্তিত্ব রয়েছে। এই বিকল্প নোটেশনগুলো কম্পিউটার বিজ্ঞানে বহুল ব্যবহৃত।
নিচে তিনটি ভিন্ন ভিন্ন নোটেশনের তুলনা দেখানো হলো, যেখানে সকল ক্ষেত্রেই '1' এবং '2' এর যোগকে উপস্থাপন করা হয়েছে:
গাণিতিক রাশিমালার ক্ষেত্রে গাণিতিক প্রক্রিয়ার ক্রমকে বাম দিক থেকে ডান দিকে নির্বাহ করা হয়। রাশিমালার সর্ববাম থেকে শুরু করতে হয় এবং গাণিতিক প্রক্রিয়া ক্রম (যা বন্ধনী দিয়ে শুরু হয়ে যোগ/বিয়োগ দিয়ে শেষ হয়) অনুসারে রাশিমালার প্রথম গাণিতিক প্রক্রিয়াটি (অপারেশন) বের করা হয়। উদাহরণস্বরূপ, এই রাশিমালাটি দেখা যাক,
এখানে, প্রথম গাণিতিক প্রক্রিয়াটি নির্বাহ করতে হবে বন্ধনীর মধ্যে এবং এটি করতে হবে বন্ধনীর মধ্যে এক বা একাধিক যে রাশিমালাই পাওয়া যাক না কেন সেগুলোর প্রতিটির ওপর। সুতরাং, বাম থেকে শুরু করে ক্রমশ ডান দিকে অগ্রসর হয়ে প্রথম বন্ধনীটি (এই রাশিমালায় কেবল একটি বন্ধনীই ব্যবহার করা হয়েছে) বের করতে হবে। আর তা হলো: (2 + 2)। বন্ধনীর মধ্যে থাকা 2 নিজেই একটি রাশিমালা। পরবর্তী ধাপে যাওয়ার পূর্বেই 2-এর মান বের করতে হবে। 2-এর মান হলো 4। এই মানটি বের করার পর আমরা যে রাশিমালাটি পাব, তা দেখতে নিম্নরূপ হবে:
পরবর্তী ধাপে, স্বয়ং বন্ধনীর ভেতর থাকা রাশিমালাটির মান বের করতে হবে। তা হলো (2 + 4) = 6। এবার যে রাশিমালাটি পাব তা হবে:
রাশিমালার বন্ধনী অংশের হিসাব করার পর পুনরায় সর্ববাম থেকে শুরু করে ক্রমান্বয়ে ডানে যেতে হবে। নিয়ম মোতাবেক পরবর্তী গাণিতিক প্রক্রিয়াটি হচ্ছে সূচক। এই রাশিমালাটির (এই অনুচ্ছেদের উপরের) সর্ববামে যে সংখ্যাটি পাওয়া যায় তা হলো 4, এরপর সূচকের সন্ধানে ডানে গেলে রাশিমালাটির অন্তর্গত আরেকটি (এক্ষেত্রে কেবল একটিই) রাশিমালার দেখা পাওয়া যায়, যাকে আবার একটি সূচক সহকারে প্রকাশ করা হয়েছে। আর সূচকযুক্ত এই রাশিমালাটি হলো 2। এখন, 2-এর যে মান আমরা পাব তা হলো 4। তাহলে পরবর্তীতে আমরা যে রাশিমালাটি পাচ্ছি তা হবে:
গাণিতিক প্রক্রিয়ার পরবর্তী ধাপটি হলো গুণ। এখানে 4 × 4 হবো 16। তাহলে রাশিমালাটি এবার দেখতে নিম্নরূপ হবে:
গাণিতিক প্রক্রিয়ার ক্রমানুসারে পরবর্তী ধাপটি হলো ভাগ। কিন্তু, 16 − 6 রাশিমালায় ভাগ অপারেটরের কোনো চিহ্ন (÷) না থাকায় পরবর্তী ধাপগুলোতে অগ্রসর হতে হবে; পরবর্তী ধাপগুলো হচ্ছে যোগ ও বিয়োগ এবং এদের ক্ষেত্রেও বাম থেকে ডানে ধারাবাহিকতা মেনে চলতে হবে।
সুতরাং, মূল রাশিমালাটির অর্থাৎ (4 × 2 − (2 + 2) এর মান হচ্ছে 10।
প্রতিষ্ঠিত রীতির মাধ্যমে নির্ধারণকৃত নিয়মাবলি অনুসারে গাণিতিক প্রক্রিয়ার ধারাবাহিকতা মেনে চলা এবং তদনুসারে তা নির্বাহ করা অত্যাবশ্যক ও গুরুত্বপূর্ণ। কোনো রাশিমালার মান নির্ণয় করতে গিয়ে যদি গাণিতিক প্রক্রিয়ার সঠিক ধারাবাহিকতা মেনে চলা না হয়, তাহলে ভিন্ন একটি মানের সম্মুখীন হতে হবে। পৃথক ঐ মানটি হবে ভুল মান বা ভুল উত্তর, কারণ এতে গাণিতিক প্রক্রিয়ার সঠিক ক্রম বা ধারাবাহিকতা মেনে চলা হয়নি। কোনো রাশিমালার প্রকৃত বা নির্ভুল মান তখনই পাওয়া যাবে, যদি এবং কেবল যদি রাশিমালাটির অন্তর্গত প্রতিটি গাণিতিক প্রক্রিয়া সঠিক ক্রমানুসারে সম্পন্ন করা হয়।
একটি অপারেটর যতসংখ্যক অপারেন্ড ধারণ করে সেই সংখ্যাই ঐ অপারেটরের অ্যারিটি। অ্যারিটি হলো একটি গাণিতিক প্রক্রিয়ার জন্য অত্যাবশ্যকীয় ন্যূনতম আর্গুমেন্ট বা অপারেন্ডের সংখ্যা। অ্যারিটির ভিত্তিতে অপারেটরগুলোকে মূলত "nullary" (অপারেন্ড অনুপস্থিত), "unary" (১টি অপারেন্ড), "binary" (২টি অপারেন্ড), "ternary" (৩টি অপারেন্ড)-এ শ্রেণিবিন্যস্ত করা হয়। উচ্চতর অ্যারিটিগুলোকে নির্দিষ্ট পদের মাধ্যমে খুব কমই নামকরণ করা হয়। আর যেহেতু ফাংশন কম্পোজিশন বা কারিকরণের ("Haskell Curry" প্রবর্তিত কৌশলবিশেষ) মাধ্যমে উচ্চতর অ্যারিটিগুলোকে এড়ানো সম্ভব, সে কারণেও এদের নামকরণ খুব একটা করা হয় না। অ্যারিটির জন্য অন্যান্য যেসব পদ বা পরিভাষা ব্যবহার করা হয় সেগুলোর কয়েকটি নিম্নরূপ (বন্ধনীর মধ্যে আবদ্ধ সংখ্যা অপারেন্ডের সংখ্যা নির্দেশ করছে):
কম্পিউটারের প্রোগ্রামিং ভাষার অপারেটর এবং অপারেন্ড-এর সংজ্ঞা প্রায় গণিতের সংজ্ঞারই অনুরূপ।
কম্পিউটিংয়ের ক্ষেত্রে, অপারেন্ড হলো কম্পিউটারের নির্দেশমালার সেই অংশ, যা নির্ধারণ করে দেয় কোন উপাত্তটি ম্যানুপিউলেটেড বা অপারেটেড হবে, যেখানে একই সময়ে এটি (অপারেন্ডটি) স্বয়ং সেই উপাত্তের প্রতিনিধিত্ব করবে। কম্পিউটারের একটি নির্দেশনায় যেখানে X-এর যোগের অথবা গুণের কথা বলা হয়, সেখানে অপারেন্ড (অথবা অপারেন্ডগুলো, যেহেতু একাধিক অপারেন্ডের উপস্থিতি সম্ভব) নির্ধারণ করে দেয় কোন X-টিকে এর (X-এর) মান দিয়ে অপারেট করা হবে।
উপরন্তু, কম্পিউটারের অ্যাসেম্বলি ভাষায় অপারেন্ড হলো একটি মান (আর্গুমেন্ট), যার ওপর কম্পিউটারের নির্দেশনা ("instruction") পরিচালিত বা অপারেট হয়, যেখানে এই নির্দেশনা নেমনিকের মাধ্যমে নামাঙ্কিত। কম্পিউটারের ক্ষেত্রে অপারেন্ড হতে পারে একটি প্রসেসর রেজিস্টার, এটি হতে পারে একটি মেমোরি অ্যাড্রেস কিংবা এটি হতে পারে একটি লেবেল। x86 ইনস্ট্রাকশন সেট আর্কিটেকচারে অপারেন্ডের একটি সহজ উদাহরণ হচ্ছে:
MOV DS, AX
এখানে, রেজিস্টার অপারেন্ড codice_1 এর মানকে ("value") রেজিস্টার codice_2 এর মধ্যে স্থানান্তর বা "move" (codice_3) করতে হবে। ইনস্ট্রাকশন সেট আর্কিটেকচার অনুসারে শূন্য সংখ্যক, একটি, দুইটি অথবা ততোধিক অপারেন্ড থাকা সম্ভব।