know yourselves. information, computer, 7 wonders, various.

Wednesday, June 18, 2014

Various Programming Languages : C++ Part 2


বিভিন্ন ধরনের প্রোগ্রামিং ল্যাংগুয়েজ
অ্যাসেম্বলী ল্যাংগুয়েজের বিভিন্ন সমস্যা কাটিয়ে সাধারন ব্যবহারকারীদের কথা চিন্তা করে প্রোগ্রামিং ল্যাংগুয়েজ ডেভেলপ এর কথা ভাষা হয় এবং একদিন সেটি সম্ভবও হয়। ইদানিং আমাদের সামনে প্রচুর প্রোগ্রামিং ল্যাংগুয়েজ বিদ্যমান। সব প্রোগ্রামিং ল্যাংগুয়েজের কিছু ব্যাপারে অবশ্যই মিল আছে। কিন্তু বিভিন্ন ধরনের কাজের জন্য বিভিন্ন রকম ডেটা প্রয়োজন হয়। সুতরাং কাজের উপর ভিত্তি করে বিভিন্ন সময়ে বিভিন্ন ধরনের ল্যাংগুয়েজ তৈরী করা হয়।
FORTRAN:- ১৯৫৭ সালে IBM কোম্পানীর ডঃ হেমস ব্যাকার এটি ডেভেলপ করেন। এর পুরোনাম হচ্ছে FORmula TRANslation. সাধারনত বৈজ্ঞানিক এবং ইঞ্জিনিয়ারিং কাজে বিভিন্ন ধরনের গানিতিক সূত্রের ব্যবহারের জন্য এটির প্রয়োজন হয়।
COBOL:- ১৯৬০ সালে COBOL নামে একটি ল্যাংগুয়েজ ডেভেলপ করা হয়। এর পুরা নাম হচ্ছে COmmon Business Oriented Language (CO_B_O_L) এটি দিয়ে সাধারনত ব্যবসায়িক সফ্টওয়ার ডেভেলপ করা হতো।
BASIC:- নির্দিষ্ট কোন কাজের গন্ডির বাইরে একটি প্রোগ্রামিং ল্যাংগুয়েজ দ্বারা মোটামুটি সব ধরনের কাজ করা যায়, এই উদ্দেশ্য নিয়েই BASIC এবং Pascal এই ল্যাংগুয়েজ দুটি তৈরী করা হয়। BASIC অর্থ হলো Beginers All Purpose Symbolic Instruction Code (B-A-S-I-C). ১৯৬০ সালে যুক্তরাষ্ট্রের ডাট মাইথ কলেজে সর্বপ্রথম এটির ব্যবহার করা হয়।
Pascal:- ১৯৭০ সালে সুইজারল্যান্ডের প্রফেসর নিকলাস হুইরথ Pascal নামে একটি প্রোগ্রামিং ল্যাংগুয়েজ ডেভেলপ করেন। এটি দিয়ে সবধরনের সফ্টওয়ার ডেভেলপ করা যায়। Pascal কে বলা হয় মডুলার (Modular) প্রোগ্রামিং ল্যাংগুয়েজ অর্থাৎ এতে প্রত্যেকটি বড় বড় প্রোগ্রামকে কয়েকটি সাব-প্রোগ্রামে ভাগ করা যায়। Pascal প্রথম মডুলার প্রোগ্রামিং হওয়ার জন্য বৈজ্ঞানিক, গানিতিক এবং ব্যবসায়িক ইত্যাদি কাজের ক্ষেত্রে কিছু সীমাবদ্দতা আছে। পরবর্তীতে C প্রোগ্রাম (১৯৭২ সালে) ডেভেলপ করা হয় যা দিয়ে বৈজ্ঞানিক, গানিতিক বা ব্যবসায়িক সব ধরনের সমস্যার সমাধান করা যায়।
C- প্রোগ্রামিং ল্যাংগুয়েজ
১৯৭২ সালে AT & T নামের কোম্পানির–Bell Laboratory-তে এটি ডেভেলপ করেন ডেনিস রিচি। তিনি DEC PDP-ΙΙ মেশিনে এবং UNIX অপারেটিং সিস্টেমে এটি তৈরী করেন। ১৯৭৮ সালে ডেনিস রিচির লেখা The C Programming language. বইটি প্রকাশিত হয় এবং মাইক্রো কম্পিউটারের জনপ্রিয়তা বাড়ার সাথে সাথে C এর ব্যাপক ব্যবহার শুরু হয়। যদিও প্রথমে UNIX অপারেটিং সিষ্টেম ব্যবহার করে C লেখা হয় কিন্তু পরবর্তীতে আবার C ব্যবহার করে UNIX কে নতুন ভাবে লেখা হয় এবং একাধিক অপারেটিং সিষ্টেমে C চলতে পারে। C নিদির্ষ্ট কোন কাজের জন্য তৈরী হয়নি, এটি এমন এক ধরনের প্রোগ্রামিং ল্যাংগুয়েজ, যা ব্যবহার করে যে কোন ধরনের সমস্যার সমাধান করা যায়। বর্তমানে একাধিক নতুন প্রোগ্রামিং ল্যাংগুয়েজের প্রচলন আছে তবুও C এর জনপ্রিয়তা ক্রমশ বাড়ছেই। বর্তমান বিশ্বে প্রচলিত 90% এরও অধীক কম্পাইলার সি ব্যবহার করে তৈরী করা হয়েছে।
C-এর ইতিহাস
COBOL ব্যবহার করা হতো ব্যবসায়িক সফ্টওয়ার তৈরীর উদ্দেশ্যে অপরদিকে FORTRAN-ব্যবহার করা হতো বৈজ্ঞানিক ও ইঞ্জিনিয়ারিং এর ক্ষেত্রে ব্যবহৃত গানিতিক সমস্যা সমাধানের সফ্টওয়ার তৈরীর উদ্দেশ্যে। তখন থেকেই প্রয়োজন হয় এমন একটি প্রোগ্রামিং ল্যাংগুয়েজ, যা দ্বারা সব ধরনের সমস্যার সমাধান দেওয়া যাবে অর্থাৎ কোন নিদির্ষ্ট কাজের জন্য না হয়ে সব ধরনের কাজ করা যাবে এমন একটি সফ্টওয়ার প্রয়োজন হয়ে পরে। ১৯৬০ সালে এই প্রয়োজন থেকেই তৈরী করা হয় ALGOL (Algorithmic Language) তাতেও কাঙ্খিত লক্ষ্য অর্জন সম্ভব হয়নি। ১৯৬৩ সালে ক্যামব্রীজ ইউনিভার্সিটিতে তৈরী করা হয় CPL (Combined Programming Language)। এটি ব্যবহারের ক্ষেত্রেও জটিলতা থেকে যায়। ১৯৬৭ সালে আবারও ক্যামব্রিজ ইউনিভার্সিটির মার্টিন রিচার্ড তৈরী করেন BCPL (Basic Combined Programming Language)। ১৯৭০ সালে AT & Tর Bell laboratory-র কেন থম্পসন তৈরী করেন B. এর পরপর ১৯৭২ সালে ডেনিস রিচি BCPL ও B এবং সংস্কার করে C তৈরী করেন। অনেক দিন ধরে সাধারনত একাডেমিক কাজে এটি ব্যবহৃত হয় এবং উত্তর উত্তর এর বিভিন্ন কম্পাইলার বাজারে আসে, বাণিজ্যিক ব্যবহারের জন্য এবং ধীরে ধীরে জনপ্রিয়তা ও ব্যবহারও বৃদ্ধি পায়।
বিভিন্ন ধরনের C
C এর ব্যবহার উপযোগী এবং জনপ্রিয়তার কারনে বিভিন্ন প্রতিষ্ঠান তাদের নিজস্ব C ল্যাংগুয়েজ তৈরী করতে শুরু করে। এক্ষেত্রে অবশ্যই বিভিন্ন ধরনের পার্থক্য তৈরী হয়, এই সমস্যা সমাধানের জন্য ১৯৮০ সালে ANSI (American National Standards Institute) কতৃক C এর একটি আদর্শ মান নির্ধারন করা হয়, অবশ্য এই Standard পূর্ণতা পায় ১৯৮৮ সালে বাজারে প্রচলিত অন্যান্য Compiler যেমন বোরল্যান্ড কোম্পানির Turbo C এবং মাইক্রোসফ্ট এর Borland C ইত্যাদি। কিছু পার্থক্য ছাড়া বর্তমানের সব C কম্পাইলার ANSI Standard অনুযায়ী তৈরী করা হয়। সামান্য কিছু পার্থক্য ছাড়া এক ভার্সনে লিখিত সি/সি ++ প্রোগ্রাম অন্য ভার্সনে চালনা করা যায়। যেহেতু সি ++ কম্পাইলার সি এর ফাইলকে চালাতে পারে তাই বর্তমানে অধিকাংশ কম্পাইলার হচ্ছে সি ++ কম্পাইলার।
C–এর অনন্য কিছু বৈশিষ্ট্যঃ
1) C-তে বড় একটি প্রোগ্রামকে ছোট ছোট module বা Function-এ ভাগ করে লেখা সম্ভব। আর প্রতিটি অংশের নাম Module বা Function. এই কারনে C কে বলা হয় Structured language. C-তে Loop ব্যবহার করা হয় যেমনঃ While, do-while, for ইত্যাদি। অপর দিকে Unstructured language–এ goto বা Jump কমান্ড ব্যবহার করা হয়। ফলে প্রোগ্রাম তার স্বাভাবিক কার্যধারা ব্যাহৃত হওয়ার সম্ভাবনা থাকে। FORTRAN, COBOL, BASIC ইত্যাদিকে বলা হয় Unstructured language এবং Pascal, C, Ada, Modula-2, Java, C++ ইত্যাদিকে বলা হয় Structured language. তবে সি ++ এর মত সি তে কোন Function বা Procedure এর মধ্যে আবার কোন Function বা Procedure লেখা যায় না। যেগুলিতে এগুলি করা যায় তাকে বলে Block Structured ল্যাংগুয়েজ। কাজেই সি Structured ল্যাংগুয়েজ হলেও Block Structured ল্যাংগুয়েজ নহে।
2) সি এর আর একটি বৈশিষ্ট্য হলো এটি general purpose language. যেমন COBOL বা FORTAN দিয়ে নির্দিষ্ট কিছু ধরনের কাজ করা যায়। এক্ষেত্রে সি দিয়ে যে কোন ধরনের সমস্যার সমাধান করা যায়। সুতরাং সি হচ্ছে একটি general purpose language.
3) সি হচ্ছে একটি Portable language কারন যে কোন এক কম্পিউটারের তৈরী সি প্রোগ্রাম অন্য কোন কোম্পানীর তৈরী কম্পিউটারে কম্পাইল এবং রান করানো যায়। অর্থাৎ এক OS-এ লেখা অন্য OS দিয়ে চালানো সম্ভব। যেমন DOS দিয়ে লেখা C প্রোগ্রাম Windows দিয়ে চালানো সম্ভব।
4) বিবিধ সুবিধার কারনে System Programming-তে একে ব্যবহার করা হয়ে আসছে বলে একে System Programming ল্যাংগুয়েজও বলা হয়। কম্পিউটার অপারেটিং সিষ্টেমের একটি অংশের গঠনই হচ্ছে System Program. যেমন নীচের যে কোন ধরনের প্রোগ্রামকেই System Program বলা যায় এবং এর সবগুলির C দ্বারা তৈরী করা সম্ভব।
  • Operating Systems
  • Interpreters
  • Editors
  • Compilers
  • File Utiliters
  • Performance enhancer
  • Real-time executives
