প্রভাষক
০৪ জুলাই, ২০২৩ ১০:৫৭ অপরাহ্ণ
প্রভাষক
ধরনঃ সাধারণ শিক্ষা
শ্রেণিঃ একাদশ
বিষয়ঃ তথ্য ও যোগাযোগ প্রযুক্তি
অধ্যায়ঃ পঞ্চম অধ্যায়
একটি কম্পিউটার সিস্টেমের সাধারণত দুটি পার্ট থাকে। একটি হার্ডওয়্যার এবং অপরটি সফটওয়্যার। হার্ডওয়্যার হলো কম্পিউটারের বিভিন্ন যন্ত্রপাতি যেমন- মনিটর, হার্ডডিস্ক, মাদারবোর্ড, প্রসেসর, র্যাম(RAM), রম(ROM) ইত্যাদি। অপরদিকে সফটওয়্যার হলো কতোগুলো প্রোগ্রামের সমষ্টি যা হার্ডওয়্যারকে নিয়ন্ত্রণ করে। সফটওয়্যার ছাড়া হার্ডওয়্যার প্রাণহীন দেহের মতো।
প্রোগ্রাম কী?
যন্ত্রের মাধ্যমে কোন সমস্যা সমাধানের লক্ষ্যে প্রোগ্রামিং ভাষা ব্যবহার করে প্রোগ্রামারের দেওয়া ধারাবাহিক নির্দেশনার সমষ্টিকে প্রোগ্রাম বলা হয়।কম্পিউটার আবিষ্কারের শুরুর দিকে প্রোগ্রামের কোন ধারণা ছিলোনা। তখন কোন সমস্যা সমাধান করার জন্য প্রয়োজনীয় নির্দেশসমূহ ধারাবাহিকভাবে ০ ও ১ ইনপুটের মাধ্যমে সমাধান করা হতো।
“প্রোগ্রামিং ভাষা” কী?
যে ভাষার সাহায্যে একটি যন্ত্রকে নির্দেশনা দিয়ে কোন সমস্যা সমাধান করা যায় তাকে প্রোগ্রামিং ভাষা বলে।সহজে বলা যায়, প্রোগ্রাম লিখতে বা নির্দেশাবলী সেট করতে যেসকল ভাষা ব্যবহৃত হয় তাদের “প্রোগ্রামিং ভাষা” বলা হয়।অন্যভাবে বলা যায়, যন্ত্রের মাধ্যমে কোন সমস্যা সমাধানের জন্য ব্যবহৃত শব্দ, বর্ণ, অংক, চিহ্ন প্রভৃতির সমন্বয়ে গঠিত রীতিনীতিকে প্রোগ্রামিং ভাষা বলা হয়।কম্পিউটার ০ ও ১ ছাড়া কিছুই বুঝতে পারে না। সকল নির্দেশনা এর মাধ্যমেই দিতে হয়। একে যান্ত্রিক বা মেশিন ভাষা বলা হয়।মেশিন ভাষা হলো কম্পিউটারের মাতৃভাষা। এই ভাষা মানুষের জন্য বুঝা কষ্টকর। তাই পরবর্তিতেবিভিন্নধরণেরপ্রোগ্রামিংভাষারউদ্ভবহয়েছে।যেমন- BASIC, C, C++, COBOL, Java, FORTRAN, Ada, Pascal ইত্যাদি।
প্রোগ্রামার কাকে বলে?
যন্ত্রের মাধ্যমে কোন সমস্যা সমাধানের লক্ষে যে ব্যক্তি প্রোগ্রামিং ভাষা ব্যবহার করে ধারাবাহিকভাবে প্রয়োজনীয় নির্দেশনা দেয় বা প্রোগ্রাম লিখে তাকে প্রোগ্রামার বলে।অ্যাডা লাভলেস (লন্ডনের সম্ভ্রান্ত কবি লর্ড বায়রনের কন্যা ) চার্লস ব্যাবেজের অ্যানালিটিক্যাল ইঞ্জিনে বিভিন্ন সমস্যা সমাধানের জন্য সর্বপ্রথম প্রোগ্রাম রচনা করেন। এজন্য অ্যাডা অগাস্টা কে বিশ্বের প্রথম কম্পিউটার প্রোগ্রামার বিবেচনা করা হয়। এডা প্রোগ্রামিং ল্যাংগুয়েজ এর নামকরণ তার নামেই করা হয়।
প্রোগ্রামিং ভাষা ব্যবহার করে কোন যন্ত্রকে নির্দেশনা দেওয়াকে বলা হয় প্রোগ্রামিং। অন্যভাবে বলা যায়, প্রোগ্রাম রচনার পদ্ধতি বা কৌশলকে প্রোগ্রামিং বলা হয়।
1945 থেকে শুরু করে এ পর্যন্ত যত প্রোগ্রামিং ভাষা আবিষ্কৃত হয়েছে তাদেরকে বৈশিষ্ট্য অনুযায়ী নিমোক্ত পাঁচটি প্রজন্মে ভাগ করা হয়েছে।
Machine Language ( যান্ত্রিক ভাষা)
Assembly Language (অ্যাসেম্বলি ভাষা)
High Level Language (উচ্চস্তরের ভাষা)
Very High Level Language (অতি উচ্চস্তরের ভাষা)
Natural Language (স্বাভাবিক ভাষা)
প্রোগ্রাম রচনার বৈশিষ্ট্যের ভিত্তিতে প্রোগ্রামিং ভাষাসমূহকে আবার বিভিন্ন স্তরে বিভক্ত করা হয়।
-Machine Language, Assembly Language
-C, C++, JAVA, Forth, Dbase, WordStar ইত্যাদি।
-Fortran, Basic, Pascal, Cobol, C, C++, C#, Visual Basic, Java, Python ইত্যাদি।
-Perl, Python, Ruby, SQL, MatLab(MatrixLaboratory) ইত্যাদি।
যে ভাষায় শুধুমাত্র ০ এবং ১ ব্যবহার করে প্রোগ্রাম লেখা হয় তাকে মেশিন বা যান্ত্রিক ভাষা বলে। কম্পিউটারের নিজস্ব ভাষা বা মৌলিক ভাষা হচ্ছে মেশিন ভাষা। এই ভাষায় শুধু মাত্র ০ এবং ১ ব্যবহার করা হয় বলে এই ভাষায় দেওয়া কোনো নির্দেশ কম্পিউটার সরাসরি বুঝতে পারে। ফলে এর সাহায্যে কম্পিউটারের সাথে সরাসরি যোগাযোগ করা যায়।এটি প্রথম প্রজন্মের এবং নিম্নস্তরের ভাষা। হার্ডওয়্যারের সাথে সরাসরি সম্পর্কিত এবং যন্ত্র নির্ভর বলে এই ভাষাকে নিম্নস্তরের ভাষা বলা হয়। মেশিন ভাষায় লেখা প্রোগ্রামকে অবজেক্ট বা বস্তু প্রোগ্রাম বলা হয়।মেশিন ভাষায় দুটি সংখ্যা যোগ করার প্রোগ্রাম-
১। মেশিন ভাষার সবচেয়ে বড় সুবিধা হচ্ছে কম্পিউটারের সাথে সরাসরি যোগাযোগ করা যায়।
২। মেশিন ভাষায় লেখা প্রোগ্রাম নির্বাহের জন্য অনুবাদের প্রয়োজন হয় না। তাই কোনো প্রকার অনুবাদক প্রোগ্রামের প্রয়োজন হয় না। ফলে দ্রুত নির্বাহ হয়।
৩। মেশিন ভাষায় লেখা প্রোগ্রাম রান করতে অল্প মেমোরি প্রয়োজন হয়।
১। শুধু ০ ও ১ ব্যবহার করা হয় বলে মেশিন ভাষা শেখা কষ্টকর এবং এই ভাষা ব্যবহার করে প্রোগ্রাম লেখাও কষ্টসাধ্য।
২। এই ভাষায় লেখা প্রোগ্রাম সাধারণত মানুষের জন্য বুঝা কঠিন।
৩। এই ভাষায় প্রোগ্রাম লিখতে প্রচুর সময় লাগে এবং ভুল হবার সম্ভাবনা খুব বেশি থাকে। ভুল হলে তা সনাক্ত করা এবং ভুল-ত্রুটি দূর করা অর্থাৎ ডিবাগিং কষ্টসাধ্য।
৪। এই ভাষার সবচেয়ে বড় অসুবিধা হচ্ছে এক ধরনের কম্পিউটারের জন্য লেখা প্রোগ্রাম অন্য ধরনের কম্পিউটারে ব্যবহার করা যায় না। অর্থাৎ যন্ত্র নির্ভর ভাষা।
৫। এই ভাষায় প্রোগ্রাম রচনার ক্ষেত্রে প্রোগ্রামারকে কম্পিউটারের অভ্যন্তরীণ সংগঠন ভালোভাবে জানতে হয়।
৬। সকল মেমোরি অ্যাড্রেস মনে রাখতে হয়।
৭। সকল অপারেশন কোড মনে রাখতে হয়।
যে ভাষায় বিভিন্ন সংকেত বা নেমোনিক ব্যবহার করে প্রোগ্রাম লেখা হয় তাকে অ্যাসেম্বলি ভাষা বলে। অ্যাসেম্বলি ভাষায় প্রোগ্রাম লেখার জন্য ০ ও ১ ব্যবহার না করে বিভিন্ন সংকেত ব্যবহার করা হয়।এই সংকেতকে বলে সাংকেতিক কোড (Symbolic Code) বা নেমোনিক (mnemonic) এবং এটি সর্বোচ্চ পাঁচটি লেটারের সমন্বয়ে হয়, যেমন- SUB(বিয়োগের জন্য), MUL(গুণের জন্য), ADD(যোগের জন্য), DIV(ভাগের জন্য) ইত্যাদি। এই বৈশিষ্ট্যের জন্য এই ভাষাকে সাংকেতিক ভাষাও বলা হয়।অ্যাসেম্বলি ভাষা দ্বিতীয় প্রজন্মের এবং নিম্নস্তরের ভাষা। দ্বিতীয় প্রজন্মের কম্পিউটারে এই ভাষা ব্যাপকভাবে প্রচলিত ছিল। এই ভাষা মেশিন ভাষা থেকে উন্নত হলেও উচ্চতর ভাষার সমকক্ষ নয় এবং যন্ত্র নির্ভর হওয়ায় অ্যাসেম্বলি ভাষাকে নিম্নস্তরের ভাষা বলা হয়।এই ভাষায় লেখা প্রোগ্রাম অনুবাদের প্রয়োজন হয় এবং অনুবাদক প্রোগ্রাম হিসেবে অ্যাসেম্বলার ব্যবহৃত হয়।
অ্যাসেম্বলি ভাষায় দুটি সংখ্যা যোগ করার প্রোগ্রাম-
· লেবেল (Label)
· অপ-কোড (Opcode)
· অপারেন্ড (Operand)
· কমেন্ট (Comment)
লেবেলঃ প্রোগ্রামের একটি নির্দিস্ট স্থানকে চিহ্নিত করতে লেবেল ব্যবহৃত হয়। লেবেল ব্যবহারের ফলে প্রোগ্রাম একটি নির্দিস্ট স্টেটমেন্ট থেকে অপর একটি নির্দিস্ট স্টেটমেন্টে জাম্প করতে পারে। লেবেল লেখার ক্ষেত্রে এক বা দুইটি আলফানিউমেরিক ক্যারেক্টার ব্যবহৃত হয় এবং ক্যারেক্টারের মাঝে কোন ফাঁকা থাকা যাবে না। লেবেল হিসেবে কোন নেমোনিক ব্যবহার করা যাবে না। লেবেলের শেষে কোলন(:) দিতে হয়। যেমন- BB: ।
অপ-কোডঃ অপ-কোডকে অপারেশন কোডও বলা হয়। অপ-কোডে নির্দেশ নেমোনিক থাকে। এই নেমোনিকগুলো ভিন্ন ভিন্ন কম্পিউটারে ভিন্ন ভিন্ন হতে পারে। কিছু নির্দেশ নেমোনিক ও তাদের ব্যবহার দেখানো হল-
|
নেমোনিক |
ব্যবহার |
|
LDA |
প্রধান মেমোরির ডেটা অ্যাকিউমুলেটরে লোড করা। |
|
STA |
অ্যাকিউমুলেটরের ডেটাকে একটি নির্দিস্ট অবস্থানে সংরক্ষণ করা। |
|
CLR |
অ্যাকিউমুলেটর খালি করা। |
|
ADD |
অ্যাকিউমুলেটরের সাথে অপারেন্ডের মান যোগ করে যোগফল অ্যাকিউমুলেটরে রাখা। |
|
SUB |
অ্যাকিউমুলেটর থেকে অপারেন্ডের মান বিয়োগ করে বিয়োগফল অ্যাকিউমুলেটরে রাখা। |
|
MUL |
অ্যাকিউমুলেটরের সাথে অপারেন্ডের মান গুন করে গুণফল অ্যাকিউমুলেটরে রাখা। |
|
DIV |
অ্যাকিউমুলেটরের মানকে অপারেন্ডের মান দ্বারা ভাগ করে ভাগফল অ্যাকিউমুলেটরে রাখা। |
|
JMP |
শর্তহীনভাবে প্রোগ্রামের নির্দিস্ট লেভেলে জাম্প করতে। |
|
INP |
ডেটা বা নির্দেশ গ্রহণ করে মেমোরির নির্দিস্ট অবস্থানে রাখা। |
|
OUT |
মেমোরির নির্দিস্ট অবস্থানের ডেটা আউটপুটে প্রদর্শন। |
|
STP |
প্রোগ্রামকে থামানো। |
অপারেন্ডঃ অপকোড যার উপর কাজ করে তাকে অপারেন্ড বলে। এটি সাধারণত মেমোরির অ্যাড্রেস বা সরাসরি ডেটা হতে পারে।
কমেন্টঃ প্রোগ্রামে কোন নির্দেশের কী কাজ তা বর্ননা আকারে লেখা হয় যাকে কমেন্ট বা মন্তব্য বলে। এটি প্রোগ্রাম নির্দেশের কোন অংশ নয়। প্রোগ্রাম নির্দেশগুলোর কমেন্ট থাকলে পরবর্তীতে প্রোগ্রামের পরিবর্তন করা সহজ হয় বা অন্য কোন প্রোগ্রামারের পক্ষে প্রোগ্রাম নিয়ে কাজ করা সহজ হয়।
১। অ্যাসেম্বলি ভাষা সহজে বুঝা যায় এবং এই ভাষায় প্রোগ্রাম রচনা করা যান্ত্রিক ভাষার তুলনায় অনেক সহজ।
২। এ ভাষায় প্রোগ্রাম রচনা করতে সময় এবং শ্রম কম লাগে।
৩। প্রোগ্রাম সহজে পরিবর্তন করা যায়।
৪। প্রোগ্রামের ত্রুটি(Error) বের করে তা সমাধান করা অর্থাৎ ডিবাগিং করা মেশিন ভাষার চেয়ে সহজ।
১। এই ভাষার সবচেয়ে বড় অসুবিধা হচ্ছে এক ধরনের কম্পিউটারের জন্য লেখা প্রোগ্রাম অন্য ধরনের কম্পিউটারে ব্যবহার করা যায় না। অর্থাৎ যন্ত্র নির্ভর ভাষা।
২। প্রোগ্রাম রচনার সময় প্রোগ্রামারকে মেশিন সম্পর্কে ধারণা থাকতে হয়।
৩। প্রোগ্রাম নির্বাহের জন্য অনুবাদক প্রোগ্রামের প্রয়োজন হয়।
উচ্চস্তরের ভাষা হলো সেই সকল ভাষা যা মানুষের বোধগম্য এবং মানুষের ভাষার কাছাকাছি। যেমন- উচ্চস্তরের ভাষা ইংরেজি ভাষার সাথে মিল আছে এবং এই প্রোগ্রামিং ভাষা যন্ত্র নির্ভর নয়, এই জন্য এসব ভাষাকে উচ্চস্তরের ভাষা বলা হয়।এটি মানুষের জন্য বুঝা খুব সহজ কিন্তু কম্পিউটার সরাসরি বুঝতে পারে না বলে অনুবাদক প্রোগ্রামের সাহায্যে একে মেশিন ভাষায় রুপান্তর করে নিতে হয়। এটি তৃতীয় প্রজন্মের ভাষা।যেমন- Fortran, Basic, Pascal, Cobol, C, C++, Visual Basic, Java, Python ইত্যাদি।উচ্চস্তরের(C) ভাষায় দুটি সংখ্যা যোগ করার প্রোগ্রাম-
ব্যবহারের ক্ষেত্র অনুসারে উচ্চস্তরের ভাষাগুলোকে দুই ভাগে ভাগ করা যায়। যথা-
যেসকল উচ্চস্তরের প্রোগ্রামিং ভাষা সব ধরনের কাজের উপযোগী তা সাধারণ কাজের ভাষা নামে পরিচিত। যেমন- C, Java, Python ইত্যাদি।
যেসকল উচ্চস্তরের প্রোগ্রামিং ভাষা বিশেষ বিশেষ কাজের উপযোগী তা বিশেষ কাজের ভাষা নামে পরিচিত। যেমন: LISP, ALGOL, FORTRAN ইত্যাদি।নির্বাহ মডেল অনুসারে উচ্চস্তরের ভাষাগুলোকে দুই ভাগে ভাগ করা যায়। যথা-
যেসকল উচ্চস্তরের প্রোগ্রামিং ভাষায় লেখা প্রোগ্রাম নির্বাহের জন্য কম্পাইলার অনুবাদক ব্যবহার করে কম্পাইল করতে হয় তাদেরকে কম্পাইল্ড ভাষা বলা হয়।যেমন- C, C++, C# ইত্যাদি।
যেসকল উচ্চস্তরের প্রোগ্রামিং ভাষায় লেখা প্রোগ্রাম নির্বাহের জন্য ইন্টারপ্রেটার অনুবাদক ব্যবহার করে ইন্টারপ্রেট করতে হয় তাদেরকে ইন্টারপ্রেটেডে ভাষা বলা হয়।যেমন- Python, Ruby, Perl ইত্যাদি।প্রোগ্রাম ডিজাইনের উপর ভিত্তি করে উচ্চস্তরের ভাষাগুলোকে দুই ভাগে ভাগ করা যায়। যথা-
এই প্রোগ্রামিং মডেলে একটি সমস্যাকে বিভিন্ন ছোট ছোট মডিউল বা অংশে ভাগ করে একটি বড় সমস্যার সমাধান করা হয়। প্রতিটি মডিউলকে ফাংশন বলা হয়। এই মডেলে প্রোগ্রামের নিয়ন্ত্রন উপর থেকে নিচের দিকে পরিচালিত হয় অর্থাৎ টপ-ডাউন পদ্ধতি অনুসরণ করে। এই মডেলে প্রোগ্রামের ডেটা গুলো ইন্সট্রাকশন দ্বারা নিয়ন্ত্রিত হয়।যেমন- C, FORTRAN ইত্যাদি।
অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং হল ডেটা কেন্দ্রিক প্রোগ্রামিং পদ্ধতি। অর্থাৎ এই পদ্ধতিতে প্রোগ্রামের ইন্সট্রাকশন গুলো ডেটা দ্বারা নিয়ন্ত্রিত হয়। একটি প্রোগ্রামিং ভাষাকে পরিপূর্ণ অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা বলা যাবে তখনই, যখন প্রোগ্রামিং ভাষাটি ক্লাস, অবজেক্ট, এনক্যাপ্সুলেশন, পলিমরফিজম ও ইনহেরিটেন্স প্রভৃতি ফিচারগুলো সাপোর্ট করবে।যেমন- C++, C#, JAVA ইত্যাদি।
১। উচ্চস্তরের ভাষা প্রোগ্রামার বান্ধব। তাই শেখা সহজ ফলে এই ভাষা ব্যবহার করে প্রোগ্রাম লেখা সহজ ও লিখতে সময় কম লাগে।
২। এতে ভুল হবার সম্ভবনা কম থাকে এবং প্রোগ্রামের ত্রুটি(Error) বের করে তা সংশোধন করা অর্থাৎ ডিবাগিং সহজ।
৩। এই ভাষায় প্রোগ্রাম লেখার জন্য কম্পিউটারের অভ্যন্তরীণ সংগঠন সম্পর্কে ধারণা থাকার প্রয়োজন নেই।
৪। এক মডেলের কম্পিউটারের জন্য লেখা প্রোগ্রাম অন্য মডেলের কম্পিউটারে ব্যবহার করা যায়। অর্থাৎ যন্ত্র নির্ভর নয়।
১। উচ্চস্তরের ভাষার অসুবিধা হচ্ছে এই ভাষার সাহায্যে কম্পিউটারের সাথে সরাসরি যোগাযোগ করা যায় না।
২। এই ভাষায় লেখা প্রোগ্রামকে অনুবাদ করে কম্পিউটারকে বুঝিয়ে দিতে হয়। অর্থাৎ অনুবাদক প্রোগ্রামের প্রয়োজন হয়।
৩। উচ্চস্তরের প্রোগ্রামগুলো নিম্নস্তরের প্রোগ্রামের চেয়ে তুলনামূলকভাবে ধীর হয়।
৪। প্রোগ্রাম রান করতে বেশি মেমোরি প্রয়োজন হয়।
১। বড় অ্যাপ্লিকেশন সফটওয়্যার তৈরিতে।
২। অ্যাপ্লিকেশন প্যাকেজ সফটওয়্যার তৈরিতে।
৩। বিভিন্ন ধরনের অটোমেটেড প্রসেস কন্ট্রোলের জন্য সফটওয়্যার তৈরিতে ইত্যাদি।
১৯৫৭ সালে এই ভাষার প্রথম রিলিজ হয়। Formula Translation থেকে Fortran এর উৎপত্তি যা উচ্চস্তর প্রোগ্রামিং ভাষাগুলোর মধ্যে সবচেয়ে আদিমতম ভাষা। IBM এর গবেষক জন বাকাস IBM মেইনফ্রেম কম্পিউটার এর জন্য এটি তৈরি করেন।এটি কম্পাইল্ড ভাষা ও প্রসিডিউর প্রোগ্রামিং ভাষা।গাণিতিক জটিল হিসাব-নিকাশের জন্য এবং প্রকৌশল বিজ্ঞানে গবেষণার কাজে এটি বেশ জনপ্রিয়।
১৯৫৮ সালে এই ভাষার প্রথম রিলিজ হয়। এর পূর্ণনাম Algorithmic Language।অ্যালগোরিদম প্রকাশের জন্য এবং গণনা করার জন্য ১৯৫৮-৬০ এর সময় কার্নেগি মেলন বিশ্ববিদ্যালয়ের অ্যালান জে পেরিলিসের নেতৃত্বে অ্যাসোসিয়েশন অফ কম্পিউটিং মেশিনারি (এসিএম) এর একটি আন্তর্জাতিক কমিটি এই ভাষা ডিজাইন করেছিলো।এটি কম্পাইল্ড ভাষা ও প্রসিডিউর প্রোগ্রামিং ভাষা।এটি ব্যবহৃত হতো মূলত বৈজ্ঞানিক গবেষণায় বিভিন্ন সমস্যার সমাধানে।এছাড়া, ৩০ বছরেরও বেশি সময় ধরে পাঠ্যপুস্তকে এবং একাডেমিয়ায় অ্যালগোরিদম তৈরির জন্য স্ট্যান্ডার্ড মেথড হিসাবে এসিএম(ACM) দ্বারা ALGOL ব্যবহৃত হয়েছিল।
১৯৭২ সালে এই ভাষার প্রথম রিলিজ হয়। ডেনিশ রিচি (Dennis M. Ritchie) বেল ল্যাবরেটরিতে UNIX অপারেটিং সিস্টেম ডেভেলোপ করার জন্য ‘সি’ প্রোগ্রামিং ভাষাটি তৈরি করেন। ১৯৭০ সালে প্রথম ‘সি’ প্রোগ্রামিং ভাষাটি DEC PDP-11 কম্পিউটারে প্রয়োগ করা হয়েছিল।‘সি’ প্রোগ্রামিং ভাষা একটি সাধারণ কাজের ভাষা, স্ট্রাকচার্ড, প্রোসিডিউর,কম্পাইল্ড প্রোগ্রামিং ভাষা ও উচ্চস্তরের প্রোগ্রামিং ভাষা। মিড-লেভেল ল্যাঙ্গুয়েজ হিসেবে ‘সি’ অত্যন্ত জনপ্রিয়।‘সি’ নামটা এসেছে মার্টিন রিচার্ডস (Martins Richards) এর উদ্ভাবিত বিসিপিএল (BCPL-Basic Combined Programming Language) ভাষা থেকে। BCPL এর উন্নত সংস্করণ B নামে পরিচিত ছিল। পরে B এর উন্নয়নের ফলে C এর বিকাশ ঘটে। ‘সি’ প্রোগ্রামিং ভাষাকে সকল প্রোগ্রামিং ভাষার ভিত্তি বলা হয়।
১৯৮৫ সালে Bjarne Stroustrup বেল ল্যাবরেটরিতে C ভাষার বৈশিষ্ট্যের সাথে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর বৈশিষ্ট্য যুক্ত করে নতুন এক প্রোগ্রামিং ভাষা তৈরি করেন যা C++ নামে পরিচিত।শুরুতে এর নামকরণ করা হয়েছিল “C with Classes” কিন্তু পরবর্তীতে ১৯৮৩ সালে C++ (সি++) নামকরণ করা হয়। সি++ হলো সি এর সুপারসেট।এই ভাষাকে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা বলা হয়।একে কম্পাইল্ড প্রোগ্রামিং ভাষা ও মধ্যম-স্তরের প্রোগ্রামিং ভাষাও বলা হয়।এই ভাষার সাহায্যে বিভিন্ন সিস্টেম সফটওয়্যার, অ্যাপ্লিকেশন সফটওয়্যার, ডিভাইস ড্রাইভার ইত্যাদি তৈরি করা যায়।
১৯৯০ সালে Guido Van Rossum পাইথন প্রোগ্রামিং ভাষা ডিজাইন করেছিলেন এবং পাইথন সফটওয়্যার ফাউন্ডেশন দ্বারা ডেভেলোপ করা হয়েছিল। এটি মূলত কোড পঠনযোগ্যতার উপর জোর দেওয়ার জন্য তৈরি করা হয়েছিল এবং এর সহজ সিনট্যাক্স প্রোগ্রামারদেরকে অল্প সংখ্যক লাইন কোডের মাধ্যমেই একটি ধারণা প্রকাশ করার সুবিধা দেয়।পাইথন একটি বহুল ব্যবহৃত সাধারণ-উদ্দেশ্যে, উচ্চ স্তরের প্রোগ্রামিং ভাষা। এই ভাষা একই সাথে অবজেক্ট ওরিয়েন্টেড ও স্ট্রাকচার্ড প্রোগ্রামিং ডিজাইনমডেলসাপোর্ট করে।টি ইন্টারপ্রেটেড প্রোগ্রামিং ভাষা।ডেস্কটপ GUI অ্যাপ্লিকেশন, ওয়েবসাইট এবং ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য পাইথন ব্যপকভাবে ব্যবহৃত হয়।এছাড়া ডেটা এনালাইসিস, মেশিন লার্নিং ও কৃত্রিম বুদ্ধিমত্তায় ব্যপকভাবে ব্যবহৃত হচ্ছে।
১৯৯১ সালে এই ভাষার প্রথম রিলিজ হয়। মাইক্রোসফ্ট কোম্পানি এই প্রোগ্রামিং ভাষা এবং পরিবেশ ডেভেলোপ করে। এই ভাষার জনক Alan Cooper.ভিজুয়্যাল বেসিক একটি ইভেন্ট ড্রাইভেন ও অবজেক্ট ওরিয়েন্টেড প্রোগ্রাম ডিজাইন ভিত্তিক ভাষা।বেসিক(BASIC) ভাষার উপর ভিত্তি করে তৈরি ভিজুয়াল বেসিক প্রোগ্রামিং ভাষাটি প্রথম গ্রাফিক্যাল প্রোগ্রামিং পরিবেশ এবং ইউজার-ইন্টারফেস ডেভেলপমেন্টের জন্য একটি পেইন্ট মেটাফোর সরবরাহকারী প্রোগ্রামিং ভাষা।সিনট্যাক্স সম্পর্কে উদ্বিগ্ন হওয়ার পরিবর্তে ভিজ্যুয়াল বেসিক প্রোগ্রামার ড্রাগ-এন্ড-ড্রপের সাহায্যে প্রয়োজনীয় কোড যুক্ত করতে পারে।এই ভাষা ব্যবহার করে খুব সহজেই কাস্টমাইজড অ্যাপ্লিকেশন সফটওয়্যার তৈরি করা যায়।
জাভা প্রোগ্রামিং ভাষাটি মূলত সান মাইক্রোসিস্টেম কোম্পানি ডেভেলোপ করেন যা James Gosling শুরু করেছিলেন। এই জন্য James Gosling কে জাভা প্রোগ্রামিং ভাষার জনক বলা হয়।৯৯৫ সালে সান মাইক্রোসিস্টেমের জাভা প্ল্যাটফর্মের মূল উপাদান হিসাবে প্রকাশ করেছিলেন Java 1.0 [J2SE]।জাভা একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা এবং এটি প্ল্যাটফর্ম নির্ভর নয়। বর্তমান যুগে জাভার জনপ্রিয়তার মূল কারণ হল এই ভাষা ব্যবহার করে লেখা প্রোগ্রাম যেকোন অপারেটিং সিস্টেমে চালানো যায়।কম্পাইল্ড এবং ইন্টারপ্রেটেড ভাষা।মধ্যম-স্তর ও সাধারণ কাজের ভাষাও বলা হয়।শুরুতে এই ভাষার নামকরণ করা হয়েছিলো ‘Oak’ । গোসলিংয়ের (James Gosling) অফিসের বাইরে দাঁড়িয়ে থাকা ‘oak’ গাছের নামানুসারে এই নামকরণ করা হয়। পরবর্তীতে ‘Green’ নামে পরিবর্তন হয় এবং সবশেষে জাভা নামকরণ করা হয়।এই প্রোগ্রামিং ভাষা ব্যবহার করে ওয়েব অ্যাপ্লিকেশন, ডেস্কটপ অ্যাপ্লিকেশন, মোবাইল অ্যাপ্লিকেশন ইত্যাদি তৈরি করা যায়।
যেসকল প্রোগ্রামিং ভাষায় নিম্নস্তরের ভাষার বৈশিষ্ট্য এবং উচ্চস্তরের ভাষার বৈশিষ্ট্য উভয় বিদ্যমান তাদেরকে মধ্যম স্তরের ভাষা বা মিড লেভেল ল্যাঙ্গুয়েজ বলা হয়।মিড লেভেল ল্যাঙ্গুয়েজ ব্যবহার করে বিট পর্যায়ের প্রোগ্রামিং বা সিস্টেম সফটওয়্যার এর মাধ্যমে হার্ডওয়্যার নিয়ন্ত্রণ করা যায়, যা নিম্ন-স্তরের ভাষার বৈশিষ্ট্য। অন্যদিকে, মিড লেভেল ল্যাঙ্গুয়েজ ব্যবহার করে অ্যাপ্লিকেশন সফটওয়্যারও তৈরি করা যায়, যা উচ্চস্তরের ভাষারও বৈশিষ্ট্য।অর্থাৎ মিড লেভেল ল্যাঙ্গুয়েজে নিম্নস্তরের ভাষার বৈশিষ্ট্য এবং উচ্চস্তরের ভাষার বৈশিষ্ট্য উভয় বিদ্যমান।মধ্যম স্তরের ভাষার উদাহরণ হল – C, C++, JAVA, Forth, Dbase, WordStar ইত্যাদি।
4GL এর পূর্ণরূপ Fourth Generation Language।197০ সাল থেকে চতুর্থ প্রজন্মের ভাষার ব্যবহার শুরু হয়।উচ্চস্তরের ভাষার চেয়ে এই প্রজন্মের ভাষাগুলো মানুষের ভাষার অধিক কাছাকাছি এবং প্রোগ্রামার ফ্রেন্ডলি হওয়ায় অতি উচ্চস্তরের ভাষাও বলা হয়।ডেটাবেজ প্রোগ্রামিং এবং স্ক্রিপ্টিং এর ক্ষেত্রে এই প্রজন্মের ভাষা ব্যবহৃত হয়।চতুর্থ প্রজন্মের ভাষা হলো ডেটাবেজ সংক্রান্ত ভাষা। অর্থাৎ এই প্রজন্মের ভাষার সাহায্যে ডেটাবেজ তৈরি, আপডেট, ডিলেট সহ ডেটাবেজ সম্পর্কিত সকল কাজ সম্পাদন করা যায়।এই প্রজন্মের ভাষাগুলো Domain-specific। অর্থাৎ প্রতিটি প্রোগ্রামিং ভাষা একটি নির্দিস্ট উদ্দেশ্যে ব্যবহার করা হয়।এই প্রজন্মের ভাষাকে non-procedural বা Functional Language বলা হয়। কারণ এই প্রজন্মের ভাষার ব্যবহারের ক্ষেত্রে যে তথ্যাবলি দরকার কেবল তা বলে দিলেই হয়, কীভাবে কুয়েরি করা যাবে তা বলার দরকার হয় না।এই প্রজন্মের ভাষার উদাহরণ হল Perl, Python, Ruby, SQL, MatLab(MatrixLaboratory) ইত্যাদি।
১। Database management
২। Report generation
৩। Mathematical optimization
৪। GUI development
৫। Web development
ওরাকল একটি RDBMS(Relational Database Management System) সফটওয়্যার যা ওরাকল কর্পোরেশন তৈরি করে।লরেন্স এলিসন এবং অন্যান্য ডেভেলপারদের দ্বারা মূলত 1977 সালে ডেভেলপ করা হয়েছিল, ওরাকল ডিবি হ’ল অন্যতম নির্ভরযোগ্য এবং বহুল ব্যবহৃত রিলেশনাল ডাটাবেস ইঞ্জিন।ডেটাবেজ সফটওয়্যারগুলোর মধ্যে ওরাকল অন্যতম নির্ভরযোগ্য এবং বহুল ব্যবহৃত রিলেশনাল ডেটাবেজ ইঞ্জিন।
5GL এর পূর্ণরূপ Fifth Generation Language। পঞ্চম প্রজন্মের ভাষাকে স্বাভাবিক ভাষাও (Natural Language) বলা হয়।Artificial Intelligence বা কৃত্রিম বুদ্ধিমত্তা নির্ভর যন্ত্র তৈরিতে বা গবেষণায় এই প্রজন্মের ভাষা ব্যবহৃত হয়।পঞ্চম প্রজন্মের ভাষায় লেখা প্রোগ্রামকে মেশিন ভাষায় রূপান্তরের জন্য ইন্টেলিজেন্ট কম্পাইলার ব্যবহৃত হয়। এই প্রজন্মের ভাষা ব্যবহার করে মানুষ যন্ত্রকে মৌখিক নির্দেশ দিতে পারে।পঞ্চম প্রজন্মের ভাষার উদাহরণ হচ্ছে PROLOG(PROgramming LOGic), LISP, Mercury ইত্যাদি।