হ্যালো টেকটিউনস কমিউনিটির সদস্যরা, কেমন আছেন সবাই? আশাকরি ভালোই আছেন। বরাবরের মতো আজো নিয়ে এসেছি অসম্ভব সুন্দর একটা টিউন। আশাকরি ভালো লাগবে। কথা না বাড়িয়ে চলুন শুরু করা যাক।
আমরা সকলে জানি যে কম্পিউটারকে ঠিকঠাকভাবে পরিচালনার জন্য প্রোগ্রাম ল্যাংগুয়েজ খুবই গুরুত্বপূর্ণ একটি বিষয়। কম্পিউটারকে সঠিকভাবে পরিচালনার জন্য কতিপয় নিয়ম-কানুন ও সংকেত এর মাধ্যমে প্রোগ্রাম তৈরি করা হয়। আর এসব সংকেত ও নিয়মকানুন গুলোকে একত্রে প্রোগ্রাম ভাষা বলে। এই প্রোগ্রাম ভাষার ধরন পূর্বে একরকম ছিলো আর বর্তমানে অন্যরকম। তুলনামূলকভাবে যত পূর্বের প্রোগ্রাম ভাষা তা ততো কঠিন। অর্থাৎ ভাষার কাঠিন্যকে দূর করতে বা প্রোগ্রাম ভাষাকে সহজ থেকে সহজতর করতেই বর্তমান প্রজন্মের ভাষাগুলোর সৃষ্টি হয়েছে।
কিছু সময়ের ব্যবধানে এসব ভাষার পরিবর্তন হয়েছে এবং কিছু কিছু ক্ষেত্রে এসব ভাষা জনপ্রিয়তা লাভ করেছে। ১৯৪৫ সালে প্রোগ্রাম ভাষার সুচনা আর তারপর থেকে এ পর্যন্ত কয়েক শত প্রোগ্রামিং ল্যাংগুয়েজ বা ভাষা আবিষ্কার হয়েছে। এসব ভাষাকে বৈশিষ্ট্য ও সময় এর উপর নির্ভর করে পাঁচটি প্রজন্মে বিভক্ত করা যায়। নিচে এসব প্রজন্ম ভিত্তিক ভাষাগুলোর সামান্য বিবরণ তুলে ধরা হলো।
আনুমানিক ১৯৪৫ সালে প্রথম প্রজন্ম বা ফার্স্ট জেনারেশনের ভাষার আবিষ্কার হয়। ফার্স্ট জেনারেশনের ভাষা হিসেবে সাধারণত মেশিন ভাষা পরিচিত। এটি ভাষার সর্বনিম্ন স্তর। এটি কম্পিউটারের জন্য একমাত্র মৌলিক ভাষা। এ ভাষায় হেক্স পদ্ধতি ব্যবহার করে বা 0 ও 1 এই দুই বাইনারি অংক ব্যবহার করে সব কিছু লেখা হয়।
কম্পিউটার মেশিন ভাষা ছাড়া অন্য কোন ভাষা বুঝতে পারে না। অন্য কোন ভাষায় যদি কেউ কোন প্রোগ্রাম করে তাহলে কম্পিউটার তা অনুবাদক এর সাহায্যে মেশিন ভাষায় রূপান্তর করে নেয়।
প্রথম দিকে যখন কম্পিউটারের জন্য প্রোগ্রাম করা হতো তখন তা মেশিন ভাষাতেই করা হতো। কিন্তু মেশিন ভাষায় প্রোগ্রাম তৈরি করা ছিল অত্যন্ত জটিল এবং পরিশ্রমের কাজ আর সেইসাথে প্রচুর পরিমাণ সময়ের ও প্রয়োজন ছিল। তাই বর্তমানে সব প্রোগ্রাম হাই লেভেল ভাষায় করা হয়। এক কোম্পানির কম্পিউটারের জন্য যে মেশিন ভাষা ছিল তা অন্য কোম্পানির কম্পিউটারের মেশিন ভাষার সাথে মিলত না। ফলে এক কম্পিউটারের জন্য তৈরি করা প্রোগ্রাম অন্য কম্পিউটারে ব্যবহার করা যেত না।
১) গানিতিক (Arithmetic) অর্থাৎ যোগ, বিয়োগ, গুন, ভাগ করার নির্দেশ।
২) নিয়ন্ত্রণ (Control) অর্থাৎ লোড (Load), স্টোর (Store) ও জাম্প (Jump) করার নির্দেশ।
৩) ইনপুট আউটপুট অর্থাৎ পড় (Read) ও লেখ (Write) নির্দেশ।
৪) প্রত্যক্ষ ব্যবহার (Derect use) অর্থাৎ আরম্ভ কর (Start), থাম (Halt) ও শেষ (End) করো নির্দেশ।
সাধারণত দ্বিতীয় প্রজন্মের ভাষা হিসেবে অ্যাসেম্বলি ভাষা পরিচিত। এ ভাষাকে সাংকেতিক ভাষা ও বলা যেতে পারে। এর প্রচলন শুরু হয় আনুমানিক ১৯৫০ সালের দিকে। দ্বিতীয় প্রজন্মের কম্পিউটারের ভাষা হিসেবে জনপ্রিয়তা লাভ করেছিল।
এই ভাষার ক্ষেত্রে নির্দেশনা ও ডেটার অ্যাড্রেস বাইনারি বা হেক্সাডেসিমেল সংখ্যার সাহায্যে না দিয়ে সংকেত এর মাধ্যমে দেওয়া হতো। এই সংকেত গুলোকে নেমোনিক বা সাংকেতিক কোড বলে। যে সংকেত এর সাহায্যে কোন বড় সংখ্যা বা কথাকে মনে রাখতে সুবিধা হয় তাকে নেমোনিক বলে। উদাহরণ -অ্যাকিউমুলেটরে রাখা এর নেমোনিক LDA। এই ভাষায় ডেটা ও ডেটার অ্যাড্রেস নেমোনিক এর সাহায্যে দেওয়া হয়। এ কাজের জন্য আলফানিউমারিক ও নিউমারিক বর্ণ ব্যাবহৃত হয়। একসাথে এক বা একের অধিক বর্ণ ব্যবহার করা যায় তবে সব বামে যে বর্ণ থাকে তা সর্বদা অক্ষর হয়। যেমন- A, B, A1, B2 ইত্যাদি। এ ভাষায় রচিত একটি প্রোগ্রাম ব্যাখ্যা সহ চিত্রের মাধ্যমে নিচে দেখানো হলো। প্রোগ্রামের নাম : A ও B ইনপুটকে যোগ করে যোগফল অ্যাকিউমুলেটরে রাখ।
সাংকেতিক কোড বা নেমোনিক এর ব্যবহার করে যে ভাষার প্রোগ্রাম করা হয় তাকে অ্যাসেম্বলি ভাষা বলা হয়। সাধারণত চারটি অংশে অ্যাসেম্বলি ভাষার পুরো নির্দেশ দেওয়া হয়।
১। লেবেল (Lebel),
২। অপারেশন কোড,
৩। অপারেন্ড ও
৪। মন্তব্য (Comment)।
তবে কিছু কিছু ক্ষেত্রে অ্যাসেম্বলি ভাষার পুরো নির্দেশে লেবেল, অপারেন্ড ও মন্তব্য নাও থাকতে পারে। প্রত্যেক অংশকে ফিল্ড বলে। সব ক্ষেত্রে সর্বদা এক লাইনে থাকে।
নির্দেশের সাংকেতিক অ্যাড্রেস লেবেলে থাকে। জাম্পের ক্ষেত্রে পরবর্তী নির্দেশের অ্যাড্রেশ লেবেলে দেওয়া হয়। অনেক সময় লেবেল নাও থাকতে পারে। লেবেলে এক হতে দুটি আলফানিউমেরিক বর্ণ থাকে যার মধ্যে কোন ফাঁক থাকে না। লেবেলের প্রথম বর্ণ সর্বদাই কোন অক্ষর।
নির্দেশ নেমোনিক অপারেশন কোডে থাকে। আলাদা আলাদা কম্পিউটারের ক্ষেত্রে এই নেমোনিকগুলো ভিন্ন হতে পারে। তবে সাধারণত LDA, STA, ADD, CLR ইত্যাদির মতো হয়।
সাধারণত আলফানিউমেরিক বর্ণ দ্বারা অপারেন্ডের অবস্থানের অ্যাড্রেস বোঝানো হয়। যেমন- A, B, A1, B2, AB, MN ইত্যাদি।
প্রোগ্রামারের নিজের সুবিধার জন্য মন্তব্য ব্যবহৃত হয়। মন্তব্য মেশিন ভাষায় অনূদিত হয় না। মন্তব্য আসলে প্রত্যেক নির্দেশের ব্যাখ্যা যাতে ভবিষ্যতে প্রোগ্রামার বা অন্য কেউ প্রোগ্রাম এর সঠিক অর্থ বুঝতে পারে। মন্তব্য না থাকলে প্রোগ্রামারের নিজের পক্ষেও সহজে প্রোগ্রাম বুঝতে অসুবিধা হয়।
অ্যাসেম্বলি ভাষাও মেশিন ভাষার মতো কম্পিউটারের গঠনের উপর নির্ভরশীল অর্থাৎ এক মডেলের কম্পিউটার অ্যাসেম্বলি ভাষায় লিখিত প্রোগ্রাম অন্য কোন মডেলের কম্পিউটারে ব্যবহার নাও করা যেতে পারে।
মেশিন ও অ্যাসেম্বলি ভাষার একটা বড় ধরনের সমস্যা ছিল। আর সমস্যাটা হলো এক কম্পিউটারের জন্য রচিত প্রোগ্রাম অন্য ধরনের কম্পিউটার ব্যবহার করা যায় না। তাছাড়া এই দুটি ভাষা কে লো লেভেল ভাষা বলে যার প্রোগ্রাম লেখা কষ্টকর এবং শ্রমসাধ্য বিষয়। এই লো লেভেল ভাষা কম্পিউটারের বোঝা সহজ হলেও মানুষের পক্ষে এই ভাষা বোঝা খুবই কঠিন। আর এ অসুবিধা থেকে মুক্তির জন্য উচ্চতর ভাষার উদ্ভব হয়।
মানুষের ভাষার সাথে মিল খুঁজে পাওয়া যায় এমন ভাষার নাম উচ্চতর ভাষা বা হাই লেভেল ভাষা। হাই লেভেল ভাষায় লিখিত প্রোগ্রাম ভিন্ন ধরনের মেশিনে ব্যবহার করা যাবে। এই প্রোগ্রাম ভাষা কম্পিউটার সংগঠনের নিয়ন্ত্রণ এর উর্দ্ধে থাকে বলে এসব ভাষাকে উচ্চতর ভাষা বলা হয়। উচ্চতর ভাষার উদাহরণ হল বেসিক, প্যাস্কেল, সি, কোবল ইত্যাদি।
স্বাভাবিক ভাষার মতো হাই লেভেল ভাষায় গঠনগত নিয়ম কানুম আছে। হাই লেভেল ভাষার কয়েকটি গুরুত্বপূর্ণ বৈশিষ্ট্য সম্পর্কে আমাদের জানা প্রয়োজন।
আনুমানিক ২৫ টির মত সাধারন হাই লেভেল ভাষা আছে। তারমধ্যে উল্ল্যেখযোগ্য ভাষা গুলো হল অ্যালগল, কোবল, পিএল/1, এপিএল, লোগো, লিম্প, সি, প্রোলগ, ফোর্থ, ফোরট্রান, প্যাস্কাল ও বেসিক।
১৯৭০ সালে প্রথম C ভাষা তৈরি হয়। এই ভাষা যিনি তৈরি করেন তার নাম ডেনিস রিচি। যুক্তরাষ্ট্রের বেল ল্যাবরেটরিতে তিনি এ ভাষার তৈরি করেন। এ ভাষা আবিষ্কার হওয়ার প্রায় আট বছর পর পর্যন্ত যুক্তরাষ্ট্রের বেল ল্যাবরেটরীতে এটি ব্যবহার হতো। কিছুদিন পরে এ ভাষাকে সর্বসম্মুখে উন্মুক্ত করা হয়। কার্যকরী ভাষা এবং শক্তিশালী ভাষা হওয়ায় সি ভাষাটি জনসম্মুখে জনপ্রিয়তা লাভ করে। সত্যি কথা বলতে C হচ্ছে একটি উচ্চস্তরের প্রোগ্রামিং ভাষা। একে উচ্চস্তরের স্ট্রাকচার্ড প্রোগ্রামিং ভাষাও বলা যেতে পারে। এই প্রোগ্রামিং ভাষাটির সাহায্যে সাধারণত সব ধরনের কাজ করা যায় অর্থাৎ C একটি General Purpose প্রোগ্রামিং ভাষা।
C+ + একটি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ভাষা। সময়কাল ১৯৮০ তে বিয়ার্নে স্ট্রোভস্ট্রুভ যুক্তরাষ্ট্রের AT and T Bell Laboratory তে এ ভাষা আবিষ্কার করেন। সি প্রোগ্রামিং ভাষার সুবিধাজনক বৈশিষ্ট্যগুলো এবং সিমুলা ৬৭ এর সমন্বয় সাধন করে সি+ ভাষা তৈরি করা হয়েছে। এটি এমন একটি ভাষা যাকে মধ্যম স্তরে স্থান দেওয়া হয়েছে এবং এই ভাষাতে উচ্চস্তরের ও নিম্নস্তরের সুবিধাগুলো সংযুক্ত রয়েছে। এই ভাষাটি সফটওয়্যার শিল্পে একটি বহুল ব্যবহৃত এবং সর্বকালের জনপ্রিয় অন্যতম প্রোগ্রামিং ভাষা। যেমন- সিস্টেম সফটওয়্যার, অ্যাপ্লিকেশন সফটওয়্যার, ডিভাইস ড্রাইভার, এম্বেডেড সফটওয়্যার উচ্চমানের সার্ভার ও ক্লাইন্ট অ্যাপ্লিকেশন, বিনোদন সফটওয়্যার, ভিডিও গেইম ইত্যাদি ক্ষেত্রে C+ + ব্যাবহৃত হচ্ছে।
ভিজুয়াল বেসিক একটি তৃতীয় প্রজন্মের ইভেন ড্রাইভেন প্রোগ্রামিং ভাষা যা মাইক্রোসফটের COM (Component Object Model) এর IDE (Integratet Development Environment) হিসেবে পরিচিত। Microsoft এই ভাষাকে বাজারে আনে পুরাতন বেসিক ভাষার উন্নত সংস্করণ হিসেবে। দৃশ্যমান ও গ্রাফিক্যাল বৈশিষ্ট্য সম্পন্ন এবং বেসিক ভাষার উত্তরাধিকার ভিজুয়্যাল বেসিক কে তুলনামূলকভাবে সহজে আয়ত্ত করা যেত এবং ব্যবহার করার সুবিধা প্রদান করেছে। ভিজুয়াল বেসিক এর শেষ প্রকাশনা প্রকাশিত হয় ১৯৯৮ সালে এবং তখন এর সংস্করণ ছিল ৬। VisualBasic.NET দ্বারা বর্তমানে এ ভাষা প্রতিস্থাপিত হয়েছে একজন প্রোগ্রামার ভিজুয়াল বেসিক এর সাথে থাকা কম্পোনেন্টের দ্বারা একটি অ্যাপ্লিকেশন প্রোগ্রাম তৈরী করতে পারে।
জাভা আসলে একটি প্রোগ্রামিং ভাষা। সান মাইক্রোসিস্টেমের ৯০ এর দশকের শুরুর দিকে জাভা ডিজাইন করা হয়। পরে এটি দ্রুত বিশ্বের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষার একটিতে পরিণত হয়। জাভা প্রোগ্রামিং ভাষার জনপ্রিয়তার মূল কারণ এর বহন যোগ্যতা, নিরাপত্তা এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ও ওয়েব প্রোগ্রামিং এর পরিপূর্ণ সাপোর্ট। জাভা ব্যবহারের পুর্বে যে সকল প্রোগ্রামিং ভাষা আবিষ্কৃত হয়েছিল সেগুলো এক অপারেটিং সিস্টেম জন্য তৈরি করলে অন্য অপারেটিং সিস্টেমে ব্যবহার করা যেত না।
জাভা ভাষায় লেখা প্রোগ্রামকে যেকোন অপারেটিং সিস্টেমে চালানো যায় শুধু যদি সেই অপারেটিং সিস্টেমে একটি জাভা রানটাইম এনভায়রনমেন্ট থেকে থাকে। আসলে এই সুবিধার কারণেই জাভা জনপ্রিয়তা লাভ করে। বিশেষ করে ইন্টারনেটে অসংখ্য কম্পিউটার যুক্ত থাকে এবং কম্পিউটার গুলো বিভিন্ন অপারেটিং সিস্টেম ব্যবহার করে থাকে সেখানে জাভায় লেখা অ্যাপলেটগুলো সকল কম্পিউটারে চলতে পারে এবং এর জন্য কোন বিশেষ ব্যবস্থা নেওয়ার প্রয়োজন পড়ে না। অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং জাভার জন্য গুরুত্বপূর্ণ দিক। অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর কারণে জাভায় অতিদীর্ঘ প্রোগ্রাম লেখা এবং ত্রুটিমুক্ত করা অনেক সহজ হয়েছে।
অবজেক্ট রিলেশনাল ডেটাবেজ ম্যানেজমেন্ট সিস্টেম Oracle বাজারজাত করে। এটি সাধারনত Oracle RDBMS নামে পরিচিত। ১৯৭৭ সালে Software Development Laboratories Oracle Software উন্নয়ন করে।
অ্যালগল এর পুর্ণ নাম Algorithmic Language। ১৯৫৮ সালে সর্বজনীন ভাষা হিসেবে সব কম্পিউটারে ব্যবহার যোগ্য হয়। বৈজ্ঞানিক ও প্রকৌশলিক সমস্যা সমাধানের জন্য এ ভাষার উদ্ভব হয়।
ফোরট্রান আদিতম উচ্চ স্তরের নির্দেশ মুলক প্রোগ্রামিং ভাষা। Fortran শব্দের অর্থ FORmula TRANslator। জন বাকাস ও তার আইবিএম এর সহকর্মীরা কর্মরত অবস্থায় ১৯৫০ এর দশকের মাঝামাঝি এটি তৈরি করেন। ফোরট্রান এর গুরুত্বপূর্ণ সংস্করণ গুলো হলো Fortran I, Fortran II, Fortran III, Fortran IV, Fortran 77 এবং Fortran 90। এদের মধ্যে শেষের দুটি বিবরণ ANSI মান আকারে প্রকাশিত হয়েছে। Fortran 77 ই সবচেয়ে বেশি প্রচলিত। ফোরট্রান দিয়ে অসংখ্য গানিতিক হিসাব খুব সহজেই করা যায়। ফোরট্রান দিয়ে ইঞ্জিনিয়ারিং এর হিসাব নিকাশ ও খুব সহজেই করা যায়।
পাইথন হলো একটি অবজেক্ট অরিয়েন্টেড উচ্চস্তরের প্রোগ্রামিং ভাষা। সময়কাল ১৯৯১ এ গুইডো ভ্যান রোসাম এটি প্রকাশ করেন। পাইথন নির্মাণ করার সময় প্রোগ্রামকে পঠন যোগ্যতার ওপর জোর দেয়া হয়েছিল। এখানে প্রোগ্রামারের পরিশ্রমকে কম্পিউটারের চেয়ে বেশি গুরুত্ব দেয়া হয়েছে। পাইথন ভাষাটির স্ট্যান্ডার্ড লাইব্রেরি অনেক সমৃদ্ধ তবে এর কোর সিন্টেক্স খুবই সক্ষিপ্ত। ১৯৯৪ সালের জানুয়ারিতে পাইথন 1.0 সংস্করণে প্রবেশ করে।
কম্পিউটারে সহজে ব্যবহারের জন্য উদ্ভাবিত কয়টি ভাষাকে চতুর্থ প্রজন্মের ভাষা বা 4GL বলা হয়। উচ্চতর ভাষায় তুলনায় চতুর্থ প্রজন্মের ভাষা খুবই সহজ যদিও এর জন্য প্রসেসিং ক্ষমতা বেশি দরকার। 4GL এর সাহায্যে সহজেই অ্যাপ্লিকেশন তৈরি করা যায় তাই একে Rapid Application Development টুল ও বলা হয়।
রিপোর্ট জেনারেটর বা ডেটা সঞ্চালনের জন্য ব্যবহৃত ভাষা সমূহ বা ডেটাবেজ ম্যানেজমেন্ট এর সাথে সংশ্লিস্ট কুয়েরিকে চতুর্থ প্রজন্মের ভাষা হিসেবে বিবেচনা করা হয়। এসব ভাষা ইংরেজি ভাষার মতো নির্দেশ দিয়ে কম্পিউটার ব্যবহারকারী ডেটাবেজ এর সাথে সংযোগ স্থাপন এবং ডেটা আদান প্রদান করতে পারে। কয়েকটি চতুর্থ প্রজন্মের ভাষা হলো SQL, NOMAD, RPG 3, FOCUS, Intellect BPM ইত্যাদি।
পঞ্চম প্রজন্মের প্রোগ্রামের ভাষা হিসেবে মানুষের স্বাভাবিক ভাষা বা স্বাভাবিক ল্যাঙ্গুয়েজ ব্যবহারের প্রচেষ্টা চলছে। এ প্রচেষ্টা অনেক দূর এগিয়েছে এবং এগোচ্ছে বর্তমানে। ন্যাশনাল ল্যাঙ্গুয়েজ দুই প্রকারের হতে পারে। একটি হলো মানুষের ভাষা যেমন বাংলা, ইংরেজি, আরবি, স্পেনিশ ইত্যাদি এবং অন্যটি হলো প্রোগ্রামিং ল্যাঙ্গুয়েজ যা মানুষের ভাষা ব্যবহার করে কম্পিউটারের সাথে স্বাভাবিক সম্পর্ক তৈরি করে। ন্যাচারাল ল্যাঙ্গুয়েজ সাধারণত অনেকটা ইংরেজি অথবা মানুষের ভাষার মতো হতে হবে। মানুষের ভাষা মত স্বাভাবিক ভাষায় কম্পিউটারের ব্যবহারের জন্য এখন অনেক পরীক্ষা-নিরীক্ষা চলছে। এ ধরনের ভাষাকে মেশিন ভাষায় রূপান্তর এর জন্য ব্যবহৃত অনুবাদক কে বুদ্ধিমান বা ইন্টেলিজেন্ট কম্পাইলার বলা হয়। এটি মূলত কৃত্রিম বুদ্ধিমত্তা প্রয়োগ ক্ষেত্র।
তো বন্ধুরা এই ছিলো আজকের এই টিউন। আশাকরি ভালো লেগেছে। ভালো লাগলে একটি জোসস দিয়ে আমাকে ধন্য করবেন। মন্তব্য থাকলে টিউমেন্ট করে আমাকে জানবেন। এতক্ষন ধরে এই টিউন পাঠ করার জন্য ধন্যবাদ। আজকের মতো এখানেই বিদায় নিচ্ছি আল্লাহ হাফেজ।
আমি মো তানজিন প্রধান। ২য় বর্ষ, বগুড়া আজিজুল হক কলেজ, গাইবান্ধা। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 4 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 91 টি টিউন ও 65 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 24 ফলোয়ার আছে এবং আমি টেকটিউনসে 4 টিউনারকে ফলো করি।
কখনো কখনো হারিয়ে যাই চিন্তার আসরে, কখনোবা ভালোবাসি শিখতে, কখনোবা ভালোবাসি শিখাতে, হয়তো চিন্তাগুলো একদিন হারিয়ে যাবে ব্যাস্ততার ভীরে। তারপর ব্যাস্ততার ঘোর নিয়েই একদিন চলে যাব কবরে।