প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম, উচ্চতর ও পরবর্তী প্রজন্মের ভাষা
এইচএসসি আইসিটি প্রোগ্রামিং ভাষা: মধ্যম ও উচ্চতর স্তরের ভাষা, সি (C), জাভা, পাইথন, ৪র্থ (4GL) ও ৫ম প্রজন্মের (5GL) ভাষার বিস্তারিত আলোচনা।
প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম, উচ্চতর ও পরবর্তী প্রজন্মের ভাষা
- প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম থেকে ৫ম প্রজন্ম
- কম্পিউটার কি আমাদের ভাষা বোঝে?
- মধ্যম স্তরের ভাষা (Mid-Level Language)
- C কেন মধ্যম স্তরের ভাষা?
- উচ্চতর ভাষা (High-Level Language)
- জনপ্রিয় কিছু উচ্চতর ভাষা
- ৪র্থ প্রজন্মের ভাষা (4GL): অতি উচ্চতর ভাষা
- ৫ম প্রজন্মের ভাষা (5GL): স্বাভাবিক ভাষা
- একনজরে ভাষার প্রজন্মসমূহ
- সারসংক্ষেপ: যা মনে রাখতে হবে
প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম, উচ্চতর ও পরবর্তী প্রজন্মের ভাষা
গত পাঠে আমরা জেনেছি মেশিনের নিজস্ব ভাষা (০ এবং ১) এবং অ্যাসেম্বলি ভাষা সম্পর্কে। সেই ভাষাগুলো ছিল কম্পিউটারের খুব কাছাকাছি, কিন্তু মানুষের জন্য বোঝা বা মনে রাখা ছিল অত্যন্ত কঠিন। প্রযুক্তির অগ্রগতির সাথে সাথে প্রয়োজন দেখা দিল এমন এক প্রোগ্রামিং ভাষার, যা হবে মানুষের ভাষার মতোই সহজবোধ্য। এই প্রয়োজন থেকেই জন্ম নেয় মধ্যম স্তরের ভাষা (Mid-Level Language) এবং পরবর্তীকালে উচ্চতর ভাষা (High-Level Language) বা 3GL।
আজকের পাঠে আমরা জানব কেন C ল্যাঙ্গুয়েজকে মিড লেভেল ভাষা বলা হয়, যা এইচএসসি পরীক্ষার জন্য অত্যন্ত গুরুত্বপূর্ণ একটি প্রশ্ন। এছাড়া আমরা দেখব কীভাবে প্রোগ্রামিং ভাষা ধাপে ধাপে আরও উন্নত হয়ে চতুর্থ (4GL) ও পঞ্চম প্রজন্মে (5GL) পদার্পণ করেছে, যেখানে কোড লেখা ছাড়াই শুধু নির্দেশ দিয়ে কাজ করানো সম্ভব হচ্ছে।
মধ্যম স্তরের ভাষা (Mid-Level Language)
যে প্রোগ্রামিং ভাষায় নিম্নস্তরের ভাষা (Low-Level Language) এবং উচ্চস্তরের ভাষা (High-Level Language)—উভয়ের বৈশিষ্ট্যই বিদ্যমান থাকে, তাকে মধ্যম স্তরের ভাষা বা Mid-Level Language বলা হয়।
এই স্তরের ভাষা দিয়ে যেমন হার্ডওয়্যার নিয়ন্ত্রণ করা যায় (বিট ও বাইট পর্যায়ে), তেমনি উচ্চস্তরের ভাষার মতো সহজ সিনট্যাক্স ব্যবহার করে জটিল গাণিতিক ও লজিক্যাল কাজও করা যায়। ‘C’ হলো সর্বজনস্বীকৃত মধ্যম স্তরের ভাষা। এছাড়া C++, Forth, D ল্যাঙ্গুয়েজকেও অনেক সময় এই কাতারে ফেলা হয়।
গুরুত্বপূর্ণ প্রশ্ন (Important): C-কে কেন মধ্যম স্তরের ভাষা বলা হয়?
এইচএসসি পরীক্ষায় এই প্রশ্নটি প্রায়ই অনুধাবনমূলক (খ-সেট) হিসেবে আসে। উত্তরটি এভাবে লিখবে:
- বিট ও বাইট নিয়ন্ত্রণ: C ভাষা ব্যবহার করে মেমোরির বিট ও বাইট পর্যায়ে সরাসরি কাজ করা যায় এবং মেমোরি অ্যাড্রেস নিয়ন্ত্রণ করা যায়, যা লো-লেভেল বা মেশিন ভাষার বৈশিষ্ট্য।
- উচ্চস্তরের সুবিধা: এতে ইংরেজি শব্দের মতো কমান্ড, ফাংশন, এবং ডাটা টাইপ ব্যবহার করা যায়, যা হাই-লেভেল ভাষার বৈশিষ্ট্য।
- দ্বৈত ব্যবহার: C দিয়ে অপারেটিং সিস্টেম বা সিস্টেম সফটওয়্যার (যেমন: Unix, Windows) তৈরি করা যায়, আবার সাধারণ অ্যাপ্লিকেশন সফটওয়্যারও (যেমন: ডাটাবেস, গেমস) তৈরি করা সম্ভব।
এই ‘লো-লেভেল’ ও ‘হাই-লেভেল’—উভয়ের সংমিশ্রণের কারণেই C-কে মধ্যম স্তরের ভাষা বলা হয়।
উচ্চতর ভাষা (High-Level Language / 3GL)
তৃতীয় প্রজন্মের ভাষা বা High-Level Language হলো মানুষের ভাষার (বিশেষ করে ইংরেজি) কাছাকাছি একটি প্রোগ্রামিং ভাষা। এই ভাষায় লেখা প্রোগ্রাম কম্পিউটার সরাসরি বুঝতে পারে না, তাই একে মেশিনের ভাষায় রূপান্তর করতে অনুবাদক প্রোগ্রাম বা Translator (যেমন: কম্পাইলার বা ইন্টারপ্রিটার) প্রয়োজন হয়।
উচ্চতর ভাষার সবচেয়ে বড় সুবিধা হলো এটি মেশিন নির্ভর নয় (Machine Independent)। অর্থাৎ, এক ধরনের কম্পিউটারে লেখা প্রোগ্রাম অন্য ধরনের কম্পিউটারে কোনো পরিবর্তন ছাড়াই বা সামান্য পরিবর্তনে চালানো যায়।
(চিত্র: উচ্চতর ভাষায় লেখা সোর্স কোড কীভাবে কম্পাইলারের মাধ্যমে বিভিন্ন হার্ডওয়্যারের জন্য মেশিন কোডে রূপান্তরিত হয়, যা পোর্টেবিলিটি নিশ্চিত করে।)
সংজ্ঞা (Definition): পোর্টেবিলিটি (Portability) — এক কম্পিউটারে লেখা প্রোগ্রাম বা সোর্স কোড অন্য কম্পিউটারে বা ভিন্ন আর্কিটেকচারে কোনো পরিবর্তন ছাড়াই চালানোর সক্ষমতাকে পোর্টেবিলিটি বলে। এটি উচ্চতর ভাষার অন্যতম প্রধান বৈশিষ্ট্য।
উচ্চতর ভাষার প্রধান বৈশিষ্ট্যসমূহ
- সহজবোধ্যতা: মানুষের ভাষার সাথে মিল থাকায় শেখা এবং মনে রাখা সহজ।
- মেমোরি ব্যবস্থাপনা: প্রোগ্রামারকে মেমোরি অ্যাড্রেস বা হার্ডওয়্যার নিয়ে চিন্তা করতে হয় না।
- ডিবাগিং: প্রোগ্রামের ভুল বা Bug খুঁজে বের করা এবং সংশোধন করা সহজ।
- লাইব্রেরি ফাংশন: প্রচুর বিল্ট-ইন ফাংশন থাকায় বড় প্রোগ্রাম সহজে লেখা যায়।
সংজ্ঞা (Definition): স্ট্রাকচার্ড প্রোগ্রামিং (Structured Programming) — যে পদ্ধতিতে একটি বড় বা জটিল প্রোগ্রামকে ছোট ছোট অংশে (ফাংশন বা মডিউল) ভাগ করে সমাধান করা হয়, তাকে স্ট্রাকচার্ড প্রোগ্রামিং বলে। C, Pascal হলো স্ট্রাকচার্ড ল্যাঙ্গুয়েজ।
জনপ্রিয় উচ্চতর ভাষাসমূহ ও তাদের ইতিহাস
এইচএসসি পরীক্ষার বহুনির্বাচনী (MCQ) অংশের জন্য বিভিন্ন ভাষার আবিষ্কারক, সাল এবং ব্যবহার জানা অত্যন্ত জরুরি। নিচে গুরুত্বপূর্ণ ভাষাগুলোর একটি তালিকা দেওয়া হলো:
| ভাষা (Language) | পূর্ণরূপ (Full Form) | সাল | আবিষ্কারক | প্রধান ব্যবহার |
|---|---|---|---|---|
| FORTRAN | Formula Translation | ১৯৫৭ | জন ব্যাকাস (John Backus) | বৈজ্ঞানিক ও গাণিতিক কাজ |
| LISP | List Processing | ১৯৫৮ | জন ম্যাকার্থি (John McCarthy) | কৃত্রিম বুদ্ধিমত্তা (AI) |
| COBOL | Common Business Oriented Language | ১৯৫৯ | গ্রেস হপার (Grace Hopper) | ব্যবসায়িক ও বাণিজ্যিক কাজ |
| BASIC | Beginners All-purpose Symbolic Instruction Code | ১৯৬৪ | জন কেমেনি ও টমাস কার্টজ | শিক্ষাক্ষেত্রে ও নতুনদের জন্য |
| C | - | ১৯৭২ | ডেনিস রিচি (Dennis Ritchie) | সিস্টেম প্রোগ্রামিং ও সব ধরনের কাজ |
| C++ | - | ১৯৮৩ | বিয়ার্ন স্ট্রাউস্ট্রুপ (Bjarne Stroustrup) | অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং |
| Python | - | ১৯৯১ | গুইডো ভ্যান রসাম (Guido van Rossum) | ডেটা সায়েন্স, AI, ওয়েব ডেভেলপমেন্ট |
| Java | - | ১৯৯৫ | জেমস গসলিং (James Gosling) | ইন্টারনেট ও মোবাইল অ্যাপ |
চতুর্থ প্রজন্মের ভাষা (4GL): অতি উচ্চতর ভাষা
চতুর্থ প্রজন্মের ভাষাকে বলা হয় 4GL (Fourth Generation Language) বা অতি উচ্চতর ভাষা। একে Non-Procedural ভাষাও বলা হয়।
তৃতীয় প্রজন্মের ভাষায় প্রোগ্রামারকে বলে দিতে হতো ‘কী কাজ করতে হবে’ এবং ‘কীভাবে করতে হবে’ (Step-by-step)। কিন্তু চতুর্থ প্রজন্মের ভাষায় প্রোগ্রামারকে শুধু বলে দিতে হয় ‘কী ফলাফল প্রয়োজন’ (What to do), ‘কীভাবে’ করতে হবে তা বলার প্রয়োজন নেই। কম্পিউটার নিজের মতো করে সেটি সম্পন্ন করে নেয়।
(চিত্র: প্রোগ্রামিং ভাষার প্রজন্মের পিরামিড - মেশিন ভাষা থেকে কীভাবে ক্রমশ মানুষের ভাষার কাছাকাছি (AI/5GL) এসেছে তার ক্রমবিকাশ।)
সংজ্ঞা (Definition): র্যাপিড অ্যাপ্লিকেশন ডেভেলপমেন্ট (RAD) — যে পদ্ধতিতে বা টুলের সাহায্যে খুব কম সময়ে এবং সহজে সফটওয়্যার বা অ্যাপ্লিকেশন তৈরি করা যায়, তাকে RAD বা Rapid Application Development বলে। 4GL-কে অনেক সময় RAD টুল বলা হয় কারণ এতে প্রচুর বিল্ট-ইন কোড জেনারেটর থাকে।
পার্থক্য: 3GL বনাম 4GL
| বৈশিষ্ট্য | ৩য় প্রজন্মের ভাষা (3GL) | ৪র্থ প্রজন্মের ভাষা (4GL) |
|---|---|---|
| প্রকৃতি | Procedural (পদ্ধতিগত) | Non-Procedural (ফলাফলমুখী) |
| নির্দেশনা | ‘কীভাবে’ কাজটি করতে হবে তা ধাপে ধাপে লিখতে হয়। | শুধু ‘কী’ প্রয়োজন তা বললেই হয়। |
| কোডের আকার | কোড অনেক বড় হয়। | কোড খুব ছোট এবং সংক্ষিপ্ত হয়। |
| উদাহরণ | C, C++, Java, BASIC | SQL, Oracle, Nomad, Focus |
| ব্যবহার | সব ধরনের সফটওয়্যার তৈরিতে। | মূলত ডেটাবেস বেইজড অ্যাপ্লিকেশন তৈরিতে। |
উদাহরণ (Example): SQL (Structured Query Language)
ধরুন, একটি ডেটাবেস থেকে যাদের বয়স ১৮-এর বেশি তাদের নাম বের করতে হবে।
3GL (যেমন C) এ করতে হলে: লুপ চালাতে হবে, কন্ডিশন চেক করতে হবে, ভ্যারিয়েবল ডিক্লেয়ার করতে হবে—অনেক লাইন কোড।
4GL (SQL) এ করতে হলে:
SELECT Name FROM Students WHERE Age > 18;
মাত্র এক লাইনেই কাজ শেষ! এটিই 4GL এর সহজবোধ্যতা।
পঞ্চম প্রজন্মের ভাষা (5GL): স্বাভাবিক ভাষা ও কৃত্রিম বুদ্ধিমত্তা
পঞ্চম প্রজন্মের ভাষা বা 5GL (Fifth Generation Language) হলো ভবিষ্যতের ভাষা, যার মূল লক্ষ্য হলো কম্পিউটারের সাথে মানুষের স্বাভাবিক ভাষায় (Natural Language) যোগাযোগ স্থাপন করা।
বর্তমানে আমরা কিবোর্ড বা মাউস দিয়ে নির্দেশ দিই, কিন্তু 5GL-এ মানুষ মুখে কথা বলেই কম্পিউটারকে নির্দেশ দিতে পারবে। এটি মূলত কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence) বা AI-এর ওপর ভিত্তি করে তৈরি।
বৈশিষ্ট্যসমূহ:
- স্বাভাবিক ভাষা: মানুষের মুখের ভাষা বুঝতে পারে।
- বুদ্ধিমত্তা: কম্পিউটার নিজেই সমস্যা সমাধান করতে পারে এবং অভিজ্ঞতা থেকে শিখতে পারে (Machine Learning)।
- ব্যবহার: রোবোটিক্স, ভয়েস রিকগনিশন, নিউরাল নেটওয়ার্ক, এবং এক্সপার্ট সিস্টেমে ব্যবহৃত হয়।
পরীক্ষার টিপস (Exam Tip):
যদি প্রশ্ন আসে "ভবিষ্যতের প্রোগ্রামিং ভাষা কেমন হবে?" বা "বুদ্ধিমত্তা সম্পন্ন ভাষা কোনটি?" তবে উত্তর হবে পঞ্চম প্রজন্মের ভাষা।
উদাহরণ হিসেবে PROLOG (Programming in Logic), LISP (List Processing), এবং OPS5-এর নাম মনে রাখবে।
সংক্ষিপ্ত সারাংশ (Quick Revision)
- মধ্যম স্তরের ভাষা (Mid-Level): C ভাষা। হার্ডওয়্যার নিয়ন্ত্রণ + হাই-লেভেল সিনট্যাক্স।
- উচ্চতর ভাষা (3GL): মেশিন নির্ভর নয় (Portable)। ইংরেজি ভাষার মতো। অনুবাদক (Translator) প্রয়োজন হয়। উদাহরণ: Python, Java, C++।
- চতুর্থ প্রজন্মের ভাষা (4GL): ডেটাবেস নির্ভর। ব্যবহারকারী শুধু ফলাফলের কথা বলে। একে RAD টুল বলা হয়। উদাহরণ: SQL।
- পঞ্চম প্রজন্মের ভাষা (5GL): কৃত্রিম বুদ্ধিমত্তা ও ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং। উদাহরণ: PROLOG, LISP।
পরিভাষা (Glossary)
| শব্দ (Term) | ব্যাখ্যা (Definition) |
|---|---|
| Mid-Level Language | যে ভাষায় লো-লেভেল ও হাই-লেভেল উভয় স্তরের সুবিধা বিদ্যমান (যেমন: C)। |
| Portability | এক মেশিনের প্রোগ্রাম অন্য মেশিনে চালানোর সুবিধা। |
| Non-Procedural | কাজের ধাপ বর্ণনা না করে শুধু ফলাফল চাওয়ার পদ্ধতি। |
| RAD | Rapid Application Development; খুব দ্রুত সফটওয়্যার তৈরির পদ্ধতি। |
| Structured Programming | বড় প্রোগ্রামকে ছোট ছোট ফাংশন বা মডিউলে ভাগ করে সমাধান করার পদ্ধতি। |
| Debugging | প্রোগ্রামের ভুল (Bug) খুঁজে বের করে তা সমাধান করার প্রক্রিয়া। |