1.0 প্রােগ্রামিং ও প্রােগ্রামিং ভাষা (Programming & programming language) :
প্রােগ্রামিং(Programming) :
কম্পিউটার ব্যবহার করার মূল উদ্দেশ্য হচ্ছে সমস্যা সমাধান। সমস্যা সমাধানের অন্যতম উপায় হচ্ছে প্রােগ্রামিং। সাধারণ অর্থে কম্পিউটার ব্যবহার করে পদ্ধতিগতভাবে সমস্যা সমাধানের প্রক্রিয়াকে প্রােগ্রামিং বলা হয়। প্রােগ্রামিং এর মাধ্যমে জটিল সমস্যাবলি অল্প সময়ে এবং সহজে সমাধান করা যায় । কম্পিউটারের পরিভাষায়-কোন সমস্যা সহজে সমাধানের উদ্দেশ্যে সম্পাদনের অনুক্রমে প্রদত্ত ধারাবাহিক নির্দেশ (Command/Statement) বা নির্দেশাবলি সাজানাের কৌশলই প্রােগ্রামিং (Programming)।
প্রােগ্রামিং ল্যাংগুয়েজ (Programming language):
দৈনন্দিন জীবনে আমরা পরস্পরের সাথে যােগাযােগ (Communication) বা বিভিন্ন রকম সমস্যা সমাধানের জন্য নানারকম ভাষা (Language) ব্যবহার করি। এসব ভাষাকে মানুষের ভাষা (Human language) বলে। উদাহরণস্বরূপ বাংলা, ইংরেজি, আরবি, হিন্দি, উর্দু, ফার্সি, গ্রিক, ল্যাটিন ইত্যাদি ভাষার নাম উল্লেখ করা যেতে পারে। তদ্রুপ কম্পিউটার ব্যবহার করে সমস্যা সমাধানের জন্য মানুষ ও কম্পিউটারের মধ্যে যােগাযােগ (Communication) প্রতিষ্ঠার প্রয়ােজন হয়। যার মাধ্যমে মানুষ কম্পিউটারকে বিভিন্ন নির্দেশনা (Instruction) প্রদান করতে পারে। আর মানুষ ও কম্পিউটারের মধ্যে যােগাযােগ প্রতিষ্ঠা করে বিভিন্ন সমস্যা সমাধানের নিমিত্তে বিভিন্ন ধরনের ভাষা (Language) ব্যবহার করা হয়। এসব ভাষাই মূলত প্রােগ্রামিং ল্যাংগুয়েজ।
কম্পিউটার ব্যবহার করে কোন সমস্যা সমাধানের নিমিত্তে যেসব ল্যাংগুয়েজ (Language) ব্যবহার করে প্রোগ্রাম বা সফটওয়্যারসমূহ রচনা করা হয়, সেসব ল্যাংগুয়েজকে প্রােগ্রামিং ল্যাংগুয়েজ (Programming language) বা প্রোগ্রামিং ভাষা বলে। যেমন- Fortran, COBOL, BASIC, C, C++, C#, Java, Oracle, Pascal ইত্যাদি।
প্রােগ্রামিং ল্যাংগুয়েজের প্রকারভেদ (Types of programming language) প্রােগ্রামিং ল্যাংগুয়েজের । প্রকারভেদ নিম্নরূপঃ
Programming language
- Low-level language
- High level language
Low-level language
- Machine language
- Assembly language
নিম্নস্তরের ভাষা (Low level language) : লাে লেভেল ল্যাংগুয়েজ বা নিম্নস্তরের ভাষা বলতে মেশিন ল্যাংগুয়েজ ও এসেম্বলি ল্যাংগুয়েজকে বুঝানাে হয়।
মেশিন ল্যাংগুয়েজ (Machine language) ঃ যে ভাষায় সমস্যা সমাধানের জন্য বাইনারি সংখ্যা (0,1) ব্যবহার করে নির্দেশ (Instruction) সাজিয়ে প্রােগ্রাম রচনা করা হয়, তাই মেশিন ল্যাংগুয়েজ (Machine language)।
– মেশিন ল্যাংগুয়েজে লিখিত প্রােগ্রামকে অবজেক্ট প্রােগ্রাম (Object program) বলে।
-এ ভাষায় প্রােগ্রাম লিখা তুলনামূলকভাবে কষ্টসাধ্য এবং সময়সাপেক্ষ। এ ভাষায় লিখিত প্রােগ্রাম নির্বাহের জন্য কোন অনুবাদক প্রােগ্রামের (Translator) প্রয়ােজন হয় না।
-এক ধরনের মেশিনের জন্য লিখিত প্রােগ্রাম অন্য ধরনের মেশিনে ব্যবহার করা যায় না।
-এ ভাষায় প্রােগ্রাম লেখার জন্য কম্পিউটারে প্রতিটি ইস্ট্রাকশন এবং মেমােরি অ্যাড্রেস সম্বন্ধে পরিষ্কার ক ধারণা থাকা অপরিহার্য।
এসেম্বলি ল্যাংগুয়েজ (Assembly language)ঃ
বিশেষ সংক্ষিপ্ত সংকেত বা নেমােনিক (ADD, SUB, MUL, DIV, =ে LOAD, MOV, MV, JMP, JNZ, INC ইত্যাদি) ব্যবহার করে যে ভাষায় প্রােগ্রাম রচনা করা হয় তাকে এসেম্বলি ল্যাংগুয়েজ M (Assembly language) বলে। যেমন- MASM, TASM ইত্যাদি।
– এ ভাষায় লিখিত প্রােগ্রামকে সাের্স প্রােগ্রাম (Source program) বলে।
– মেশিন ল্যাংগুয়েজের তুলনায় এসেম্বলি ল্যাংগুয়েজে প্রােগ্রাম রচনা অপেক্ষাকৃত সহজ ও কম সময়সাপেক্ষ বা হলেও হাই লেভেল ল্যাংগুয়েজের তুলনায় কষ্টসাধ্য এবং সময় সাপেক্ষ।
-এ ভাষায় প্রােগ্রাম রচনার জন্য প্রচুর কমান্ড (Command) মুখস্থ রাখতে হয়।
– এ ভাষায় লিখিত প্রােগ্রাম নির্বাহের জন্য অনুবাদক প্রােগ্রামের (Assembler) প্রয়ােজন হয়।
হাই-লেভেল ল্যাংগুয়েজ (High level language) ঃ প্রােগ্রাম রচনার জন্য সহজে বােধগম্য সার্বজনীন ভাষা যেখানে ব্যক্ত স্বাভাবিক ভাষার (ইংরেজি) অনেক শব্দ ব্যবহার করা হয় তাকে হাই লেভেল ল্যাংগুয়েজ (High level language) বলে। অতন যেমন- BASIC, ForTran, C, C++, Java, Oracle, Pascal, ADA, CoBoL ইত্যাদি।
– এ ভাষায় মেশিন ল্যাংগুয়েজ ও এসেম্বলি ল্যাংগুয়েজের অসুবিধাসমূহ দূর করা হয়েছে। তাই এ ভাষায় লিখিত প্রােগ্রামের পরিবর্তন, পরিবর্ধন, সম্পাদনা এবং রক্ষণাবেক্ষণ সহজ ও কম সময় সাপেক্ষ।
-এ ভাষায় লিখিত প্রােগ্রামকেও সাের্স প্রােগ্রাম (Source program) বলে।
-এ ভাষায় প্রােগ্রাম রচনার জন্য কম্পিউটার অভ্যন্তরীণ সংগঠন সম্বন্ধে ধারণা থাকার প্রয়ােজন নেই। অর্থাৎ এ ভাষার প্রােগ্রাম মেশিন নির্ভর নয়।
-এ ভাষায় লিখিত প্রােগ্রাম নির্বাহের জন্য অনুবাদক প্রােগ্রাম (কম্পাইলার ও ইন্টার প্রিটার) প্রয়ােজন হয়।
-এ ভাষায় প্রােগ্রাম বুঝতে এবং বিভিন্ন ইন্সট্রাকশন বা স্টেটমেন্টসমূহ বুঝতে অসুবিধা হয় না।
– এতে অসংখ্য তৈরি (Built in) লাইব্রেরি ফাংশনের সুবিধা থাকে।
বিভিন্ন ধরনের হাই লেভেল প্রােগ্রামিং ল্যাংগুয়েজ (Different high level programming language) ঃ শুধুমাত্র একটি হাই লেভেল ল্যাংগুয়েজের মাধ্যমে সব ধরনের সমস্যার সমাধান সম্ভব নয়। এক এক ধরনের সমস্যা, সমাধানের জন্য বিশেষ একটি হাই লেভেল ল্যাংগুয়েজ বিশেষভাবে উপযােগী। এসব কারণেই বিভিন্ন প্রকার হাই লেভেল ল্যাংগুয়েজের উৎপত্তি ঘটেছে।
ফরট্রান (ForTran) ঃ ১৯৫৭ সালে IBM কোম্পানির ড. জেমস ব্যাকার Fortran ডেভেলপ করেন। এর পুরাে নাম Formula Translation. সাধারণত বৈজ্ঞানিক এবং ইঞ্জিনিয়ারিং কাজে বিভিন্ন ধরনের গাণিতিক সূত্রের ব্যবহারের জন্য। ForTran প্রয়ােজন হয়।
কোবল (CoBOL) ঃ পুরাে নাম Common Business Oriented Language. সাধারণত ব্যবসায়িক সফটওয়্যারের ডেভেলপ করার জন্য ১৯৬০ সালে CoBOL ডেভেলপ করা হয়।
বেসিক (BASIC) ঃ কেবলমাত্র নির্দিষ্ট কাজের জন্য নয় বরং প্রােগ্রামিং ল্যাংগুয়েজ ব্যবহার করে যাতে যে কোন সমস্যা সমাধান করা যায় এবং ছাত্র-ছাত্রীদেরকেও যাতে সহজে শেখানাে যায়, এই উদ্দেশ্যেই BASIC (Beginers Allpurpose Symbolic Instruction Code) নামক ল্যাংগুয়েজটি ডেভেলপ করা হয়। ১৯৬০ সালে যুক্তরাষ্ট্রের ডার্ট মাউথ । কলেজে এটি সর্বপ্রথম ব্যবহার করা হয়।
প্যাসকেল (Pascal) : ১৯৭০ সালের শেষের দিকে সুইজারল্যান্ডের প্রফেসর নিকলাস হুইরথ সহজ ও সুষ্ঠুভাবে – প্রােগ্রামিং শেখানাের জন্য Pascal ডেভেলপ করেন। Pascal-ই হল প্রথম Moduiar programming language. Modular প্রােগ্রামিং ল্যাংগুয়েজ-এর মানে হল, এতে প্রত্যেকটি বড় বড় প্রােগ্রামকে কতকগুলাে সাব-প্রােগ্রামে ভাগ করা। যায় এবং প্রত্যেকটি সাব-প্রােগ্রাম আলাদাভাবে কাজ করে। অন্যান্য প্রােগ্রামিং ল্যাংগুয়েজ-এর নামের মত Pascal কোন পূর্ণ নামের সংক্ষিপ্ত রূপ নয়। তবে Pascal যেহেতু প্রথম Modular ল্যাংগুয়েজ তাই এতে কিছুটা সীমাবদ্ধতা থাকাটা। স্বাভাবিক। তাছাড়া Pascal বৈজ্ঞানিক, গাণিতিক ও ব্যবসায়ীক কাজে অত বিস্তৃতভাবে ব্যবহার উপযােগী নয়।
সি (C) : প্রােগ্রামকে যাতে আরাে গতিশীল করা যায় এবং প্রােগ্রামিং ল্যাংগুয়েজ ব্যবহার করে যাতে সহজে ॥O device, memory বা অন্যান্য device নিয়ন্ত্রণ করা যায়, সেই লক্ষ্যে ডেভেলপ করা হয় C C কোন বিশেষ সমস্যা সমাধান করার জন্য নয়। একে ডেভেলপ করা হয়েছে যে কোন সমস্যা (তা বৈজ্ঞানিক হােক বা গাণিতিক হােক কিংবা ব্যবসায়ীক হােক) সমাধান করার জন্য। অন্যান্য প্রােগ্রামিং ল্যাংগুয়েজ-এর চেয়ে C তার library function এর দিক দিয়ে অত্যন্ত সমৃদ্ধ।
তবে উপরে উল্লেখিত প্রােগ্রামিং ল্যাংগুয়েজগুলাে ছাড়া আরও কিছু ল্যাংগুয়েজ নির্দিষ্ট ক্ষেত্রে প্রয়ােগের জন্য বিভিন্ন। সময়ে বিভিন্ন স্থানে ডেভেলপ করা হয়েছে। হেমন- PROLOG, APL, PL/1, Ada, LISP, LOGO, PILOT, Perl, CSL প্রভৃতি।