প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম, উচ্চতর ও পরবর্তী প্রজন্মের ভাষা

এইচএসসি আইসিটি প্রোগ্রামিং ভাষা: মধ্যম ও উচ্চতর স্তরের ভাষা, সি (C), জাভা, পাইথন, ৪র্থ (4GL) ও ৫ম প্রজন্মের (5GL) ভাষার বিস্তারিত আলোচনা।

শেখা শুরু করুন

প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম, উচ্চতর ও পরবর্তী প্রজন্মের ভাষা

  1. প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম থেকে ৫ম প্রজন্ম
  2. কম্পিউটার কি আমাদের ভাষা বোঝে?
  3. মধ্যম স্তরের ভাষা (Mid-Level Language)
  4. C কেন মধ্যম স্তরের ভাষা?
  5. উচ্চতর ভাষা (High-Level Language)
  6. জনপ্রিয় কিছু উচ্চতর ভাষা
  7. ৪র্থ প্রজন্মের ভাষা (4GL): অতি উচ্চতর ভাষা
  8. ৫ম প্রজন্মের ভাষা (5GL): স্বাভাবিক ভাষা
  9. একনজরে ভাষার প্রজন্মসমূহ
  10. সারসংক্ষেপ: যা মনে রাখতে হবে

প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম থেকে ৫ম প্রজন্ম

এই লেকচার শেষে আমরা-

১। মধ্যম স্তরের ভাষা কী এবং কেন 'C' কে মধ্যম স্তরের ভাষা বলা হয় তা ব্যাখ্যা করতে পারব।
২। উচ্চতর ভাষার সুবিধা ও জনপ্রিয় ভাষাসমূহ বর্ণনা করতে পারব।
৩। ৪র্থ প্রজন্মের ভাষা (4GL) বা অতি উচ্চতর ভাষার বৈশিষ্ট্য ব্যাখ্যা করতে পারব।
৪। ৫ম প্রজন্মের ভাষা (5GL) ও কৃত্রিম বুদ্ধিমত্তার সম্পর্ক বিশ্লেষণ করতে পারব।
৫। প্রোগ্রামিং ভাষার বিভিন্ন প্রজন্মের মধ্যে তুলনামূলক পার্থক্য নির্ণয় করতে পারব।

আসসালামু আলাইকুম প্রিয় শিক্ষার্থীরা! আশা করি তোমরা সবাই ভালো আছো। এইচএসসি আইসিটি কোর্সের ৫ম অধ্যায়ে তোমাদের স্বাগতম। আজকের লেকচারটি খুবই ইন্টারেস্টিং, কারণ আজ আমরা জানব কম্পিউটার কীভাবে আমাদের কথা বোঝে। এই লেকচার শেষে আমরা- ১। মধ্যম স্তরের ভাষা কী এবং কেন 'C' কে মধ্যম স্তরের ভাষা বলা হয় তা ব্যাখ্যা করতে পারব। ২। উচ্চতর ভাষার সুবিধা ও জনপ্রিয় ভাষাসমূহ বর্ণনা করতে পারব। ৩। ৪র্থ প্রজন্মের ভাষা বা 4GL এর বৈশিষ্ট্য ব্যাখ্যা করতে পারব। ৪। ৫ম প্রজন্মের ভাষা ও কৃত্রিম বুদ্ধিমত্তার সম্পর্ক বিশ্লেষণ করতে পারব এবং ৫। প্রোগ্রামিং ভাষার বিভিন্ন প্রজন্মের মধ্যে তুলনামূলক পার্থক্য নির্ণয় করতে পারব। চলো তাহলে শুরু করা যাক!

কম্পিউটার কি আমাদের ভাষা বোঝে?

ভেবে দেখো তো:
- তুমি যখন Google Assistant বা Siri-কে বলো 'Call Home', সে সাথে সাথে কল দেয়।
- কিন্তু কম্পিউটার তো শুধু ০ আর ১ (মেশিন ভাষা) বোঝে।
- তাহলে এই ইংরেজির মতো কমান্ড সে বুঝলো কীভাবে?

মূল ধারণা:
* মেশিন ভাষা (০, ১) মানুষের জন্য কঠিন।
* মানুষের ভাষা (ইংরেজি) মেশিনের জন্য দুর্বোধ্য।
* মাঝখানে প্রয়োজন 'অনুবাদক' বা বিশেষ স্তরের ভাষা।

তোমরা কি কখনো ভেবে দেখেছ? তোমরা যখন মোবাইল হাতে নিয়ে Siri বা Google Assistant-কে বলো 'Play a song', তখন সাথে সাথে গান বেজে ওঠে। কিন্তু গত লেকচারে আমরা কী শিখেছিলাম? কম্পিউটার বা মোবাইল তো আসলে কিছুই বোঝে না, সে শুধু চেনে ০ আর ১। তাহলে তোমার বলা ইংরেজি কথা সে বুঝলো কীভাবে? আসলে আমাদের ভাষা আর মেশিনের ভাষার মাঝখানে বিশাল একটা দূরত্ব আছে। এই দূরত্ব কমানোর জন্যই বিজ্ঞানীরা তৈরি করেছেন বিভিন্ন স্তরের প্রোগ্রামিং ভাষা।

মধ্যম স্তরের ভাষা (Mid-Level Language)

সংজ্ঞা: যে ভাষায় লো-লেভেল ভাষার সুবিধা (বিট/হার্ডওয়্যার নিয়ন্ত্রণ) এবং হাই-লেভেল ভাষার সুবিধা (সহজ সিনট্যাক্স) - উভয়ই পাওয়া যায়।

বৈশিষ্ট্য:
১। বিট পর্যায়ে প্রোগ্রামিং করা যায়।
২। মেমোরি অ্যাড্রেস বা পয়েন্টার নিয়ে কাজ করা যায়।
৩। মানুষের ভাষার মতো কিছুটা বোধগম্য।

উদাহরণ: C, C++, Forth।

