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

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

উইকিবই থেকে

সংক্ষিপ্ত বিবরণ

[সম্পাদনা]

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

এই নামকরনের মাধ্যমে আমরা প্রোগ্রামে যে গঠনগত উপাদান ব্যাবহার করছি, তার প্রকৃতি ও কার্যকারিতা সহজেই বোঝা যায়। তবে এই নামগুলো নির্দিষ্ট কিছু নিয়ম মেনে তৈরি করতে হয়, যা নির্ভর করে কিছু নিম্নলিখিত শর্তের উপর:

  1. বিভিন্ন প্রোগ্রামিং ভাষার প্রযুক্তিগত সীমাবদ্ধতার কথা খেয়াল রেখে প্রোগ্রামে ব্যাবহৃত গঠনগত উপাদানগুলির নামকরন করতে হয়।
  2. নামকরনের জন্য প্রোগ্রামিং -এর ভালো অভ্যাস থাকা জরুরী।
  3. প্রত্যেক প্রোগ্রামিং ভাষায় কিছু বৈশ্বিক মানদণ্ড আছে, নামকরনের সময় সেই মানদন্ডগুলো পূর্ন করা জরুরী।

আলোচনা

[সম্পাদনা]

ভাষাগত প্রযুক্তিগত সীমাবদ্ধতা

[সম্পাদনা]

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

  1. শুধুমাত্র অনুমোদিত অক্ষরের ব্যবহার করতে হবে: অধিকাংশ প্রোগ্রামিং ভাষায় আইডেন্টিফায়ার বা গঠনগত উপাদানের নামকরন করার সময় নামের প্রথম অক্ষরটি অবশ্যই একটি ইংরেজি বর্ণমালার অক্ষর (A-Z বা a-z) অথবা একটি আন্ডারস্কোর (_) হতে হবে। পরের অক্ষরগুলোতে গাণিতিক সংখ্যা (0-9), ইংরেজি বর্ণমালার অক্ষর, অথবা আন্ডারস্কোর ব্যবহার করা যেতে পারে কিন্তু শুরুতে অবশ্যই যেন কেবল ইংরেজি বর্ণমালার অক্ষর ব্যাবহার হয়। উদাহরণস্বরূপ: total, _count1, Name_123 ইত্যাদি বৈধ আইডেন্টিফায়ার নেম হিসাবে ব্যাবহার করা যেতে পারে।
  2. সংরক্ষিত শব্দ (রিসার্ভড ওয়ার্ড) ব্যবহার করা যাবে না: প্রতিটি প্রোগ্রামিং ভাষায় কিছু শব্দ সংরক্ষিত বা রিসার্ভড থাকে যা সেই প্রোগ্রামিং ভাষার নিজস্ব কাজ সম্পাদনে ব্যবহৃত হয়। যেমন সি প্রোগ্রামিং ল্যাঙ্গোয়েজে int, return, if, while ইত্যাদি শব্দগুলো কোনো ভেরিয়েবল বা ফাংশনের নাম হিসেবে ব্যবহার করা যায় না। উদাহরন হিসাবে, নিচের কোডটি দেখুন:
    int if = 5;
    
    এই কোডটি ভুল কারন কারণ if হল বিভিন্ন প্রোগ্রামিং ভাষায় ব্যাবহৃত একটি সংরক্ষিত শব্দ যা শর্তাধীন অপারেটর হিসাবে ব্যাবহার হয়।
  3. দৈর্ঘ্যের সীমা: কিছু ভাষা বা কম্পাইলারের ক্ষেত্রে আইডেন্টিফায়ারের যে নামকরন করা হয় তার দৈর্ঘ্যের সীমা আরোপিত থাকে। যেমন, কোনো কম্পাইলারে একটি আইডেন্টিফায়ার সর্বোচ্চ একত্রিশ অক্ষর দীর্ঘ হতে পারে। তবে আধুনিক ভাষাগুলোর বেশিরভাগে এই সীমা অনেক বেশি বা প্রায় অনির্দিষ্ট থাকে।
    বিভিন্ন কম্পিউটার ল্যাঙ্গোয়েজের ক্ষেত্রে এই সীমাবদ্ধতাগুলো ভিন্ন হতে পারে। যেমন, পাইথন এবং জাভাস্ক্রিপ্ট -এ আইডেন্টিফায়ার নামের দৈর্ঘ্য নিয়ে কিছুটা নমনীয়তা থাকলেও, সি বা সি++ এর মতো ভাষায় কিছু নিয়ম কঠোরভাবে মানতে হয়।
    তাছাড়া, একই প্রোগ্রামিং ভাষার জন্য বিভিন্ন কম্পাইলারের ক্ষেত্রে এই শর্তগুলির কিছুটা পরিবর্তন হতে পারে।

