প্রোগ্রামিং ভাষার জগৎ যেন এক অদ্ভুত মায়াবী পথ। প্রযুক্তির এই পথে একেক প্রজন্মের ভাষা আমাদের নতুন নতুন সম্ভাবনার দিগন্তে নিয়ে গেছে। যেখানে প্রথম প্রজন্মের মেশিন ল্যাঙ্গুয়েজে আমরা ০ আর ১-এর জগতে আটকে ছিলাম, সেখানে আজ আমরা কৃত্রিম বুদ্ধিমত্তা এবং জ্ঞান-ভিত্তিক প্রোগ্রামিংয়ের মাধ্যমে ভবিষ্যতের সীমানা স্পর্শ করছি।
প্রত্যেক প্রজন্মের ভাষা শুধু প্রযুক্তির উন্নয়নই ঘটায়নি, বরং প্রতিটি নতুন ধাপ আমাদের দৈনন্দিন জীবনকে আরও সহজ, দ্রুত, এবং প্রায়শই মুগ্ধকর করে তুলেছে। আসুন, প্রোগ্রামিং ভাষার বিভিন্ন প্রজন্মের এই অনন্য যাত্রার দিকে এক নজর দেই, এবং দেখি কেমনভাবে প্রতিটি প্রজন্ম তার নিজস্ব বৈশিষ্ট্য, ক্ষমতা ও সম্ভাবনা নিয়ে প্রযুক্তির ভবিষ্যতকে গড়ে তুলেছে।
প্রথম প্রজন্মের প্রোগ্রামিং ভাষাকে মেশিন ল্যাঙ্গুয়েজ বলা হয়। এটি সরাসরি কম্পিউটারের সেন্ট্রাল প্রসেসিং ইউনিট (CPU) দ্বারা বোঝা যায়। এই ভাষা বাইনারি সংখ্যা (0 এবং 1) দিয়ে লেখা হয়, যা কম্পিউটার সরাসরি প্রক্রিয়া করতে পারে। মেশিন ল্যাঙ্গুয়েজে প্রোগ্রাম তৈরি করা অত্যন্ত জটিল ছিল কারণ প্রত্যেকটি নির্দেশনা বাইনারি কোডে দিতে হত।
ধরা যাক, আমরা একটি সংখ্যা যোগ করতে চাই। এটি মেশিন ল্যাঙ্গুয়েজে লিখতে হলে আমাদের সরাসরি বাইনারি কোড লিখতে হবে, যেমন: 0001 1010 0001 (এখানে প্রতিটি সংখ্যা একটি নির্দিষ্ট অর্থ বহন করে)।
অ্যাসেম্বলি ল্যাঙ্গুয়েজ (Assembly Language) দ্বিতীয় প্রজন্মের বা 5GL এর প্রোগ্রামিং ভাষা হিসেবে বেশ পরিচিত। যেখানে প্রথম প্রজন্মে মেশিন ল্যাঙ্গুয়েজ বাইনারি কোড ব্যবহার করতো, সেখানে ২য় প্রজন্মের বা 2GL এর অ্যাসেম্বলি ল্যাঙ্গুয়েজ (Assembly Language) মেমোনিক কোডের মাধ্যমে প্রোগ্রামিং করতো। মেশিন ল্যাঙ্গুয়েজের চেয়ে অ্যাসেম্বলি ল্যাঙ্গুয়েজ (Assembly Language) কিছুটা সহজবোধ্য। অ্যাসেম্বলি ল্যাঙ্গুয়েজে লেখা কোড কম্পিউটারের জন্য অ্যাসেম্বলার ব্যবহার করে মেশিন ল্যাঙ্গুয়েজে রূপান্তর করা হতো।
এটি সাধারণ অ্যাসেম্বলি ভাষার উদাহরণ হতে পারে:
model small.stack 100h.data
msg db 'Hello, World!', 0.code
main:
; print the message
mov ah, 09h
lea dx, msg
int 21h
; exit program
mov ah, 4Ch
int 21h
end main
এখানে ASM কোড কোনসোলে "Hello World!" প্রিন্ট করবে।
তৃতীয় প্রজন্মের প্রোগ্রামিং ভাষা হলো প্রথম উচ্চ স্তরের ভাষা যা সাধারণ মানুষের বোঝার উপযোগী। এই ভাষাগুলো সরাসরি কম্পিউটারের জন্য উপযোগী করে তৈরি করা হলেও ভাষার ব্যাকরণ ও সিনট্যাক্স মানুষের ব্যবহারের জন্য সহজ। এই ভাষাগুলো মেশিনের ওপর নির্ভরশীল নয় এবং এর সাহায্যে বড় বড় সফটওয়্যার তৈরি করা সম্ভব হয়েছে।
জনপ্রিয় ৩GL ভাষার মধ্যে রয়েছে C (সি), C+ (সি+), Java (জাভা), Python (পাইথন), BASIC (বেসিক), FORTRAN (ফোরট্রান), COBOL (কোবল) এবং Pascal (প্যাসকেল)। উদাহরণস্বরূপ, C ভাষায় একটি সাধারণ প্রোগ্রাম নিচে দেওয়া হলো:
</pre> #include <stdio.h> int calculateMonths(int startYear, int startMonth, int endYear, int endMonth) {return (endYear - startYear) * 12 + (endMonth - startMonth);} int main() {int startYear = 2024, startMonth = 5; int endYear = 2024, endMonth = 11; int monthsKnown = calculateMonths(startYear, startMonth, endYear, endMonth); printf("অপরাজিতা এবং মেঘের পরিচয়ের সময়কাল: %d মাস\n", monthsKnown); return 0;} <pre>
এই C প্রোগ্রামটি অপরাজিতা এবং মেঘের সম্পর্কের সময়কাল বের করবে। calculateMonths ফাংশনটি দুটি তারিখের মধ্যে মাসের পার্থক্য বের করে, যেখানে শুরু এবং শেষ বছরের মাসের ভিত্তিতে মোট মাসের সংখ্যা হিসাব করবে। main ফাংশনে, অপরাজিতা এবং মেঘের পরিচয়ের তারিখ এবং বর্তমান তারিখ দেয়া রয়েছে। প্রোগ্রামটি তাদের সম্পর্কের সময়কাল ৬ মাস হিসেবে আউটপুট দেখাবে।
চতুর্থ প্রজন্মের প্রোগ্রামিং ভাষাগুলো আরও উচ্চতর স্তরের ভাষা হিসেবে পরিচিত, যা ডেটা ম্যানেজমেন্ট, রিপোর্ট জেনারেশন এবং দ্রুত সফটওয়্যার ডেভেলপমেন্টের জন্য ব্যবহার করা হয়। এই ভাষাগুলো ডাটাবেজ ম্যানেজমেন্ট এবং র্যাপিড অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য বিশেষভাবে তৈরি।
একটি ডেটাবেজের তথ্য সংরক্ষণ, পরিচালনা, এবং বিশ্লেষণ থেকে শুরু করে ডেটাবেজের পুরো ম্যানেজমেন্ট করতে ব্যবহার হয় SQL। ডেটাবেজ ম্যানেজমেন্টের জন্য SQL খুবই জনপ্রিয় ল্যাঙ্গুয়েজ।
</pre> CREATE TABLE Employees (ID INT, Salary DECIMAL(10, 2), Bonus DECIMAL(10, 2)); INSERT INTO Employees VALUES (1, 5000.00, 1000.00); INSERT INTO Employees VALUES (2, 6000.00, 1200.00); SELECT ID, Salary + Bonus AS TotalIncome FROM Employees; <pre>
SQL, MATLAB, R, SAS এবং ABAP-ও চতুর্থ প্রজন্মের ভাষার উদাহরণ।
পঞ্চম প্রজন্মের ভাষাগুলো কৃত্রিম বুদ্ধিমত্তা এবং লজিক্যাল প্রোগ্রামিং-এর ওপর ভিত্তি করে তৈরি। এ ধরনের ভাষাগুলো সাধারণত এআই এবং মেশিন লার্নিং অ্যাপ্লিকেশন তৈরিতে ব্যবহৃত হয়। ৫GL ভাষাগুলো বিভিন্ন জ্ঞানভিত্তিক এবং জটিল সমস্যার সমাধান দেওয়ার ক্ষমতা রাখে। 5GL এর প্রোগ্রামিং ভাষার মধ্য Prolog এবং LISP বেশ জনপ্রিয়। তাছাড়াও Mercury ও OPS5-ও বেশ জনপ্রিয়।
নিচে Prolog এ একটি ছোট্ট প্রোগ্রামের উদাহরণসহ দেওয়া হলো:
met_date(oprajita, megh, 2024, 5).
known_for(X, Y, Months) :-
met_date(X, Y, Year, Month),
current_date(CurrentYear, CurrentMonth),
Months is (CurrentYear - Year) * 12 + (CurrentMonth - Month).
current_date(2024, 11).
উপরের Prolog কোডে, met_date(oprajita, megh, 2024, 5). নির্দেশ করে যে অপরাজিতা ও মেঘের পরিচয় মে ২০২৪-এ হয়েছিল। known_for(X, Y, Months) নিয়মটি পরিচয় ও বর্তমান তারিখ (নভেম্বর ২০২৪) থেকে তাদের পরিচয়ের মোট মাস বের করে।
ফলে?- known_for(oparajita, megh, Months). প্রশ্ন করলে Months = 6 পাওয়া যায়, অর্থাৎ ৬ মাস।
প্রোগ্রামিং ভাষার প্রতিটি প্রজন্ম আমাদের প্রযুক্তির পথে এক ধাপ এগিয়ে নিয়ে গেছে। মেশিন ল্যাঙ্গুয়েজ থেকে শুরু করে কৃত্রিম বুদ্ধিমত্তাভিত্তিক ভাষা পর্যন্ত প্রতিটি ধাপ প্রোগ্রামিংকে আরও সহজ, শক্তিশালী এবং ব্যবহারবান্ধব করেছে। ভবিষ্যতেও নতুন প্রজন্মের ভাষাগুলি প্রযুক্তির আরও জটিল সমস্যার সমাধান দেবে এবং আমাদের সম্ভাবনার দিগন্তকে আরও প্রসারিত করবে।
আমি মো সানজিদ। শিক্ষার্থী, গুরুদয়াল সরকারি কলেজ, কিশোরগঞ্জ। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 2 বছর 6 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 15 টি টিউন ও 19 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 3 টিউনারকে ফলো করি।