প্রথমে আসি মধ্যম স্তরের ভাষা বা Mid-Level Language-এ। নাম শুনেই বুঝতে পারছ, এটা মাঝখানের একটা অবস্থা। চিন্তা করো এমন একজন মেকানিকের কথা, যে গাড়ি চালাতেও পারে আবার ইন্জিন খুলে তারও জোড়া লাগাতে পারে। মিড-লেভেল ল্যাঙ্গুয়েজ হলো সেই মেকানিক। এই ভাষা দিয়ে তুমি কম্পিউটারের হার্ডওয়্যার, যেমন মেমোরির বিট বা বাইট সরাসরি নিয়ন্ত্রণ করতে পারো, যেটা লো-লেভেল ভাষার কাজ। আবার একই সাথে তুমি ইংরেজির মতো কমান্ডও ব্যবহার করতে পারো, যেটা হাই-লেভেল ভাষার সুবিধা। অর্থাৎ, এটি হার্ডওয়্যার এবং প্রোগ্রামার—উভয়ের সাথেই কথা বলতে পারে।

C কেন মধ্যম স্তরের ভাষা?

C ভাষাকে মিড-লেভেল ল্যাঙ্গুয়েজ বলা হয় কারণ:

  1. হার্ডওয়্যার নিয়ন্ত্রণ: বিট, বাইট ও মেমোরি অ্যাড্রেস সরাসরি নিয়ন্ত্রণ করা যায় (লো-লেভেলের বৈশিষ্ট্য)।
  2. স্ট্রাকচার্ড প্রোগ্রামিং: উচ্চতর ভাষার মতো ফাংশন ও লজিক ব্যবহার করা যায় (হাই-লেভেলের বৈশিষ্ট্য)।

ব্যবহার: অপারেটিং সিস্টেম (যেমন: Windows, Unix) তৈরিতে এটি অপরিহার্য।

এখন একটা খুব গুরুত্বপূর্ণ প্রশ্ন, যেটা প্রায়ই তোমাদের মাথায় আসে বা কনসেপ্ট ক্লিয়ার থাকা দরকার—C ল্যাঙ্গুয়েজকে কেন বিশেষভাবে 'মিড-লেভেল' বলা হয়? কারণ C হলো একটা অলরাউন্ডার। C দিয়ে তুমি অপারেটিং সিস্টেম বা সিস্টেম সফটওয়্যার বানাতে পারো, যা হার্ডওয়্যারের খুব গভীরে গিয়ে কাজ করে। আবার এই C দিয়েই তুমি সাধারণ অ্যাপ্লিকেশন সফটওয়্যারও বানাতে পারো। অর্থাৎ, এর একদিকে আছে হার্ডওয়্যার নিয়ন্ত্রণের ক্ষমতা, আর অন্যদিকে আছে হাই-লেভেল ভাষার মতো স্ট্রাকচার্ড প্রোগ্রামিংয়ের সুবিধা। এই দুই গুণের সংমিশ্রণের কারণেই C অনন্য।

উচ্চতর ভাষা (High-Level Language)

সংজ্ঞা: মানুষের ভাষার (ইংরেজি) সাথে মিল সম্পন্ন যে ভাষায় কম্পিউটার হার্ডওয়্যারের সংগঠন সম্পর্কে জানার প্রয়োজন হয় না।

প্রধান সুবিধাসমূহ:
১। মেশিন নির্ভর নয় (Machine Independent) - এক কম্পিউটারের প্রোগ্রাম অন্য কম্পিউটারে চলে।
২। প্রোগ্রাম লেখা ও ডিবাগ (ভুল সংশোধন) করা সহজ।
৩। মেমোরি অ্যাড্রেস মনে রাখার প্রয়োজন নেই।

এবার আমরা হার্ডওয়্যার থেকে একটু দূরে সরে আসি। চলে আসি উচ্চতর ভাষা বা High-Level Language-এ। এটা প্রোগ্রামারদের জন্য আশীর্বাদ। কেন জানো? কারণ এই ভাষায় কোড লেখার সময় তোমাকে চিন্তাই করতে হবে না যে কম্পিউটারের র‍্যামের কোন মেমোরি অ্যাড্রেসে ডেটা জমা হচ্ছে। তুমি শুধু তোমার লজিক বা সমাধানের দিকে মনোযোগ দেবে। আর সবচেয়ে বড় সুবিধা হলো, এটা 'মেশিন ইন্ডিপেন্ডেন্ট'। অর্থাৎ, তুমি তোমার ল্যাপটপে কোড লিখে সেটা বন্ধুর ডেস্কটপে বা অন্য কোনো মেশিনে চালালে সেটা দিব্যি চলবে।

জনপ্রিয় কিছু উচ্চতর ভাষা

১। C/C++:
সিস্টেম সফটওয়্যার ও গেম ডেভেলপমেন্টে বহুল ব্যবহৃত।

২। Java:
সব ধরনের ডিভাইসে চলে। অ্যান্ড্রয়েড অ্যাপ তৈরিতে এক সময় প্রধান ভাষা ছিল।

৩। Python:
বর্তমানে সবচেয়ে জনপ্রিয়। কৃত্রিম বুদ্ধিমত্তা (AI), ডেটা সায়েন্স ও হ্যাকিং-এ ব্যবহৃত হয়।

উচ্চতর ভাষার জগতটা বিশাল। এর মধ্যে কিছু ভাষা তারকার মতো উজ্জ্বল। যেমন ধরো Python—এর নাম তো তোমরা শুনেছই। বর্তমানে আর্টিফিশিয়াল ইন্টেলিজেন্স বা ডেটা সায়েন্সের যুগে এটি খুব জনপ্রিয়। আবার মোবাইলে যে অ্যাপ চালাও, তার অনেকগুলোই Java বা Kotlin দিয়ে তৈরি। সি বা সি-প্লাস-প্লাস দিয়ে তৈরি হয় বড় বড় গেমস এবং সফটওয়্যার। আর ইতিহাসের দিকে তাকালে দেখবে Fortran, যা ছিল প্রথম দিকের উচ্চতর ভাষা, মূলত বিজ্ঞানীদের জটিল অংক কষার জন্য তৈরি হয়েছিল।

৪র্থ প্রজন্মের ভাষা (4GL): অতি উচ্চতর ভাষা