এই প্রযুক্তিগত নিয়মগুলো জানা ও মেনে চলা একজন ভালো প্রোগ্রামার হওয়ার জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলো কম্পিউটার প্রোগ্রামে উন্নত কোড লিখনের ভিত্তি প্রস্তুত করে দেয়।

ভালো প্রোগ্রামিংয়ের কৌশল

[সম্পাদনা]

ভালো প্রোগ্রামিংয়ের কৌশল সর্বপ্রথম শর্ত হল, প্রোগ্রামে ব্যাবহৃত বিভিন্ন রকমের ডেটা টাইপ, ধ্রুবক ও ভেরিয়েবল ইত্যাদি বিভিন্ন গঠনগত উপাদানের অর্থবোধক নামকরন। অর্থাৎ প্রোগ্রাম মুদ্রন করার সময় প্রতিটি ভেরিয়েবল, ফাংশন বা ধ্রুবকের জন্য এমন একটি নাম ব্যবহার করা উচিত যার মাধ্যমে তার প্রকৃতি ও কার্যকারিতা স্পষ্টভাবে বোঝা যায়। উদাহরন হিসাবে, ধরুন আপনি একটি ভেরিয়েবলের নাম দিয়েছেন p, কিন্তু p -এর মাধ্যমে আসলে কী বোঝানো হচ্ছে? p কি কোন গাণিতিক সংখ্যা বা কোন অক্ষর? এটা যে কোনো কিছুর সংক্ষিপ্ত রূপ হতে পারে। তাই আইডেন্টিফায়ারের নামকরনের ক্ষেত্রে যতটা সম্ভব সংক্ষিপ্ত চিহ্ন এবং কঠিন বা সাংকেতিক নাম এড়িয়ে চলা উচিত। এর পরিবর্তে সহজবোধ্য এবং স্পষ্ট নাম ব্যবহার করা উচিত, যেমন price, totalMarks, studentName ইত্যাদি। এছাড়া অপরিষ্কার বা গাণিতিক চিহ্নের মত নাম যেমন tmp1, dataX, aa12 এড়িয়ে চলা উচিত যদি না সেগুলোর মানে একদম স্পষ্ট হয়।

ভালো প্রোগ্রামিংয়ের কৌশলের দ্বিতীয় শর্ত হল নামকরনের সময় বড় ও ছোট হাতের অক্ষরের ধারাবাহিকতা বজায় রাখা। অনেক প্রোগ্রামিং ভাষাতে বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরকে দুটি সম্পূর্ন আলাধা অক্ষর হিসাবে বিবেচনা করা হয়। অর্থাৎ যদি কোন প্রোগ্রামে আমরা p এবং P ব্যাবহার করি তাহলে যদিও মানব বোধগম্যতার ক্ষেত্রে এই দুটি একই অক্ষর, কিন্তু প্রোগ্রাম এই দুটিকে সম্পূর্ন আলাধা অক্ষর হিসাবে বিবেচনা করবে। সেক্ষেত্রে data, Data, এবং DATA — এই তিনটি ভিন্ন ভিন্ন আইডেন্টিফায়ার বা উপাদান হিসেবে গণ্য হবে। উদাহরন হিসাবে নিচের কোডটি লক্ষ্য করুন,

int studentName = 5;
printf("%d", StudentName);

উপরের কোডটিতে একটি ত্রুটি আছে কারন সি প্রোগ্রামে studentName এবং StudentName সমার্থক নয়। তাই প্রোগ্রাম চালনা করার সময় ত্রুটি ধরা পড়বে।

