Goodinsee
উত্তর :- ১৯৪৫ সাল থেকে শরু করে এ পর্যন্ত কয়েকশ প্রোগ্রামিং ল্যাংগুয়েজ বা ভাষা আবিষ্কৃত হয়েছে , এ সকল ভাষাকে বৈশিষ্ট্য অনুযায়ী পাঁচটি স্তরে বা প্রজন্মে ভাগ করা হয়েছে
1. প্রথম প্রজন্মের ভাষা - ১৯৪৫ - মেশিন ভাষা - Machine Language
2. দ্বিতীয় প্রজন্মের ভাষা - ১৯৫০ - অ্যাসেম্বলী ভাষা - Assembly Language
3. তৃতীয় প্রজন্মের ভাষা - ১৯৬০ - উচ্চতর ভাষা - High Level Language
4. চতুর্থ প্রজন্মের ভাষা - ১৯৭০ - অতি উচ্চতর ভাষা - Very
high Level Language
5. পঞ্চম প্রজন্মের ভাষা - ১৯৮০ - স্বাভাবিক বা ন্যাচারাল ভাষা - Natural language
প্রথম প্রজন্মের ভাষা - ১৯৪৫ - মেশিন ভাষা - Machine Language
উত্তর :- মেশিন ভাষা - Machine Language:- কম্পিউটার মেশিনের নিজস্ব ভাষাকে মেশিন ভাষা বলে । মেশিন ভাষায় 0 ও 1 এ দুই বাইনারি অঙ্ক অথবা হেক্সা পদ্ধতি ব্যবহার করে সবকিছু লেখা হয় । কম্পিউটার একমাত্র যন্ত্রভাষাই বুঝতে পারে, অন্য ভাষায় প্রোগ্রাম রচনা বা লিখা হলে কম্পিউটার আগে অনুবাদক প্রোগ্রামের সাহায্যে তাকে যন্ত্রভাষায় পরিণত করে নেয় । মেশিনের ভাষায় লিখিত প্রোগ্রামকে অবজেক্ট প্রোগ্রামও বলা হয় । এ ভাষা ব্যবহার করে কম্পিউটারে বর্তনীর ভুল-ত্রুটির সংশোধন করা যায় । এ ভাষা অনুশীলনের মাধ্যমে কম্পিউটারের অভ্যন্তরীন সংগঠন সম্পর্কে ধারণা অর্জন করা সম্ভব । যন্ত্রভাষায় যেসব নির্দেশ দেওয়া হয় তাদের চার ভাগে ভাগ করা যায় , যেমন-
1. গাণিতিক-Arithmetic
অর্থাৎ যোগ,বিয়োগ, গুন, ভাগ
2. নিয়ন্ত্রণ-Control অর্থাৎ লোড-Load, স্টোর-Store, জাম্প-Jump
3. ইনপুট-আউটপুট অর্থাৎ Read, Write
লেখা
4. প্রত্যক্ষ ব্যবহার -Direct use অর্থাৎ আরম্ভ কর -Start, থাম-Halt, ও শেষ কর-End
মেশিন ভাষার নির্দেশে দুটি অংশ থাকে:-
1. অপকোড - OP Code :- Operation Code-অপকোড কম্পিউটারকে কি ধরনের অপারেশন হবে তা বলে দেয়
2. অপারেন্ড - Operand-
কম্পিউটারকে কি অপারেশন হবে তা নির্দেশ করে
মেশিনের ভাষায় প্রোগ্রাম রচনার সুবিধা:-
1. এ ভাষা ব্যবহার করে কম্পিউটারে বর্তনীর ভুল-ত্রুটির সংশোধন করা যায়
2. এ ভাষা অনুশীলনের মাধ্যমে কম্পিউটারের অভ্যন্তরীন সংগঠন সম্পর্কে ধারণা অর্জন করা সম্ভব
3. প্রোগ্রাম তাড়াতাড়ি কার্যকরী হয়
মেশিনের ভাষায় প্রোগ্রাম রচনার অসুবিধা:-
1. প্রোগ্রাম রচনা অত্যন্ত ক্লান্তিকর ও সময়সাপেক্ষ
2. এক ধরনের মেশিনের জন্য লিখিত প্রোগ্রাম অন্য ধরনের মেশিনে ব্যবহার করা যায় না
3. প্রোগ্রাম রচনার জন্য কম্পিউটারের সংগঠন সম্বন্ধে ধারণা থাকা অপরিহার্য
দ্বিতীয় প্রজন্মের ভাষা - ১৯৫০ - অ্যাসেম্বলী ভাষা - Assembly Language
উত্তর :- অ্যাসেম্বলি ভাষা হচ্ছে মেশিন ভাষার পরবর্তী প্রোগ্রামের ভাষা । এ ভাষা বিভিন্ন সংকেত সহযোগে গঠিত । তাই একে সাংকেতিক ভাষাও বলা হয়, অ্যাসেম্বলি ভাষায় সাংকেতিক কোডে নির্দেশ দেয়া হয় । অ্যাসেম্বলি ভাষাকে মেশিনের ভাষায় রূপান্তরিত করার জন্য অ্যাসেম্বলার নামক একধরনের ট্রান্সলেটর বা অনুবাদক প্রোগ্রাম ব্যবহার করা হয় । অ্যাসেম্বলি ভাষার প্রচলন শুরু হয় ১৯৫০ সাল থেকে, দ্বিতীয় প্রজন্মের কম্পিউটার এ ভাষা ব্যাপকভাবে প্রচলিত ছিল । সাংকেতিক ভাষার ক্ষেত্রে নির্দেশ ও তথ্যের ঠিকানা বাইনারি বা হেক্সা সংখ্যার সাহায্যে না দিয়ে সংকেতের সাহায্যে দেয়া হয় । এ সংকেতকে বলে সাংকেতিক কোড-Symbolic Code বা নেমোনিক । অর্থাৎ যে সংকেতের সাহায্যে কোন বড় সংখ্যা বা কথাকে মনে রাখার সুবিধা হয়
অ্যাসেম্বলি ভাষার নির্দেশে চারটি অংশ থাকে যথা:-
1. লেবেল -
Label
2. অপকোড -
OPCode
3. অপারেন্ড -
Operand
4. কমেন্ট -
Comment
অ্যাসেম্বলি ভাষায় প্রোগ্রাম রচনার সুবিধা:-
1. এ ভাষায় রচিত প্রোগ্রাম সংক্ষিপ্ত হয়
2. মেমোরি এ্যাড্রেসের বিবরণের প্রয়োজন হয় না
3. প্রোগ্রাম রচনায় ভুলের পরিমাণ কম হয়
4. মেশিনের অভ্যন্তরীণ গঠন সম্পর্কে জানা হয়
অ্যাসেম্বলি ভাষায় প্রোগ্রাম রচনার অসুবিধা:-
1. প্রোগ্রাম রচনা অত্যন্ত ক্লান্তিকর ও সময়সাপেক্ষ
2. এক ধরনের মেশিনের জন্য লিখিত প্রোগ্রাম অন্য ধরনের মেশিনে ব্যবহার করা যায় না
3. প্রোগ্রাম রচনার জন্য কম্পিউটারের সংগঠন সম্বন্ধে ধারণা থাকা অপরিহার্য
4. অ্যাসেম্বলি প্রোগ্রামের ভাষা অনুবাদ করার জন্য অনুবাদক প্রোগ্রাম অ্যাসেম্বলারের প্রয়োজন হয়
তৃতীয় প্রজন্মের ভাষা - ১৯৬০ - উচ্চতর ভাষা - High Level Language
উত্তর :- মেশিন ও অ্যাসেম্বলি ভাষায় প্রোগ্রাম রচনা করলে তা অন্য ধরনের কম্পিউটারে ব্যবহার করা যায় না । তাছাড়া লো লেভেল ভাষায় প্রোগ্রাম লেখা কষ্টকর ও শ্রমসাধ্য কাজ । কম্পিউটারের পক্ষে লো লেভেল ভাষা বোঝা সহজ হলেও মানুষের পক্ষে লো লেভেল ভাষা বোঝা সহজসাধ্য নয় । এ সকল অসুবিধা থেকে অব্যাহতির প্রচেষ্টার ফলে উচ্চতর ভাষার উদ্ভব হয় । মানুষের কাছাকাছির ভাষা হচ্ছে হাই লেবেল ভাষা । হাই লেভেল ভাষা মানুষ দ্রুত লিখতে, বুঝতে, ও স্বরণ রাখতে পারে । বহুল ব্যবহৃত উচ্চস্তরের ভাষা হচ্ছে - C++, BASIC, PASCAL, FORTRAN ইত্যাদি
হাইলেভেল ল্যাংগুয়েজের বৈশিষ্ট্য বা সুবিধা :-
1. হাইলেভেল বা উচ্চস্তরের ভাষায় লিখিত প্রোগ্রাম যে কোন কম্পিউটারে ব্যবহার করা যায়
2. মানুষের পক্ষে নিম্নস্তরের চেয়ে উচ্চস্তরের ভাষা শেখা সহজ
3. হাইলেভেল ভাষায় তাড়াতাড়ি প্রোগ্রাম লেখা যায়
4. নিম্নস্তরের ভাষায় চার/পাঁচটি নির্দেশের জায়গায় উচ্চস্তরের ভাষায় মাত্র একটি বাক্য লিখলেই চলে
5. হাইলেভেল ল্যাংগুয়েজ লেখা প্রোগ্রামের ভুল সংশোধন করা সহজ
6. অসংখ্য লাইব্রেরি ফাংশন হাইলেভেল প্রোগ্রামে বিদ্যমান থাকে
7. প্রোগ্রাম তৈরির সময় হার্ডওয়্যার নিয়ে ভাবতে হয় না
8. কাজের পরিধি বড় বিধায় প্রোগ্রাম তুলনামূলকভাবে ছোট হয়
হাইলেভেল ল্যাংগুয়েজের অসুবিধা :-
1. প্রোগ্রাম লিখার আগে এ ল্যাংগুয়েজের স্ট্রাকচার সম্পর্কে জানতে হয়
2. প্রোগ্রাম তৈরিতে হাইলেভেল ল্যাংগুয়েজের প্রত্যেকটি কমান্ডের সিনটেক্স জানতে হয়
3. এ ল্যাংগুয়েজকে মেশিন ল্যাংগুয়েজে রূপান্তরের জন্য কম্পাইলার প্রয়োজন হয়
1. বড় প্রোগ্রাম তৈরির কাজে
2. বৃহৎ ডেটা প্রসেসিং-এর কাজে ব্যবহৃত প্রোগ্রাম তৈরি করতে
3. যেসব ক্ষেত্রে প্রচুর মেমোরি প্রয়োজন সেসব ক্ষেত্রের সফটওয়্যার তৈরির কাজে
4. জটিল গাণিতিক কাজের সফটওয়্যার তৈরির কাজে
5. এপ্লিকেশন প্যাকেজ সফটওয়্যার তৈরির কাজে
6. বিভিন্ন ধরনের অটোমেটিক প্রসেস কন্ট্রোলের কাজে
উত্তর :- হাইলেভেল ল্যাংগুয়েজকে দুভাগে ভাগ করা যায়, যথা-
1. সাধারণ কাজের ভাষা - General purpose:- যে ভাষা সব ধরনের কাজের উপযোগী তাকে বলে সাধারণ কাজের ভাষা যেমন- BASIC-বেসিক, C-সি ইত্যাদি ।
2. বিশেষ কাজের ভাষা- Special purpose:- শুধু বিশেষ বিশেষ কাজের উপযোগী তাকে বলে বিশেষ কাজের ভাষা, যেমন- কোবল, লিস্প, ফোরট্রান । বিশেষ কাজের হাইলেভেল ভাষাকে ভিন্ন ভাগে ভাগ করা যায়, যথা-
বাণিজ্যিক প্রয়োগের ভাষা:- এসব ভাষায় বাণিজ্যিক ক্ষেত্রে ব্যবহৃত ডেটার বিশ্লেষণ, বিন্যাস এবং প্রক্রিয়াকরণের ব্যাপক সুবিধা থাকে । এ ভাষায় কাজের নির্দেশ ইংরেজি ভাষার মত । বিভিন্নভাবে রিপোর্ট ও সারণী প্রদর্শনের সুবিধা এ ভাষার অন্যতম আকর্ষণ । কোবল-Cobol একটি অন্যতম বাণিজ্যিক প্রয়োগের ভাষা
বৈজ্ঞানিক প্রয়োগের ভাষা:- এসব ভাষা গবেষণায় উপাত্ত ও তথ্য বিভিন্ন পরীক্ষা-নিরীক্ষা ও পর্যবেক্ষণের ফলাফল প্রক্রিয়াকরণের সুবিধা থাকে । শক্তিশালী গাণিতিক কাজের ক্ষমতা, গাণিতিক ফাংশনের বৃহৎ লইব্রেরি, গাণিতিক বর্ণনা ও সূত্র ব্যবহারের সুবিধা, ম্যাট্রিক্স ব্যবহারের ক্ষমতা এ ধরনের ভাষার বিশেষত্ব । ফরট্রান, এলগল এ ধরনের ভাষার উদাহরণ
বিশেষ প্রয়োগের ভাষা:- বিশেষ প্রয়োগের জন্য এ ধরনের ভাষার উদ্ভব হয়েছে । মেশিন নিয়ন্ত্রণ, সিমুলেশন, বৈজ্ঞানিক পরীক্ষা নিয়ন্ত্রণ এ ধরনের বিশেষ প্রয়োগের উদাহরণ
চতুর্থ প্রজন্মের ভাষা - ১৯৭০ - অতি উচ্চতর ভাষা - Very high Level Language
উত্তর :- কম্পিউটারে সহজে ব্যবহারের জন্য বিশেষ ভাষাকে চতুর্থ প্রজন্মের ভাষা বা অতি উচ্চতর ভাষাও বলা হয় । রিপোর্ট ও পর্দায় ফলাফলের গঠন, ডেটা রেকর্ড, ইনপুট ডেটা প্রভৃতি নির্দিষ্টকরণে সরল কুয়েরি নির্দেশ ব্যবহারের ক্ষমতা চতুর্থ প্রজন্মের ভাষার বৈশিষ্ট্য । প্রধানত বাণিজ্যিক প্রয়োগের জন্য ব্যবহৃত এসব ভাষাকে অনেক সময় এপ্লিকেশন জেনারেটর - Application Generator বলা হয় । এ ভাষায় ইংরেজি ভাষার মত নির্দেশ দিয়ে কম্পিউটার ব্যবহারকারী ডেটাবেজের সাথে সংযোগ স্থাপন এবং ডেটা আদান-প্রদান করতে পারেন । চতুর্থ প্রজন্মের ভাষায় কথোপকথন রীতিতে প্রশ্ন-উত্তরের মাধ্যমে কম্পিউটারের সাথে ব্যবহারকারীর যোগাযোগের ব্যবস্থা থাকে । ডেটাবেজ ম্যানেজমেন্টের সাথে সংশ্লিষ্ট কুয়েরি এবং রিপোর্ট জেনারেটর ও ডেটা সঞ্চালনের জন্য ব্যবহৃত ভাষাসমূহ চতুর্থ প্রজন্মের ভাষা হিসেবে বিবেচনা করা হয় । যেমন- SQL - Structured Query Language
চতুর্থ প্রজন্মের ভাষার - 4GL এর বৈশিষ্ট্য:-
1. এই ভাষায় লিখিত প্রোগ্রাম কোন পরিবর্তন ছাড়াই অন্য কম্পিউটারে ব্যবহার করা যায়
2. এটি অনেকটা ন্যাচারাল বা স্বাভাবিক ভাষার মত
3. ডেটা সংরক্ষণ, কুয়েরি, রিপোর্ট তৈরি ইত্যাদি কাজ খুব সহজেই করা যায়
4. এটি ইন্টারঅ্যাকটিভ মোডে কর্মক্ষম
5. প্রোগ্রামিং প্রসেসকে সহজ করে
6. উচ্চতর ভাষার তুলনায় 4GL খুবই সহজ বোধগম্য ও ব্যবহারযোগ্য
7. সফটওয়্যার ডেভলপ করতে সময়, অর্থ এবং শ্রম কম লাগে
8. 4GL এর সাহায্যে সহজেই অ্যাপ্লিকেশন তৈরি করা যায়
9. একটি কমান্ড লেখার সাথে সাথে কম্পাইল হয়ে যায় । পুরো প্রোগ্রাম একবারে কম্পাইল করতে হয় না
10. এ ল্যাংগুয়েজে করা প্রোগ্রাম রান করতে সময় বেশি লাগে
চতুর্থ প্রজন্মের ভাষার অসুবিধা:-
1. অনেক বেশি মেমোরির প্রয়োজন হয়
2. প্রোগ্রামের আকার অধিকাংশ সময়ে বড় হয়
3. এটি হার্ডওয়্যারের ক্যাপাসিটির উপর অনেকাংশে নির্ভরশীল
4. অনেক বেশি Disk space এর প্রয়োজন হয়
পঞ্চম প্রজন্ম বা ফিফ্থ জেনারেশন ভাষা - 1980 - Fifth Generation Programming Language-5GL-
উত্তর :- ফিফ্থ জেনারেশন প্রোগ্রামিং ল্যাংগুয়েজ হলো এলগরিদম ব্যবহার না করে সহজভাবে সমস্যা সমাধান করার ল্যাংগুয়েজ । সব Constraing based এবং লজিক প্রোগ্রামিং ল্যাংগুয়েজ এবং Declarative ল্যাংগুয়েজ হলো ফিফ্থ জেনারেশন ল্যাংগুয়েজ । 5GL কে এমনভাবে ডিজাইন করা হয়েছে যাতে আগের প্রোগ্রামিং ল্যাংগুয়েজের মতো জটিল কোড লিখতে পারে এমন প্রোগ্রামার ছাড়াই কম্পিউটার দিয়ে সমস্যা সমাধান করা যায় । যার ফলে প্রোগ্রামারদেরকে কিভাবে একটি রুটিন অথবা এলগরিদম প্রয়োগ করতে হবে তা চিন্তা না করে কি সমস্যা সমাধান করতে হবে, কি শর্ত পূরণ করতে হবে তা নিয়ে ভাবলেই চলে । ফিফ্থ জেনারেশন ল্যাংগুয়েজ মূলতঃ কৃত্রিম বুদ্ধিমত্তা গবেষণায় ব্যবহৃত হয় । Prolog, OPS5 এবং Mercury হলো ফিফ্থ জেনারেশন ল্যাংগুয়েজের উদাহরণ