পরিচিতি: একে 'নন-প্রসিডিউরাল' (Non-Procedural) ল্যাঙ্গুয়েজ বলা হয়।

মূল মন্ত্র: 'What to do' (কী করতে হবে) - কম্পিউটারকে শুধু এটা বললেই হয়। 'How to do' (কিভাবে করতে হবে) বলা লাগে না।

বৈশিষ্ট্য:
* ডেটাবেজ ব্যবস্থাপনায় ব্যবহৃত হয়।
* কোড লেখা খুব সহজ এবং ছোট।
* উদাহরণ: SQL (Structured Query Language), Oracle।

এবার আসি ৪র্থ প্রজন্মের ভাষায় বা 4GL-এ। এটাকে বলা হয় 'অতি উচ্চতর ভাষা'। কেন জানো? আগের ভাষাগুলোতে কম্পিউটারকে ধাপে ধাপে বলে দিতে হতো—'প্রথমে এটা করো, তারপর ওটা করো'। কিন্তু 4GL-এ আমরা বসের মতো আচরণ করি! আমরা কম্পিউটারকে শুধু বলি—'আমার এই তথ্যটা দরকার' (What to do), কিন্তু 'কিভাবে আনবে' (How to do) তা বলি না। কম্পিউটার নিজেই বুঝে নেয়। যেমন SQL ল্যাঙ্গুয়েজ দিয়ে আমরা বলি 'সব ছাত্রের নাম দেখাও', আর সে সাথে সাথে ডেটাবেজ থেকে সেটা বের করে দেয়।

৫ম প্রজন্মের ভাষা (5GL): স্বাভাবিক ভাষা

ধারণা: ন্যাচারাল ল্যাঙ্গুয়েজ (Natural Language) বা মানুষের স্বাভাবিক ভাষা ব্যবহার করে কম্পিউটারকে নির্দেশ দেওয়া।

সম্পর্ক: এটি কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence) বা AI-এর সাথে যুক্ত।

লক্ষ্য: মানুষ যেভাবে কথা বলে, কম্পিউটারও সেভাবে বুঝবে এবং সমস্যার সমাধান করবে। প্রোগ্রামারকে কোনো কোড লিখতে হবে না।

উদাহরণ: PROLOG, LISP, Mercury।

আমরা এখন ৫ম প্রজন্মের দিকে এগোচ্ছি। এটা অনেকটা সায়েন্স ফিকশন মুভির মতো। এখানে লক্ষ্য হলো, আমরা কোড লিখব না, আমরা কম্পিউটারের সাথে গল্প করব। আমরা সমস্যাটা বর্ণনা করব, আর কম্পিউটার তার নিজস্ব বুদ্ধিমত্তা বা AI ব্যবহার করে সমাধান বের করবে। আমরা যেমন একে অপরের সাথে স্বাভাবিক ভাষায় কথা বলি, কম্পিউটারের সাথেও সেভাবে কথা বলা যাবে। PROLOG বা LISP-এর মতো ভাষাগুলো এই গবেষণায় ব্যবহৃত হচ্ছে। ভবিষ্যৎ হয়তো এমন হবে যে, কোডিং জানা ছাড়াও শুধু লজিক দিয়ে সফটওয়্যার বানানো যাবে।

একনজরে ভাষার প্রজন্মসমূহ

চলো পুরো ইতিহাসটা এক নজরে দেখে নিই। এই টাইমলাইনটা দেখো। যাত্রা শুরু হয়েছিল ১৯৪৫ সালে কঠিন মেশিন ভাষা দিয়ে, যেখানে শুধু ০ আর ১ ছিল। এরপর এলো অ্যাসেম্বলি ভাষা। তারপর ৬০-এর দশকে এলো উচ্চতর ভাষা যা আমাদের জীবন সহজ করে দিল। ৭০-এর দশকে এলো ডেটাবেজ নির্ভর 4GL। আর এখন, ১৯৮০-র দশক থেকে বর্তমান সময় পর্যন্ত চলছে ৫ম প্রজন্মের বা বুদ্ধিমত্তাসম্পন্ন ভাষার যুগ। যত সময় গেছে, ভাষা তত মানুষের কাছাকাছি এসেছে এবং হার্ডওয়্যার থেকে দূরে সরে গেছে।

সারসংক্ষেপ: যা মনে রাখতে হবে

আজকের লেকচারের মূল বিষয়গুলো:

১। মধ্যম স্তরের ভাষা (C): হার্ডওয়্যার ও অ্যাপ্লিকেশন—উভয়ই তৈরি করতে পারে।
২। উচ্চতর ভাষা: মেশিন নির্ভর নয় এবং শেখা সহজ (যেমন: Python, Java)।
৩। ৪র্থ প্রজন্মের ভাষা (4GL): 'কিভাবে' নয়, 'কী' করতে হবে তা বলা হয় (যেমন: SQL)।
৪। ৫ম প্রজন্মের ভাষা: মানুষের স্বাভাবিক ভাষা ও বুদ্ধিমত্তার (AI) উপর ভিত্তি করে তৈরি।

আজকে আমরা প্রোগ্রামিং ভাষার বিবর্তন নিয়ে অনেক গুরুত্বপূর্ণ বিষয় জানলাম। বিশেষ করে C কেন মিড-লেভেল ল্যাঙ্গুয়েজ এবং 4GL-এর 'What to do' কনসেপ্টটা খুব ভালো করে মনে রাখবে। এগুলো বুঝতে পারলে প্রোগ্রামিং এর জগতটা তোমার কাছে অনেক পরিষ্কার হয়ে যাবে। আজকের লেকচার এ পর্যন্তই। পরের লেকচারে আমরা 'অনুবাদক প্রোগ্রাম' বা Translator নিয়ে কথা বলব, যেটা ছাড়া এই ভাষাগুলো কম্পিউটার বুঝতেই পারত না। সবাই ভালো থেকো, আল্লাহ হাফেজ!

প্রোগ্রামিং ভাষার শ্রেণিবিভাগ: মধ্যম, উচ্চতর ও পরবর্তী প্রজন্মের ভাষা

পড়তে প্রায় 5 মিনিট

