Dynamic Typing এবং Static Typing দুটি প্রোগ্রামিং ভাষার টাইপিং পদ্ধতি, যা কিভাবে ডেটা টাইপ নির্ধারণ করা হয় তা নির্ধারণ করে। এই দুটি পদ্ধতির মধ্যে প্রধান পার্থক্য হল, টাইপ নির্ধারণ কখন এবং কিভাবে করা হয়।
1. Static Typing (স্ট্যাটিক টাইপিং)
Static Typing হলো সেই টাইপিং পদ্ধতি যেখানে একটি ভেরিয়েবলের টাইপ প্রোগ্রাম কম্পাইল হওয়ার সময় নির্ধারিত হয়। অর্থাৎ, টাইপ (যেমন: int, float, NSString) ডিক্লেয়ার করার সময়েই সেটি নির্ধারণ করতে হয় এবং কম্পাইলারের মাধ্যমে চেক করা হয়। একবার টাইপ নির্ধারণ হয়ে গেলে, সেই ভেরিয়েবলের টাইপ বদলানো যায় না।
স্ট্যাটিক টাইপিং এর বৈশিষ্ট্য:
- টাইপ প্রোগ্রাম কম্পাইল হওয়ার সময় নির্ধারণ করা হয়।
- টাইপ সঠিকতা কম্পাইলার দ্বারা চেক করা হয়, ফলে রানটাইম এরর কম হয়।
- টাইপ সুরক্ষা (Type Safety) নিশ্চিত থাকে।
- ভেরিয়েবলটির টাইপ আগে থেকেই নির্দিষ্ট থাকতে হয়, টাইপ পরিবর্তন করা সম্ভব নয়।
স্ট্যাটিক টাইপিং এর উদাহরণ (C, C++, Java):
int age = 25; // টাইপ static (int)
age = "Hello"; // এটি ত্রুটি হবে, কারণ টাইপটি পরিবর্তন করা যাচ্ছে নাএখানে, age ভেরিয়েবলটি শুরুতে int টাইপে ডিক্লেয়ার করা হয়েছে এবং পরে একে String টাইপে সেট করা হলে ত্রুটি হবে। কারণ Java একটি স্ট্যাটিক টাইপিং ভাষা, এবং টাইপ একবার ডিক্লেয়ার করার পরে তা পরিবর্তন করা যায় না।
2. Dynamic Typing (ডায়নামিক টাইপিং)
Dynamic Typing হলো সেই টাইপিং পদ্ধতি যেখানে একটি ভেরিয়েবলের টাইপ রানটাইমে নির্ধারণ করা হয়, অর্থাৎ, কোড চলার সময় টাইপ অ্যাসাইন করা হয়। এতে টাইপ নির্ধারণের সময় কম্পাইলার কোনো ত্রুটি ফেলে না, বরং এটি রানটাইমের সময় টাইপের সঠিকতা পরীক্ষা করে।
ডায়নামিক টাইপিং এর বৈশিষ্ট্য:
- টাইপ রানটাইমে নির্ধারণ করা হয়।
- টাইপ সঠিকতা চলাকালীন সময়ে চেক করা হয় (রানটাইম এরর)।
- ডেটা টাইপ পরিবর্তন করা সম্ভব।
- কোড লেখা সহজতর হয়, তবে কিছু সময় রানটাইমে টাইপ সম্পর্কিত ত্রুটি হতে পারে।
ডায়নামিক টাইপিং এর উদাহরণ (Python, JavaScript, Objective-C):
age = 25 # টাইপ dynamic (int)
age = "Hello" # এটি কাজ করবে, কারণ টাইপ পরিবর্তন করা সম্ভবএখানে, age ভেরিয়েবলটি প্রথমে একটি int টাইপে অ্যাসাইন করা হয়েছে এবং পরে এটি একটি String টাইপে পরিবর্তন করা হয়েছে। Python একটি ডায়নামিক টাইপিং ভাষা, তাই টাইপ পরিবর্তন করা সম্ভব এবং কোনো ত্রুটি হবে না।
স্ট্যাটিক টাইপিং এবং ডায়নামিক টাইপিং এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Static Typing (স্ট্যাটিক টাইপিং) | Dynamic Typing (ডায়নামিক টাইপিং) |
|---|---|---|
| টাইপ নির্ধারণ | কম্পাইলেশন সময়। | রানটাইম সময়ে। |
| টাইপ পরিবর্তন | টাইপ একবার নির্ধারিত হলে পরিবর্তন করা যায় না। | টাইপ পরিবর্তন করা যায়। |
| টাইপ চেকিং | কম্পাইলারের মাধ্যমে টাইপ চেক করা হয়। | রানটাইমে টাইপ চেক করা হয়। |
| কোডের সুরক্ষা | টাইপ সুরক্ষা (Type Safety) বেশি থাকে। | রানটাইমে ত্রুটি হওয়ার সম্ভাবনা বেশি। |
| ভাষার উদাহরণ | C, C++, Java, Swift | Python, Ruby, JavaScript, Objective-C |
| ত্রুটি সনাক্তকরণ | কম্পাইল সময় ত্রুটি সনাক্ত হয়। | রানটাইম সময় ত্রুটি সনাক্ত হয়। |
উপসংহার
- Static Typing (স্ট্যাটিক টাইপিং) একটি শক্তিশালী টাইপিং পদ্ধতি যেখানে টাইপ কম্পাইল হওয়ার সময় নির্ধারিত হয়। এটি সাধারণত কম্পাইলার দ্বারা চেক করা হয় এবং টাইপ সুরক্ষা বজায় রাখে, ফলে রানটাইমে ত্রুটি কম হয়।
- Dynamic Typing (ডায়নামিক টাইপিং) একটি নমনীয় টাইপিং পদ্ধতি যেখানে টাইপ রানটাইমে নির্ধারিত হয় এবং এটি কোড লিখতে সহজ কিন্তু কিছু রানটাইম ত্রুটি ঘটতে পারে।
প্রত্যেকটি পদ্ধতির সুবিধা এবং অসুবিধা রয়েছে, এবং আপনি প্রোগ্রামিং ভাষা বা প্রজেক্টের প্রয়োজন অনুসারে Static বা Dynamic টাইপিং বেছে নিতে পারেন।
Read more