প্রথমে হাই-লেভেল এবং লো-লেভেল ল্যাঙ্গুয়েজ সম্পর্কে জানি:
হাই-লেভেল ল্যাঙ্গুয়েজ (High-level language)
- লো-লেভেল ল্যাঙ্গুয়েজের তুলনায় এটি সহজে ইন্টারপ্রেট ও কম্পাইল করা যায়।
- এটিকে প্রোগ্রামার-ফ্রেন্ডলি ল্যাঙ্গুয়েজ বলা যায়।
- বুঝতে সহজ।
- ডিবাগ করা সহজ।
- মেইনটেনেন্সের দৃষ্টিতে সিম্পল।
- মেশিন কোডে ট্রান্সলেট করার জন্য কম্পাইলার/ইন্টারপ্রেটার দরকার।
- বিভিন্ন প্ল্যাটফর্মে রান করা যায়।
- এক লোকেশন থেকে অন্য লোকেশনে পোর্ট করা যায়।
- লো-লেভেল ল্যাঙ্গুয়েজের তুলনায় কম মেমরি ইফিশিয়েন্ট, অর্থাৎ বেশি মেমরি খায়।
- উদাহরণ: C, C++, Java, Python।
- আজকাল ব্যাপকভাবে ব্যবহৃত হয়।
লো-লেভেল ল্যাঙ্গুয়েজ (Low-level language)
- এটিকে মেশিন লেভেল ল্যাঙ্গুয়েজও বলা হয়।
- মেশিন দ্বারা সহজে বুঝা যায়।
- এটিকে মেশিন-ফ্রেন্ডলি ল্যাঙ্গুয়েজ বলা যায়।
- বুঝতে কঠিন।
- ডিবাগ করা কঠিন।
- রক্ষণাবেক্ষণও জটিল।
- এটি পোর্টেবল নয়।
- মেশিনের ওপর নির্ভরশীল; তাই বিভিন্ন প্ল্যাটফর্মে রান করা যায় না।
- ইনস্ট্রাকশন ট্রান্সলেট করার জন্য এসেম্বলার (assembler) দরকার।
- আজকাল ব্যাপকভাবে ব্যবহৃত হয় না।
এখন হাই-লেভেল এবং লো-লেভেল প্রোগ্রামিং ল্যাঙ্গুয়েজের পার্থক্য বুঝি:
| হাই-লেভেল ল্যাঙ্গুয়েজ | লো-লেভেল ল্যাঙ্গুয়েজ |
|---|---|
| প্রোগ্রামার-ফ্রেন্ডলি ল্যাঙ্গুয়েজ বলে বিবেচিত। | মেশিন-ফ্রেন্ডলি ল্যাঙ্গুয়েজ বলে বিবেচিত। |
| মেশিন কোডে ট্রান্সলেট করার জন্য কম্পাইলার/ইন্টারপ্রেটার দরকার। | ইনস্ট্রাকশন ট্রান্সলেট করার জন্য এসেম্বলার দরকার। |
| এক লোকেশন থেকে অন্য লোকেশনে পোর্ট করা যায়। | পোর্টেবল নয়। |
| বুঝতে সহজ। | বুঝতে কঠিন। |
| ডিবাগ করা সহজ। | ডিবাগ করা কঠিন। |
| কম মেমরি ইফিশিয়েন্ট, অর্থাৎ লো-লেভেল ল্যাঙ্গুয়েজের তুলনায় বেশি মেমরি খায়। | কম মেমরি খায়। |