অবশ্য সি ++ এ একই ধরনের বৈশিষ্ট্যগুলো অক্ষুন্ন রাখে।

প্রোগ্রামিং ল্যাংগুয়েজের প্রকারভেদ
সমস্ত প্রোগ্রামিং ল্যাংগুয়েজকে ২টি ভাগে ভাগ করা যায়। যেমনঃ
clip_image002
Highest Level : এই প্রোগ্রামিং ল্যাংগুয়েজ গুলো সহজে বোধগম্য এবং সাধারনের জন্য ব্যবহার সহজ। এই ল্যাংগুয়েজে দক্ষতা অর্জনের জন্য মেশিন বিশেষজ্ঞ হওয়ার দরকার পরে না। যেমন - BASIC, PASCAL, COBOL ইত্যাদি।
Lowest Level : এ ধরনের প্রোগ্রামিং ল্যাংগুয়েজ গুলো ব্যবহারের জন্য মেশিনের গাঠনিক দিকে এক ধরনের বিশেষজ্ঞ হওয়ার প্রয়োজন পরে এবং এতে প্রোগ্রাম লেখার জন্য বাইনারী পদ্ধতি অবলম্বন করতে হয়। যেমনঃ Macro-Assembler, Assembler ইত্যাদি।
Middle Level : সি কে বলা হয় Middle Level ল্যাংগুয়েজ। এর অর্থ এই না যে সে কম ক্ষমতা সম্পন্ন, ব্যবহার জটিল এবং হাইয়েষ্ট লেভেল ল্যাংগুয়েজের তুলনায় কম উন্নত। হাইয়েষ্ট লেভেল ল্যাংগুয়েজের ভাল ভাল সমস্ত সুযোগ সুবিধা অটুট রেখে লোয়েষ্ট লেভেল ল্যাংগুয়েজের সাথে এর সমন্বয় করা সম্ভব। অথাৎর্ Assembler ল্যাংগুয়েজের মত Bit, Byte এবং Memory address-নিয়ে কাজ করার সাথে সাথে, হাইয়েষ্ট লেভেল ল্যাংগুয়েজের কমন ডাটা টাইপ যেমন Integer, Character and Real ইত্যাদি। যদিও সি তে বিল্ট-ইন বেসিক ৫টি ডাটা টাইপ বিদ্যমান। এমনকি সি তে এক ডাটা টাইপ থেকে অন্য ডাটা টাইপ কনভারশন সম্ভব। বিভিন্ন লেভেলের ল্যাংগুয়েজ যেমনঃ
Highest Middle Lowest
Ada
Modula -2
Pascal
COBOL
FORTRAN
BASIC




