প্রোগ্রামিং ভাষার ধাপ এবং প্রকারভেদ
কম্পিউটার সিস্টেমের দুটি অংশ
-
হার্ডওয়্যার: মনিটর, প্রসেসর, RAM, ROM, হার্ডডিস্ক ইত্যাদি।
-
সফটওয়্যার: প্রোগ্রামসমূহ যা হার্ডওয়্যারকে নিয়ন্ত্রণ করে।
মন্তব্য: সফটওয়্যার ছাড়া হার্ডওয়্যার প্রাণহীন।
প্রোগ্রাম কী?
যন্ত্রকে কোনো সমস্যা সমাধানের জন্য ধারাবাহিক নির্দেশনা দেওয়া হয়, যেটিকে প্রোগ্রাম বলা হয়।
প্রোগ্রামার কে?
যে ব্যক্তি প্রোগ্রামিং ভাষা ব্যবহার করে নির্দেশনা দেয়, তাকে প্রোগ্রামার বলা হয়।
বিশ্বের প্রথম প্রোগ্রামার: অ্যাডা অগাস্টা লভলেস
প্রোগ্রামিং ভাষা কী?
যন্ত্রকে নির্দেশনা দেওয়ার জন্য ব্যবহৃত ভাষা।
প্রোগ্রামিং ভাষার প্রজন্ম
| প্রজন্ম | সাল | ভাষা উদাহরণ | বৈশিষ্ট্য |
|---|---|---|---|
| 1GL | 1945-1950 | Machine Language (0 ও 1) | সরাসরি কম্পিউটার বুঝতে পারে, নিম্নস্তরের ভাষা |
| 2GL | 1950-1960 | Assembly Language | সাংকেতিক কোড (Mnemonic), অনুবাদক প্রয়োজন, নিম্নস্তরের ভাষা |
| 3GL | 1960-1970 | C, C++, Java, Python, Basic, Pascal | উচ্চস্তরের ভাষা, মানুষের কাছে সহজ, অনুবাদক প্রয়োজন |
| 4GL | 1970-1980 | SQL, Perl, Python, MatLab | অতি উচ্চস্তরের, ডোমেইন নির্দিষ্ট, প্রোগ্রামার ফ্রেন্ডলি |
| 5GL | 1980-বর্তমান | PROLOG, LISP, Mercury | স্বাভাবিক ভাষা, AI প্রোগ্রামিং, ইন্টেলিজেন্ট কম্পাইলার |
প্রোগ্রামিং ভাষার স্তরভিত্তিক বিভাগ
| স্তর | উদাহরণ | বৈশিষ্ট্য |
|---|---|---|
| নিম্নস্তর (Low Level) | Machine, Assembly | হার্ডওয়্যার সংবেদনশীল |
| মধ্যমস্তর (Mid Level) | C, C++, Java | হার্ডওয়্যার + উচ্চস্তরের সুবিধা |
| উচ্চস্তর (High Level, 3GL) | Fortran, Basic, Pascal, C, C++, Java, Python | মানুষের কাছে সহজ, যন্ত্র নির্ভর নয় |
| অতি উচ্চস্তর (Very High Level, 4GL) | Perl, SQL, Python, MatLab | ডোমেইন নির্দিষ্ট, non-procedural |
১ম প্রজন্ম – মেশিন ভাষা (Machine Language)
-
শুধু 0 ও 1 ব্যবহার করে প্রোগ্রাম লেখা হয়।
-
সুবিধা: সরাসরি কম্পিউটারের সঙ্গে যোগাযোগ, দ্রুত কার্যকর, কম মেমোরি লাগে।
-
অসুবিধা: শেখা কঠিন, ডিবাগিং কঠিন, যন্ত্র নির্ভর।
উদাহরণ: দুই সংখ্যা যোগ করা – 1010 1100 (ধারণার জন্য)
২য় প্রজন্ম – অ্যাসেম্বলি ভাষা (Assembly Language)
-
Mnemonic/সাংকেতিক কোড: SUB, ADD, MUL, DIV, LDA ইত্যাদি।
-
প্রোগ্রামের অংশ: Label, Opcode, Operand, Comment
সুবিধা: সহজে লেখা যায়, ত্রুটি শনাক্ত করা সহজ।
অসুবিধা: যন্ত্র নির্ভর, অনুবাদক প্রয়োজন।
৩য় প্রজন্ম – উচ্চস্তরের ভাষা (High Level Language, 3GL)
-
মানুষের ভাষার কাছাকাছি, যন্ত্র নির্ভর নয়।
-
ভাগ: General Purpose (C, Java, Python), Special Purpose (FORTRAN, LISP)
-
নির্বাহ: Compiled (C, C++), Interpreted (Python, Ruby)
-
ডিজাইন মডেল: Procedure (C, FORTRAN), Object-Oriented (C++, Java, C#)
সুবিধা: সহজ, ত্রুটি কম, যন্ত্রের অভ্যন্তরীণ জানা প্রয়োজন নেই।
অসুবিধা: সরাসরি কম্পিউটারে চলে না, অনুবাদক প্রয়োজন, ধীর, বেশি মেমোরি লাগে।
উচ্চস্তরের জনপ্রিয় ভাষা উদাহরণ
| ভাষা | প্রকাশ | বৈশিষ্ট্য |
|---|---|---|
| FORTRAN | 1957 | গাণিতিক হিসাব, প্রকৌশল |
| ALGOL | 1958 | Algorithm প্রকাশ, Scientific computing |
| C | 1972 | Mid-level, Procedural, System + Application |
| C++ | 1985 | Object-Oriented, Mid-level, System + Application |
| Python | 1990 | Interpreted, High-level, Object-Oriented, Data science & AI |
| Visual BASIC | 1991 | GUI, Event-driven, Object-Oriented |
| Java | 1995 | Object-Oriented, Platform-independent, Web & App development |
৪র্থ প্রজন্ম – 4GL
-
Database & Script oriented, non-procedural, domain-specific
-
উদাহরণ: SQL, Python, MatLab, Perl
ব্যবহার: Database management, GUI, Web development, Report generation
৫ম প্রজন্ম – 5GL
-
AI & Expert System oriented, Natural language support
-
উদাহরণ: PROLOG, LISP, Mercury
১। কোন ভাষায় লিখিত প্রোগ্রামের জন্য অনুবাদক প্রোগ্রামের প্রয়োজন হয় না?
ক) মেশিন ভাষা
খ) উচ্চস্তরের ভাষা
গ) অ্যাসেম্বলি ভাষা
ঘ) স্বাভাবিক ভাষা
উত্তর: ক) মেশিন ভাষা২। কোন ভাষা কম্পিউটারে সরাসরি ব্যবহার করা যায় এবং ০ ও ১ দিয়ে লেখা হয়?
ক) মেশিন ভাষা
খ) অ্যাসেম্বলি ভাষা
গ) উচ্চস্তরের ভাষা
ঘ) অতি উচ্চস্তরের ভাষা
উত্তর: ক) মেশিন ভাষা৩। সাংকেতিক চিহ্ন দিয়ে লেখা ভাষা কোনটি?
ক) যান্ত্রিক ভাষা
খ) অ্যাসেম্বলি ভাষা
গ) উচ্চস্তরের ভাষা
ঘ) চতুর্থ প্রজন্মের ভাষা
উত্তর: খ) অ্যাসেম্বলি ভাষা৪। কোন ভাষা মানুষের জন্য সহজ এবং যন্ত্র নির্ভর নয়?
ক) মেশিন ভাষা
খ) অ্যাসেম্বলি ভাষা
গ) উচ্চস্তরের ভাষা
ঘ) স্বাভাবিক ভাষা
উত্তর: গ) উচ্চস্তরের ভাষা৫। নিম্নস্তরের ভাষার উদাহরণ কোনটি?
ক) C++
খ) অ্যাসেম্বলি
গ) Python
ঘ) SQL
উত্তর: খ) অ্যাসেম্বলি৬। নিম্নস্তরের ভাষার সবচেয়ে বড় অসুবিধা কী?
ক) দ্রুত চলতে পারে
খ) যন্ত্র নির্ভর
গ) সহজে শেখা যায়
ঘ) কম মেমোরি লাগে
উত্তর: খ) যন্ত্র নির্ভর৭। কোন প্রজন্মের ভাষা অতি উচ্চস্তরের ভাষা (Very High Level Language)?
ক) ১ম প্রজন্ম
খ) ২য় প্রজন্ম
গ) ৪র্থ প্রজন্ম
ঘ) ৫ম প্রজন্ম
উত্তর: গ) ৪র্থ প্রজন্ম৮। মেশিন ভাষায় লেখা প্রোগ্রামকে কী বলা হয়?
ক) সোর্স কোড
খ) অবজেক্ট কোড
গ) নেমোনিক কোড
ঘ) হাই-লেভেল কোড
উত্তর: খ) অবজেক্ট কোড৯। উচ্চস্তরের ভাষার উদাহরণ কোনটি?
ক) Python
খ) অ্যাসেম্বলি
গ) মেশিন ভাষা
ঘ) None
উত্তর: ক) Python১০। কোন ভাষায় প্রোগ্রাম দ্রুত নির্বাহ হয় এবং কম মেমোরি লাগে?
ক) মেশিন ভাষা
খ) উচ্চস্তরের ভাষা
গ) অ্যাসেম্বলি ভাষা
ঘ) ৪র্থ প্রজন্মের ভাষা
উত্তর: ক) মেশিন ভাষা১১। কোন ভাষা ব্যবহার করে যন্ত্রের অভ্যন্তরীণ কাঠামো জানতে হয়?
ক) মেশিন ভাষা
খ) অ্যাসেম্বলি ভাষা
গ) উচ্চস্তরের ভাষা
ঘ) অতি উচ্চস্তরের ভাষা
উত্তর: খ) অ্যাসেম্বলি ভাষা১২। নিম্নস্তরের ভাষার উদাহরণ কোনটি?
ক) C
খ) Python
গ) মেশিন ভাষা
ঘ) SQL
উত্তর: গ) মেশিন ভাষা১৩। C++ ভাষার ধরন কোনটি?
ক) অবজেক্ট ওরিয়েন্টেড ও মিড-লেভেল
খ) শুধুমাত্র প্রসিডিউরাল
গ) ৪র্থ প্রজন্মের ভাষা
ঘ) মেশিন ভাষা
উত্তর: ক) অবজেক্ট ওরিয়েন্টেড ও মিড-লেভেল১৪। ৪র্থ প্রজন্মের ভাষা কোন কাজের জন্য বেশি ব্যবহৃত হয়?
ক) ডেটাবেস ম্যানেজমেন্ট
খ) অ্যালগরিদম লেখা
গ) মেশিনের সাথে সরাসরি যোগাযোগ
ঘ) নিম্নস্তরের হাই-স্পিড প্রোগ্রাম
উত্তর: ক) ডেটাবেস ম্যানেজমেন্ট১৫। কোন ভাষা ব্যবহার করে এক কম্পিউটারের প্রোগ্রাম অন্য কম্পিউটারে ব্যবহার করা যায়?
ক) মেশিন ভাষা
খ) অ্যাসেম্বলি ভাষা
গ) উচ্চস্তরের ভাষা
ঘ) ১ম প্রজন্মের ভাষা
উত্তর: গ) উচ্চস্তরের ভাষা১৬। কোন প্রজন্মের ভাষা স্বাভাবিক ভাষার কাছাকাছি এবং AI ভিত্তিক?
ক) ৩য় প্রজন্ম
খ) ৪র্থ প্রজন্ম
গ) ৫ম প্রজন্ম
ঘ) ২য় প্রজন্ম
উত্তর: গ) ৫ম প্রজন্ম১৭। ‘নেমোনিক’ বলতে কী বোঝায়?
ক) ০ ও ১
খ) প্রতীকী কোড বা সংকেত
গ) প্রোগ্রামের ত্রুটি
ঘ) ডেটাবেস
উত্তর: খ) প্রতীকী কোড বা সংকেত১৮। নিম্নস্তরের ভাষার উদাহরণ কোনটি?
ক) FORTRAN
খ) C
গ) মেশিন ভাষা
ঘ) SQL
উত্তর: গ) মেশিন ভাষা১৯। কোন ভাষা ব্যবহার করা সহজ, প্রোগ্রাম ত্রুটি কম হয় এবং যন্ত্র নির্ভর নয়?
ক) অ্যাসেম্বলি
খ) মেশিন ভাষা
গ) উচ্চস্তরের ভাষা
ঘ) ৫ম প্রজন্মের ভাষা
উত্তর: গ) উচ্চস্তরের ভাষা২০। নিম্নস্তরের ভাষার জন্য প্রয়োজনীয় জ্ঞান কোনটি?
ক) কম্পিউটারের অভ্যন্তরীণ কাঠামো ও অপকোড
খ) কেবল ইংরেজি ভাষার জ্ঞান
গ) সাধারণ অ্যালগরিদম
ঘ) Report generation
উত্তর: ক) কম্পিউটারের অভ্যন্তরীণ কাঠামো ও অপকোড