এই সমস্যাটি এড়ানোর সবচেয়ে ভালো উপায় হলো আইডেন্টিফায়ার নাম -এর জন্য সবসময় একই ধরনের হরফ ব্যবহার করা। অর্থাৎ আপনি যদি studentName নামের একটি ভেরিয়েবল ব্যবহার করেন, তবে পুরো প্রোগ্রামে তা একইভাবে লিখুন — কখনো StudentName বা STUDENTNAME লিখবেন না। এতে কোড পরিষ্কার, সহজবোধ্য এবং ত্রুটিমুক্ত হয়।

শিল্পক্ষেত্রে প্রচলিত নিয়ম

[সম্পাদনা]

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

ক্যামেলকেস: ক্যামেলকেস (বা camelCase) আইডেন্টিফায়ার নামকরনে ব্যাবহৃত বিশেষ শৈলী যেখানে প্রোগ্রামে ব্যাবহৃত বিবিধ ধ্রুবক, ভেরিয়েবল ইত্যাদির নামকরনের সময় প্রথম শব্দটি ছোট হাতের ইংরেজি অক্ষরে লেখা হয়ে থাকে। এবার ধরুন কোন আইডেন্টিফায়ার নামের ক্ষেত্রে ইংরেজি শব্দমালার দুটি অর্থবোধক শব্দকে একত্রে যোগ করে ব্যাবহার করা হল। উদাহরন হিসাবে ধরুন বিদ্যালয়ের পরীক্ষার ফল প্রকাশ করা হবে এবং প্রতিটি ছাত্রের বার্ষিক রেজাল্ট প্রস্তুত করার জন্য কম্পিউটার প্রোগ্রামের সাহায্য নেওয়া হল। এবার প্রোগ্রামে কোন ছাত্রের নাম চিহ্নিত করতে আমরা ইংরেজি শব্দমালার student এবং name এই দুটি শব্দ ব্যাবহার হল। তাহলে ক্যামেলকেসের নিয়ম অনুসারে আমরা প্রোগ্রামে সেটিকে লিখবো, studentName হিসাবে। অর্থাৎ নামকরনে প্রথম অর্থবোধক শব্দ student প্রথম অক্ষর ছোট হাতের হরফে লেখা হবে এবং দ্বিতীয় অর্থবোধক শব্দ name -এর প্রথম অক্ষরটি বড় হাতের হরফে লেখা হবে এবং এই দুই শব্দ যোগে যখন আইডেন্টিফায়ার নেম গঠিত হবে তখন শব্দগুলোর মাঝে কোন ফাঁকা জায়গা বা আন্ডারস্কোর থাকবেনা। এটাই হল ক্যামেলকেসের নিয়ম। ক্যামেলকেস শৈলীর আরো উদাহরণ হল: studentName, totalMarks

পাস্কালকেস: পাস্কালকেস (বা PascalCase) আইডেন্টিফায়ার নামকরনে ব্যাবহৃত বিশেষ শৈলী। পূর্বে ক্যামেলকেসে ব্যাবহৃত উদাহরনের প্রসঙ্গ টেনেই বলা যাক যে পাস্কালকেস অনুসারে ছাত্রের নামকে প্রোগ্রামে উল্লেখ করা হবে, StudentName হিসাবে, অর্থাৎ নামকরনে প্রথম অর্থবোধক শব্দ student প্রথম অক্ষর বড় হাতের হরফে লেখা হবে এবং দ্বিতীয় অর্থবোধক শব্দ name -এর প্রথম অক্ষরটিও বড় হাতের হরফে লেখা হবে এবং ক্যামেলকেসের মতোই পাস্কালকেসেও দুই শব্দ যোগে যখন আইডেন্টিফায়ার নেম গঠিত হবে তখন শব্দগুলোর মাঝে কোন ফাঁকা জায়গা বা আন্ডারস্কোর থাকবেনা। পাস্কালকেসের আরও উদাহরণ: StudentName, TotalMarks

স্নেককেস: পূর্বের উদাহরনের প্রসঙ্গ টেনে বলা যায় যে প্রোগ্রামে যদি স্নেককেস (বা snake_case) অনুসারে আইডেন্টিফায়ারের নামকরন হয় তাহলে ছাত্রের নামের জন্য প্রোগ্রামে student_name হরফটি ব্যাবহার হবে, অর্থাৎ আইডেন্টিফায়ারে শব্দে সবই ছোট হাতের অক্ষরে থাকবে এবং দুটি অর্থবোধক শব্দ student এবং name -এর মধ্য আন্ডারস্কোর (_) থাকে। স্নেক কেসের আরো উদাহরণ: student_name, total_marks