Java
C++
C
FORTH


Macro-Assembler
Assembler








মেমোরী
কম্পিউটারকে প্রদানকৃত সমস্ত ইনফরমেশন মেমোরীতে জমা হয় এবং এটি ’0’ এবং ’1’ এর সমান সমান ক্ষুদ্র ক্ষুদ্র অংশে বিভক্ত। যে ক্ষুদ্র যন্ত্রাংশটি কম্পিউটারের মেমোরীর কাজ করে তার নাম RAM(বা Random Access Memory) মনে করুন কম্পিউটারের পাউয়ার অফ আছে এক্ষেত্রে RAM সর্ম্পূন ফাঁকা থাকে আবার কম্পিউটারের পাউয়ার সুইচ অন করলে প্রথমে মেমরীতে বা RAM-এ সিষ্টেম লোড হয় এবং সেখান থেকেই কম্পিউটার পরিচালিত হয়। কাজেই মেমরী হচ্ছে এক ধরনের আধার, যেখানে সমস্ত ইনফরমেশন (ডাটা এবং ইন্সট্রাকশন) জমা থাকে।
Virus gard TC.
MS Word Audio
clip_image003OS

128 M. B. Memory
নিচে Ram এর অবস্থান অনুযায়ী NOVA লেখার অবস্থান দেখানো হলোঃ
7 6 5 4 3 2 1 0
0681
N

7 6 5 4 3 2 1 0
0682
0

7 6 5 4 3 2 1 0
0683
V

7 6 5 4 3 2 1 0
0 1 0 0 0 0 0 1
0684
A

clip_image005