বিষয়বস্তুতে চলুন

প্রোগ্রামিংয়ের মৌলিক ধারণা/কম্পাইলার ডিরেক্টিভ

উইকিবই থেকে

প্রি-প্রসেসর ডিরেকটিভ সম্পর্কে একটি সাধারণ ব্যাখ্যা এবং কম্পাইলার কীভাবে সেগুলো মূল্যায়ন করে তা ব্যাখ্যা করা হয়েছে। এখানে মূলত অন্তর্ভুক্ত এবং সংজ্ঞায়িত নির্দেশনাগুলো আলোচনা করা হয়েছে। উল্লেখযোগ্য বিষয় হলো, এই আলোচনা সি, সি++, এবং এই ধরনের ভাষার জন্য প্রাসঙ্গিক। জাভা এবং পাইথন ভাষায় প্রি-প্রসেসর ব্যবহৃত হয় না।

সাধারণ আলোচনা

[সম্পাদনা]

কম্পাইলার ডিরেকটিভ হলো কম্পাইলারকে একটি নির্দিষ্ট কাজ সম্পন্ন করার জন্য দেওয়া নির্দেশ, যা মূল প্রোগ্রাম কম্পাইল শুরু করার আগেই সম্পাদিত হয়। এ কারণেই এগুলোকে কখনও কখনও প্রি-প্রসেসর ডিরেকটিভ বলা হয়। প্রি-প্রসেসর ধাপে, কম্পাইলার অন্যান্য কাজের পাশাপাশি কম্পাইলার ডিরেকটিভ খুঁজে বের করে এবং সেগুলো প্রাপ্ত হওয়ার সাথে সাথেই কার্যকর করে। এই নির্দেশনাগুলোর কাজ শেষ করার পর, কম্পাইলার তার দ্বিতীয় ধাপে অগ্রসর হয়, যেখানে এটি সিনট্যাক্স ত্রুটি (ভাষার নিয়মের লঙ্ঘন) চেক করে এবং সোর্স কোডকে অবজেক্ট কোডে রূপান্তর করে। এই অবজেক্ট কোডের মধ্যে থাকে: মেশিন ভাষায় অনুবাদিত নির্দেশাবলি, একটি ডেটা এরিয়া, এবং একটি তালিকা, যাতে উল্লেখ থাকে কোন কোন বিষয় পরবর্তীতে অন্যান্য অবজেক্ট ফাইলের সাথে লিংক করার সময় সমাধান করতে হবে।

সি++ ভাষায় কোনো লাইনের প্রথম অক্ষর হিসেবে পাউন্ড চিহ্ন অথবা # ব্যবহৃত হলে, তা নির্দেশ করে যে পরবর্তী শব্দটি একটি ডিরেকটিভ (বা নির্দেশমূলক কমান্ড) — যেটি কম্পাইলার দ্বারা মূল্যায়ন করা হবে। সি++-এ ব্যবহৃত দুইটি সবচেয়ে প্রচলিত কম্পাইলার ডিরেকটিভ হলো:

  1. অন্তর্ভুক্ত (include) – এই ডিরেকটিভটির পরে থাকা উপাদানটি হলো একটি ফাইলের নাম, যা সেই স্থানে ফাইলটিকে অন্তর্ভুক্ত করার নির্দেশ দেয়। এই ধরনের ফাইলকে সাধারণত "হেডার ফাইল" বলা হয়, কারণ অন্তর্ভুক্ত নির্দেশটি সাধারণত সোর্স ফাইলের শুরুর দিকে (হেড অংশে) লেখা হয় — প্রোগ্রামের প্রথম দিকের উপাদানগুলোর মধ্যে একটি হিসেবে।
  2. define – এই ডিরেকটিভটির পরে একটি শনাক্তকারীর নাম এবং একটি মান থাকে। কম্পাইলার এই শনাক্তকারী নাম ও মানকে সংরক্ষণ করে এবং প্রোগ্রামে যখনই সেই শনাক্তকারী নামের মুখোমুখি হয়, তখন সেটির জায়গায় উল্লিখিত মানটি প্রতিস্থাপন করে।

নিচের উদাহরণে, অন্তর্ভুক্ত নির্দেশটি এমন একটি ফাইল অন্তর্ভুক্ত করছে, যা ইনপুট-আউটপুট স্ট্রিম লাইব্রেরির কোড ধারণ করে। এই ফাইলটি এমন প্রয়োজনীয় কোড সরবরাহ করে, যা cout ব্যবহার করে মনিটরে ডেটা পাঠানো এবং cin ব্যবহার করে কীবোর্ড থেকে ডেটা গ্রহণ করার জন্য প্রয়োজন।

#include <iostream>

পরবর্তী উদাহরণে, সংজ্ঞায়িত (define) ডিরেকটিভটি একটি ধ্রুবক মান পরিচালনার জন্য ব্যবহার করা হচ্ছে, যাকে সংজ্ঞায়িত ধ্রুবক বলা হয়।

উদাহরণ ১: সি++ তে পিআই প্রতিস্থাপন করা

[সম্পাদনা]
#define PI 3.14159
....Later on in the program when it encounters PI
....it will replace or substitute PI with the value 3.14159
....For example:
area_circle = radius * radius * PI;
    would become:
area_circle = radius * radius * 3.14159;

উল্লেখ্য, সি++ এ কম্পাইলার নির্দেশাবলীর পরে সেমিকোলন বসে না। সি++ প্রোগ্রামিংয়ের ভেতরের নির্দেশাবলী বা স্টেটমেন্টগুলো সেমিকোলন দিয়ে শেষ হয়, কিন্তু কম্পাইলার নির্দেশাবলী নয়।

উদাহরণ ২: জাভাতে পিআই আমদানি করা

[সম্পাদনা]

জাভা java.lang.Math.PI লাইব্রেরি ব্যবহার করে।[]

import static java.lang.Math.PI;       //import PI
...
area_circle = radius * radius * PI;    //use PI

উদাহরণ ৩: পাইথনে PI আমদানি করা

[সম্পাদনা]

পাইথন math.pi লাইব্রেরি ব্যবহার করে।[]

import math                                 #import math
...
area_circle = radius * radius * math.pi;    #use PI

সংজ্ঞা

[সম্পাদনা]
কম্পাইলার ডিরেক্টিভ
একটি কম্পাইলার ডিরেক্টিভ হলো কম্পাইলারকে দেওয়া একটি নির্দেশ যা প্রোগ্রামটি আনুষ্ঠানিকভাবে কম্পাইল করা শুরু করার আগে একটি নির্দিষ্ট কাজ সম্পন্ন করতে বলে।
ইনক্লুড
ইনক্লুড হলো একটি কম্পাইলার ডিরেক্টিভ যা একটি ফাইলের বিষয়বস্তু প্রোগ্রামের মধ্যে সন্নিবেশিত করার জন্য ব্যবহৃত হয়।

তথ্যসূত্র

[সম্পাদনা]