গত পাঠে আমরা জেনেছি মেশিনের নিজস্ব ভাষা (০ এবং ১) এবং অ্যাসেম্বলি ভাষা সম্পর্কে। সেই ভাষাগুলো ছিল কম্পিউটারের খুব কাছাকাছি, কিন্তু মানুষের জন্য বোঝা বা মনে রাখা ছিল অত্যন্ত কঠিন। প্রযুক্তির অগ্রগতির সাথে সাথে প্রয়োজন দেখা দিল এমন এক প্রোগ্রামিং ভাষার, যা হবে মানুষের ভাষার মতোই সহজবোধ্য। এই প্রয়োজন থেকেই জন্ম নেয় মধ্যম স্তরের ভাষা (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-কে কেন মধ্যম স্তরের ভাষা বলা হয়?


এইচএসসি পরীক্ষায় এই প্রশ্নটি প্রায়ই অনুধাবনমূলক (খ-সেট) হিসেবে আসে। উত্তরটি এভাবে লিখবে:

  1. বিট ও বাইট নিয়ন্ত্রণ: C ভাষা ব্যবহার করে মেমোরির বিট ও বাইট পর্যায়ে সরাসরি কাজ করা যায় এবং মেমোরি অ্যাড্রেস নিয়ন্ত্রণ করা যায়, যা লো-লেভেল বা মেশিন ভাষার বৈশিষ্ট্য।

  2. উচ্চস্তরের সুবিধা: এতে ইংরেজি শব্দের মতো কমান্ড, ফাংশন, এবং ডাটা টাইপ ব্যবহার করা যায়, যা হাই-লেভেল ভাষার বৈশিষ্ট্য।

  3. দ্বৈত ব্যবহার: 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) খুঁজে বের করে তা সমাধান করার প্রক্রিয়া।

অনুশীলনের প্রশ্ন

সৃজনশীল প্রশ্ন

সৃজনশীল প্রশ্ন ১

সুমি তার ল্যাপটপে ইংরেজি শব্দের মতো নির্দেশ ব্যবহার করে একটি গাণিতিক সমস্যার সমাধানের প্রোগ্রাম লিখল। এই প্রোগ্রামটি পরিবর্তন ছাড়াই যেকোনো কম্পিউটারে চালানো যায়। তার বন্ধু রনি বলল, "তোমার ব্যবহৃত ভাষাটি মানুষের ভাষার কাছাকাছি, তবে কম্পিউটার এটি সরাসরি বুঝতে পারে না, অনুবাদের প্রয়োজন হয়।"

ক) উচ্চতর ভাষা কী?
খ) "সি (C) একটি মধ্যম স্তরের ভাষা" — ব্যাখ্যা কর।
গ) উদ্দীপকে সুমির ব্যবহৃত প্রোগ্রামিং ভাষার বৈশিষ্ট্য বর্ণনা কর।
ঘ) উদ্দীপকের ভাষাটির সাথে মেশিন ভাষার পার্থক্য বিশ্লেষণ কর।

উত্তর

ক) উচ্চতর ভাষা বা হাই লেভেল ল্যাঙ্গুয়েজ (High Level Language) হলো এমন এক ধরনের প্রোগ্রামিং ভাষা যা মানুষের ভাষার (যেমন ইংরেজি) সাথে মিল সম্পন্ন এবং কম্পিউটার হার্ডওয়্যারের ওপর নির্ভর করে না।

খ) 'সি' (C) ভাষাকে মধ্যম স্তরের ভাষা (Mid-Level Language) বলা হয় কারণ এই ভাষায় উচ্চতর ভাষার সুবিধা (যেমন— মানুষের বোধগম্য সিনট্যাক্স, পোর্টেবিলিটি) এবং নিম্নস্তরের বা মেশিন ভাষার সুবিধা (যেমন— বিট, বাইট ও মেমোরি অ্যাড্রেস নিয়ে সরাসরি কাজ করা) উভয়ই বিদ্যমান। এটি সিস্টেম প্রোগ্রামিং এবং অ্যাপ্লিকেশন প্রোগ্রামিং উভয়ের জন্যই উপযোগী।

গ) উদ্দীপকে সুমির ব্যবহৃত ভাষাটি হলো উচ্চতর ভাষা (High Level Language)। নিচে এর বৈশিষ্ট্যগুলো বর্ণনা করা হলো:
১. মানুষের ভাষার সাথে সাদৃশ্য: উদ্দীপকে বলা হয়েছে সুমি "ইংরেজি শব্দের মতো নির্দেশ" ব্যবহার করেছে, যা উচ্চতর ভাষার প্রধান বৈশিষ্ট্য।
২. মেশিন নির্ভরতা নেই: উদ্দীপকে উল্লেখ আছে "প্রোগ্রামটি যেকোনো কম্পিউটারে চালানো যায়"। উচ্চতর ভাষা হার্ডওয়্যার নিরপেক্ষ, তাই এক কম্পিউটারে লেখা প্রোগ্রাম অন্য কম্পিউটারে চলে।
৩. অনুবাদের প্রয়োজনীয়তা: রনি বলেছে "কম্পিউটার এটি সরাসরি বুঝতে পারে না", যা সঠিক। উচ্চতর ভাষাকে মেশিন ভাষায় রূপান্তর করতে কম্পাইলার বা ইন্টারপ্রেটার প্রয়োজন হয়।
৪. সহজ ডিবাগিং: এই ভাষায় প্রোগ্রাম লেখা ও ভুল সংশোধন করা (Debug) মেশিন বা অ্যাসেম্বলি ভাষার তুলনায় অনেক সহজ।