সি++, জাভা, জাভাস্ক্রিপ্ট ইত্যাদি প্রোগ্রামিং ভাষায় সাধারণত ক্যামলকেস ব্যবহার হয়। কিন্তু ক্লাস ও লাইব্রেরির নামের জন্য পাস্কালকেস ব্যবহার করা হয়।

সি শার্পে সাধারণভাবে পাস্কালকেস ব্যবহৃত হয়, তবে ফাংশনের ইনপুট প্যারামিটারে ক্যামলকেস ব্যাবহার হয়।

পাইথন সাধারণত স্নেককেস ফরম্যাট অনুসরণ করে।

আইডেন্টিফায়ারের নাম, আন্ডারস্কোর ( _ ) দিয়ে শুরু করা অনুচিত, কারণ এটি সাধারণত প্রযুক্তিগত বা অভ্যন্তরীণ উদ্দেশ্যে ব্যবহৃত হয়।

প্রোগ্রামে কোন ধ্রুবকের ব্যাবহার করলে তার নামকরন সবসময় বড় হাতের অক্ষরে লেখা উচিত। প্রায়শই ধ্রুবকগুলিকে বড় হাতের অক্ষর ও স্নেককেস ফরম্যাটে চিহ্নিত করা হয়, যাকে সাধারনত আপার স্নেককেস বলা হয়। উদাহরণ: MAX_SIZE, PI_VALUE

মূল পরিভাষা

[সম্পাদনা]
ক্যামেল কেস
একাধিক শব্দ বা বাক্যাংশের সমন্বয়ে আইডেন্টিফায়ার নেম গঠনের একটি শৈলী। যেখানে দুটি অর্থবোধক ইংরেজি শব্দের সমন্বয়ে যখন একটি আইডেন্টিফায়ারের নামকরন করা হয় তখন প্রথম অর্থবোধক শব্দের প্রথম ইংরেজি অক্ষর ছোট হাতের এবং দ্বিতীয় অর্থবোধক শব্দের প্রথম অক্ষরটি বড় হাতের লেখা হয় এবং এই দুই অর্থবোধক ইংরেজি শব্দের মধ্যে কোন ফাঁক বা যতিচিহ্ন থাকবেনা।
পাস্কাল কেস
একাধিক শব্দ বা বাক্যাংশের সমন্বয়ে আইডেন্টিফায়ার নেম গঠনের একটি শৈলী। যেখানে দুটি অর্থবোধক ইংরেজি শব্দের সমন্বয়ে যখন একটি আইডেন্টিফায়ারের নামকরন করা হয় তখন প্রথম অর্থবোধক শব্দের প্রথম ইংরেজি অক্ষর বড় হাতের এবং দ্বিতীয় অর্থবোধক শব্দের প্রথম অক্ষরটিও বড় হাতের লেখা হয় এবং এই দুই অর্থবোধক ইংরেজি শব্দের মধ্যে কোন ফাঁক বা যতিচিহ্ন থাকবেনা।
রিজার্ভড ওয়ার্ড
বিবিধ প্রোগ্রামিং ভাষায় কিছু শব্দ থাকে যেগুলো বিশেষ অর্থ বহন করে, তাই এগুলোকে আইডেন্টিফায়ার হিসাবে ব্যবহার করা যায় না।
স্নেক কেস
একাধিক শব্দ বা বাক্যাংশের সমন্বয়ে আইডেন্টিফায়ার নেম গঠনের একটি শৈলী। যেখানে দুটি অর্থবোধক ইংরেজি শব্দের সমন্বয়ে যখন একটি আইডেন্টিফায়ারের নামকরন করা হয় তখন ব্যাবহৃত সকল ইংরেজি শব্দের ক্ষেত্রে শুধু ছোট হাতের অক্ষর ব্যাবহার হয় এবং দুটি অর্থবোধক ইংরেজি শব্দের সমন্বয়ে যখন একটি আইডেন্টিফায়ারের নামকরন করা হয় তখন প্রথম অর্থবোধক শব্দের এবং দ্বিতীয় অর্থবোধক শব্দের মাঝে একটি আন্ডারস্কোর ( _ ) ব্যবহার করা হয়।

তথ্যসূত্র

[সম্পাদনা]