ঘ) উদ্দীপকে সুমির ভাষাটি উচ্চতর ভাষা। নিচে এর সাথে মেশিন ভাষার (Machine Language) পার্থক্য বিশ্লেষণ করা হলো:

  1. বোধগম্যতা: উচ্চতর ভাষা মানুষের ভাষার (ইংরেজি) কাছাকাছি হওয়ায় এটি শিখতে ও বুঝতে সহজ। অন্যদিকে, মেশিন ভাষা শুধুমাত্র ০ এবং ১ (বাইনারি) দিয়ে গঠিত হওয়ায় এটি মানুষের জন্য বোঝা অত্যন্ত কঠিন।
  2. হার্ডওয়্যার নির্ভরতা: সুমির ব্যবহৃত উচ্চতর ভাষা মেশিন-নির্ভর নয়, অর্থাৎ সব কম্পিউটারে চলে। কিন্তু মেশিন ভাষা সম্পূর্ণ হার্ডওয়্যার বা মেশিন-নির্ভর; এক ধরনের কম্পিউটারের জন্য লেখা মেশিন কোড অন্য কম্পিউটারে চলে না।
  3. অনুবাদক প্রোগ্রাম: উচ্চতর ভাষার প্রোগ্রাম কম্পিউটার সরাসরি বুঝবে না, তাই অনুবাদক প্রোগ্রামের (Compiler/Interpreter) প্রয়োজন হয়। মেশিন ভাষা কম্পিউটার সরাসরি বুঝতে পারে, তাই কোনো অনুবাদকের প্রয়োজন হয় না।
  4. মেমোরি ব্যবস্থাপনা: উচ্চতর ভাষায় প্রোগ্রামারকে মেমোরি অ্যাড্রেস নিয়ে ভাবতে হয় না। কিন্তু মেশিন ভাষায় প্রোগ্রাম লেখার সময় মেমোরির প্রতিটি লোকেশন ও ডেটা অ্যাড্রেস নিয়ে কাজ করতে হয়।
  5. দক্ষতা ও গতি: মেশিন ভাষার প্রোগ্রাম সরাসরি হার্ডওয়্যারে রান করে বলে এটি সবচেয়ে দ্রুতগতির। উচ্চতর ভাষার প্রোগ্রাম অনুদিত হয়ে চলে বলে তুলনামূলকভাবে ধীরগতির হতে পারে।

সারসংক্ষেপে, ব্যবহারকারীর সুবিধার দিক থেকে সুমির ব্যবহৃত উচ্চতর ভাষা এগিয়ে থাকলেও, কম্পিউটারের নিজস্ব ভাষা বা মেশিন ভাষা হার্ডওয়্যার নিয়ন্ত্রণে অধিক শক্তিশালী।


সৃজনশীল প্রশ্ন ২

একটি মাল্টিন্যাশনাল ব্যাংক তাদের বিশাল গ্রাহক তথ্য ভাণ্ডার থেকে নির্দিষ্ট তথ্য খুঁজে বের করার জন্য 'এসকিউএল' (SQL) নামক একটি ভাষা ব্যবহার করে। ব্যাংকের আইটি অফিসার বললেন, "এই ভাষায় প্রোগ্রাম লেখা খুব সহজ, অনেকটা সাধারণ ইংরেজিতে প্রশ্ন করার মতো এবং এতে প্রোগ্রামারকে মেমোরি ব্যবস্থাপনা বা প্রসেসিং পদ্ধতি নিয়ে চিন্তা করতে হয় না, শুধু 'কী চাই' তা বললেই হয়।"

ক) 4GL কী?
খ) "৪র্থ প্রজন্মের ভাষা হলো অতি উচ্চস্তরের ভাষা" — বুঝিয়ে লেখ।
গ) উদ্দীপকে উল্লিখিত ভাষাটির বৈশিষ্ট্য ব্যাখ্যা কর।
ঘ) "প্রোগ্রাম রচনার ক্ষেত্রে ৩য় প্রজন্মের চেয়ে ৪র্থ প্রজন্মের ভাষা অধিক সুবিধাজনক" — উদ্দীপকের আলোকে মতামত দাও।

উত্তর

ক) 4GL (Fourth Generation Language) বা চতুর্থ প্রজন্মের ভাষা হলো এমন এক ধরনের প্রোগ্রামিং ভাষা যা ব্যবহারকারীর জন্য অত্যন্ত সহজবোধ্য, ডেটাবেজ নির্ভর এবং নন-প্রসিডিউরাল (Non-procedural), যেখানে 'কীভাবে' কাজ হবে তা না বলে 'কী' ফলাফল দরকার তা নির্দেশ করা হয়।

খ) ৪র্থ প্রজন্মের ভাষাকে (4GL) অতি উচ্চস্তরের ভাষা (Very High Level Language) বলা হয় কারণ এটি ৩য় প্রজন্মের ভাষার চেয়েও মানুষের ভাষার অধিক কাছাকাছি। ৩য় প্রজন্মের ভাষায় (যেমন C, Java) প্রোগ্রামারকে লজিক ও প্রসিডিউর ধাপে ধাপে লিখতে হয়, কিন্তু 4GL-এ (যেমন SQL) ব্যবহারকারীকে জটিল কোডিং জানতে হয় না। ইংরেজি ভাষার মতো নির্দেশ দিয়েই ডেটাবেজ থেকে তথ্য আনা বা রিপোর্ট তৈরি করা যায় বলে এর বিমূর্ততা (Abstraction) অনেক বেশি।

গ) উদ্দীপকে উল্লিখিত ভাষাটি হলো এসকিউএল (SQL), যা একটি চতুর্থ প্রজন্মের ভাষা (4GL)। এর বৈশিষ্ট্যগুলো নিচে দেওয়া হলো:
১. নন-প্রসিডিউরাল (Non-Procedural): উদ্দীপকে বলা হয়েছে "প্রসেসিং পদ্ধতি নিয়ে চিন্তা করতে হয় না, শুধু কী চাই তা বললেই হয়"। অর্থাৎ এটি একটি নন-প্রসিডিউরাল ভাষা।
২. সহজবোধ্যতা: এটি "সাধারণ ইংরেজিতে প্রশ্ন করার মতো"। এর সিনট্যাক্স খুবই সহজ, তাই দক্ষ প্রোগ্রামার না হলেও সাধারণ ব্যবহারকারী এটি ব্যবহার করে ডেটাবেজ কুয়েরি করতে পারে।
৩. ডেটাবেজ নির্ভরতা: SQL মূলত ডেটাবেজ ম্যানেজমেন্ট ও তথ্য পুনরুদ্ধারের জন্য ব্যবহৃত হয়।
৪. মেমোরি ব্যবস্থাপনা: আইটি অফিসারের মতে, এতে "মেমোরি ব্যবস্থাপনা নিয়ে চিন্তা করতে হয় না", যা 4GL-এর একটি বড় সুবিধা। স্বয়ংক্রিয়ভাবে সিস্টেম এটি পরিচালনা করে।

ঘ) ৩য় প্রজন্ম (3GL) ও ৪র্থ প্রজন্মের (4GL) ভাষার মধ্যে তুলনামূলক বিশ্লেষণে ৪র্থ প্রজন্মের ভাষা সাধারণ ব্যবহারকারীর জন্য অধিক সুবিধাজনক।

যুক্তি:
১. কোডিং-এর পরিমাণ: ৩য় প্রজন্মের ভাষায় (যেমন C, C++) একটি কাজ করতে শত শত লাইন কোড লিখতে হতে পারে। কিন্তু উদ্দীপকের 4GL (SQL) ব্যবহার করে মাত্র কয়েক লাইন নির্দেশেই একই কাজ (যেমন ডেটা রিপোর্ট তৈরি) করা সম্ভব।
২. ব্যবহারের সহজলভ্যতা: ৩য় প্রজন্মের ভাষা শিখতে দীর্ঘ সময় ও গভীর প্রোগ্রামিং জ্ঞানের প্রয়োজন হয়। কিন্তু 4GL অনেকটা ইংরেজির মতো হওয়ায় অল্প প্রশিক্ষণের মাধ্যমেই ব্যবহার করা যায়।
৩. প্রসিডিউর বনাম ফলাফল: ৩য় প্রজন্মের ভাষায় 'কীভাবে' (How) কাজটি হবে তা ধাপে ধাপে বলে দিতে হয়। কিন্তু 4GL-এ শুধু 'কী' (What) চাই তা বললেই হয়, যা ব্যবহারকারীর সময় ও শ্রম বাঁচায়।
৪. ডিবাগিং ও রক্ষণাবেক্ষণ: কোড কম হওয়ায় 4GL-এ ভুল হওয়ার সম্ভাবনা কম এবং রক্ষণাবেক্ষণ সহজ।

তবে, হার্ডওয়্যার নিয়ন্ত্রণ বা জটিল সিস্টেম সফটওয়্যার তৈরিতে ৩য় প্রজন্মের ভাষা বেশি শক্তিশালী হলেও, ডেটা প্রসেসিং ও অ্যাপলিকেশন তৈরির ক্ষেত্রে উদ্দীপকের ৪র্থ প্রজন্মের ভাষা নিঃসন্দেহে অধিক সুবিধাজনক ও ব্যবহারবান্ধব।

এমসিকিউ

১। যান্ত্রিক ভাষা (Machine Language) কোন প্রজন্মের ভাষা?

ক) প্রথম প্রজন্ম
খ) দ্বিতীয় প্রজন্ম
গ) তৃতীয় প্রজন্ম
ঘ) চতুর্থ প্রজন্ম

সঠিক উত্তর: ক) প্রথম প্রজন্ম

ব্যাখ্যা: ১৯৪৫ সাল থেকে ১৯৪৯ সাল পর্যন্ত সময়কালকে প্রথম প্রজন্ম ধরা হয়। এই প্রজন্মের ভাষাকে যান্ত্রিক ভাষা বা মেশিন ল্যাঙ্গুয়েজ বলা হয় যা শুধুমাত্র ০ এবং ১ ব্যবহার করে লেখা হয়।


২। কোন ভাষায় লিখিত প্রোগ্রাম কম্পিউটার সরাসরি বুঝতে পারে?

ক) অ্যাসেম্বলি ভাষা
খ) উচ্চতর ভাষা
গ) মেশিন ভাষা
ঘ) চতুর্থ প্রজন্মের ভাষা

সঠিক উত্তর: গ) মেশিন ভাষা

ব্যাখ্যা: মেশিন ভাষা বা যান্ত্রিক ভাষা হলো কম্পিউটারের নিজস্ব ভাষা। এই ভাষায় দেওয়া নির্দেশ কম্পিউটার কোনো অনুবাদক প্রোগ্রাম ছাড়াই সরাসরি নির্বাহ করতে পারে।


৩। সি (C) ভাষাকে কোন স্তরের ভাষা বলা হয়?

ক) নিম্নস্তরের
খ) উচ্চস্তরের
গ) মধ্যম স্তরের
ঘ) অতি উচ্চস্তরের

সঠিক উত্তর: গ) মধ্যম স্তরের

ব্যাখ্যা: সি ভাষায় হাই লেভেল এবং লো লেভেল উভয় ভাষার বৈশিষ্ট্য বিদ্যমান থাকায় একে 'মিড লেভেল ল্যাঙ্গুয়েজ' বা মধ্যম স্তরের ভাষা বলা হয়।


৪। নিচের কোনটি ৩য় প্রজন্মের ভাষা?

ক) Machine Language
খ) Assembly Language
গ) Java
ঘ) SQL

সঠিক উত্তর: গ) Java

ব্যাখ্যা: Java, C, C++, Python ইত্যাদি হলো ৩য় প্রজন্মের বা উচ্চতর ভাষা (High Level Language)। SQL হলো ৪র্থ প্রজন্মের ভাষা।


৫। 'নেমোনিক' (Mnemonic) কোড ব্যবহার করা হয় কোন ভাষায়?

ক) মেশিন ভাষায়
খ) অ্যাসেম্বলি ভাষায়
গ) উচ্চতর ভাষায়
ঘ) প্রাকৃত ভাষায়

সঠিক উত্তর: খ) অ্যাসেম্বলি ভাষায়

ব্যাখ্যা: অ্যাসেম্বলি ভাষায় নির্দেশের জন্য ০ ও ১ এর পরিবর্তে বিশেষ সংক্ষিপ্ত সংকেত ব্যবহার করা হয়, যাকে নেমোনিক (Mnemonic) বলে। যেমন: ADD, SUB, MUL।


৬। উচ্চতর ভাষার সুবিধা হলো—
i. প্রোগ্রাম লেখা সহজ ও দ্রুত
ii. হার্ডওয়্যার সম্পর্কে ধারণা থাকার প্রয়োজন নেই
iii. লিখিত প্রোগ্রাম যেকোনো কম্পিউটারে চলে

নিচের কোনটি সঠিক?

ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: ঘ) i, ii ও iii

ব্যাখ্যা: উচ্চতর ভাষা মানুষের ভাষার কাছাকাছি হওয়ায় প্রোগ্রাম লেখা সহজ। এটি মেশিন নির্ভর নয় (Portable) এবং হার্ডওয়্যার নিয়ে বিস্তারিত জানার প্রয়োজন হয় না।


৭। 4GL বা চতুর্থ প্রজন্মের ভাষার প্রধান বৈশিষ্ট্য কোনটি?

ক) মেশিন নির্ভরতা
খ) প্রচুর মেমোরি প্রয়োজন হয়
গ) ডেটাবেজ নির্ভর ও সহজে ব্যবহারযোগ্য
ঘ) বাইনারি কোড ব্যবহার

সঠিক উত্তর: গ) ডেটাবেজ নির্ভর ও সহজে ব্যবহারযোগ্য

ব্যাখ্যা: 4GL হলো অতি উচ্চস্তরের ভাষা যা মূলত ডেটাবেজ ম্যানেজমেন্টের জন্য ব্যবহৃত হয় (যেমন SQL)। এটি ব্যবহার করা ৩য় প্রজন্মের চেয়েও সহজ।


৮। SQL এর পূর্ণরূপ কী?

ক) Simple Query Language
খ) Structured Query Language
গ) Standard Query Logic
ঘ) System Query Language

সঠিক উত্তর: খ) Structured Query Language

ব্যাখ্যা: SQL হলো Structured Query Language, যা একটি জনপ্রিয় ৪র্থ প্রজন্মের ভাষা বা 4GL।


৯। মানুষের ভাষার সাথে সবচেয়ে বেশি মিল রয়েছে কোন প্রজন্মের ভাষার?

ক) ৩য় প্রজন্ম
খ) ৪র্থ প্রজন্ম
গ) ৫ম প্রজন্ম
ঘ) ২য় প্রজন্ম

সঠিক উত্তর: গ) ৫ম প্রজন্ম

ব্যাখ্যা: ৫ম প্রজন্মের ভাষা বা 5GL (যেমন PROLOG, LISP) মানুষের স্বাভাবিক ভাষা বা Natural Language-এর মতো আচরণ করে এবং কৃত্রিম বুদ্ধিমত্তায় ব্যবহৃত হয়।


১০। মধ্যম স্তরের ভাষার উদাহরণ কোনটি?
i. C
ii. Forth
iii. Python

নিচের কোনটি সঠিক?

ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: ক) i ও ii

ব্যাখ্যা: C এবং Forth কে মধ্যম স্তরের ভাষা বলা হয়। Python একটি পিওর উচ্চতর (High Level) ভাষা।


১১। জাভা (Java) প্রোগ্রামিং ভাষা কে উদ্ভাবন করেন?

ক) ডেনিস রিচি
খ) জেমস গসলিং
গ) চার্লস ব্যাবেজ
ঘ) বিল গেটস

সঠিক উত্তর: খ) জেমস গসলিং

ব্যাখ্যা: সান মাইক্রোসিস্টেমসের জেমস গসলিং (James Gosling) জাভা প্রোগ্রামিং ভাষা উদ্ভাবন করেন। ডেনিস রিচি 'সি' ভাষা উদ্ভাবন করেন।


১২। মেশিন ভাষায় রূপান্তরিত প্রোগ্রামকে কী বলা হয়?

ক) সোর্স কোড
খ) অবজেক্ট কোড
গ) ইউনিকোড
ঘ) অ্যাসকি কোড

সঠিক উত্তর: খ) অবজেক্ট কোড

ব্যাখ্যা: উচ্চতর বা অ্যাসেম্বলি ভাষায় লেখা প্রোগ্রামকে বলা হয় সোর্স কোড (Source Code)। আর অনুবাদক দ্বারা মেশিন ভাষায় রূপান্তরিত হওয়ার পর তাকে বলা হয় অবজেক্ট কোড (Object Code)।


১৩। ওরাকল (Oracle) কোন প্রজন্মের ভাষার উদাহরণ?

ক) ২য়
খ) ৩য়
গ) ৪র্থ
ঘ) ৫ম

সঠিক উত্তর: গ) ৪র্থ

ব্যাখ্যা: ওরাকল (Oracle) একটি ডেটাবেজ ম্যানেজমেন্ট সিস্টেম যা ৪র্থ প্রজন্মের ভাষা বা 4GL এর অন্তর্ভুক্ত।


১৪। অ্যাসেম্বলি ভাষা কোন প্রজন্মের?

ক) প্রথম
খ) দ্বিতীয়
গ) তৃতীয়
ঘ) চতুর্থ

সঠিক উত্তর: খ) দ্বিতীয়

ব্যাখ্যা: ১৯৫০-৫৯ সময়কালকে দ্বিতীয় প্রজন্ম ধরা হয়, যখন অ্যাসেম্বলি ভাষার প্রচলন শুরু হয়।


১৫। কৃত্রিম বুদ্ধিমত্তা (AI) প্রয়োগে কোন ভাষা ব্যবহৃত হয়?

ক) Fortran
খ) Prolog
গ) Cobol
ঘ) Basic

সঠিক উত্তর: খ) Prolog

ব্যাখ্যা: Prolog (Programming in Logic) এবং LISP হলো ৫ম প্রজন্মের ভাষা যা কৃত্রিম বুদ্ধিমত্তায় ব্যবহৃত হয়।


নিচের অনুচ্ছেদটি পড়ে ১৬ ও ১৭ নং প্রশ্নের উত্তর দাও:
আরিফ এমন একটি ভাষায় প্রোগ্রাম লিখল যা শিখতে সহজ এবং ডিবাগ করা সুবিধাজনক। কিন্তু তার লেখা প্রোগ্রামটি সরাসরি হার্ডওয়্যার নিয়ন্ত্রণ করতে পারে না এবং এটি রান করার জন্য কম্পাইলার প্রয়োজন হয়।

১৬। আরিফের ব্যবহৃত ভাষাটি কোন স্তরের?

ক) যান্ত্রিক ভাষা
খ) অ্যাসেম্বলি ভাষা
গ) উচ্চতর ভাষা
ঘ) প্রাকৃত ভাষা

সঠিক উত্তর: গ) উচ্চতর ভাষা

ব্যাখ্যা: উচ্চতর ভাষা বা High Level Language শিখতে সহজ, ডিবাগ করা সুবিধাজনক এবং অনুবাদের জন্য কম্পাইলার বা ইন্টারপ্রেটার লাগে।


১৭। উদ্দীপকের ভাষাটির ক্ষেত্রে প্রযোজ্য—
i. এক কম্পিউটারের প্রোগ্রাম অন্য কম্পিউটারে চলে
ii. মেমোরি অ্যাড্রেস জানার প্রয়োজন নেই
iii. নির্বাহের গতি মেশিন ভাষার চেয়ে বেশি

নিচের কোনটি সঠিক?

ক) i ও ii
খ) i ও iii
গ) ii ও iii
ঘ) i, ii ও iii

সঠিক উত্তর: ক) i ও ii

ব্যাখ্যা: উচ্চতর ভাষা মেশিন ইন্ডিপেন্ডেন্ট (পোর্টেবল) এবং মেমোরি ম্যানেজমেন্ট অটোমেটেড। তবে অনুবাদের প্রয়োজন হয় বলে এর নির্বাহের গতি মেশিন ভাষার চেয়ে কম। তাই iii সঠিক নয়।


১৮। 'সি' (C) ভাষা কত সালে আবিষ্কৃত হয়?

ক) ১৯৬০
খ) ১৯৭০
গ) ১৯৭২
ঘ) ১৯৮০

সঠিক উত্তর: গ) ১৯৭২

ব্যাখ্যা: ১৯৭২ সালে যুক্তরাষ্ট্রের বেল ল্যাবরেটরিতে ডেনিস রিচি 'সি' (C) ভাষা উদ্ভাবন করেন।


১৯। কোনটি বৈজ্ঞানিক গবেষণার কাজে বহুল ব্যবহৃত প্রাচীন উচ্চতর ভাষা?

ক) COBOL
খ) FORTRAN
গ) BASIC
ঘ) PASCAL

সঠিক উত্তর: খ) FORTRAN

ব্যাখ্যা: FORTRAN (Formula Translation) হলো প্রথম দিকের উচ্চতর ভাষা যা মূলত গাণিতিক ও বৈজ্ঞানিক কাজের জন্য তৈরি হয়েছিল।


২০। উচ্চতর ভাষার সুবিধা নয় কোনটি?

ক) সহজ প্রোগ্রামিং
খ) পোর্টেবিলিটি
গ) সরাসরি হার্ডওয়্যার নিয়ন্ত্রণ
ঘ) লাইব্রেরি ফাংশন ব্যবহার

সঠিক উত্তর: গ) সরাসরি হার্ডওয়্যার নিয়ন্ত্রণ

ব্যাখ্যা: সরাসরি হার্ডওয়্যার নিয়ন্ত্রণ করা নিম্নস্তরের ভাষার (Machine/Assembly) বৈশিষ্ট্য। উচ্চতর ভাষায় এটি সরাসরি করা যায় না বা কঠিন।


২১। অনুবাদক প্রোগ্রাম (Translator) প্রধানত কত প্রকার?

ক) ২ প্রকার
খ) ৩ প্রকার
গ) ৪ প্রকার
ঘ) ৫ প্রকার

সঠিক উত্তর: খ) ৩ প্রকার

ব্যাখ্যা: অনুবাদক প্রোগ্রাম ৩ প্রকার: ১. অ্যাসেম্বলার (Assembler), ২. কম্পাইলার (Compiler), ৩. ইন্টারপ্রেটার (Interpreter)।


২২। পাইথন (Python) ভাষাটির উদ্ভাবক কে?

ক) গুইডো ভ্যান রসাম
খ) ডেনিস রিচি
গ) ব্ইয়ার্ন স্ট্রুসট্রপ
ঘ) অ্যাডা লাভলেস

সঠিক উত্তর: ক) গুইডো ভ্যান রসাম

ব্যাখ্যা: পাইথন ল্যাঙ্গুয়েজটি ১৯৮৯ সালের শেষের দিকে গুইডো ভ্যান রসাম (Guido van Rossum) তৈরি করেন।


২৩। ৫-ম প্রজন্মের ভাষার সময়কাল কোনটি?

ক) ১৯৪৫-১৯৪৯
খ) ১৯৬০-১৯৬৯
গ) ১৯৭০-১৯৭৯
ঘ) ১৯৮০-বর্তমান/ভবিষ্যৎ

সঠিক উত্তর: ঘ) ১৯৮০-বর্তমান/ভবিষ্যৎ

ব্যাখ্যা: ১৯৮০ সাল থেকে বর্তমান ও ভবিষ্যৎ সময়কালকে ৫ম প্রজন্মের ভাষার যুগ ধরা হয়।


২৪। নিচের কোনটি কম্পাইল্ড ল্যাঙ্গুয়েজ (Compiled Language) এর উদাহরণ?

ক) Python
খ) C++
গ) LISP
ঘ) PHP

সঠিক উত্তর: খ) C++

ব্যাখ্যা: C এবং C++ হলো কম্পাইল্ড ল্যাঙ্গুয়েজ। Python এবং PHP সাধারণত ইন্টারপ্রেটেড (Interpreted) ল্যাঙ্গুয়েজ হিসেবে পরিচিত।


২৫। "Write Once, Run Anywhere" — এই বৈশিষ্ট্যটি কোন ভাষার ক্ষেত্রে সবচেয়ে বেশি প্রযোজ্য?

ক) C
খ) Assembly
গ) Java
ঘ) Machine Language

সঠিক উত্তর: গ) Java

ব্যাখ্যা: জাভার প্রধান স্লোগান হলো "Write Once, Run Anywhere"। জাভা ভার্চুয়াল মেশিন (JVM) ব্যবহারের কারণে এটি যেকোনো প্ল্যাটফর্মে চলতে পারে।