Sunday, March 29, 2015

সি প্রোগ্রামিংঃ পর্ব ০২ >> শুরুর আগে (০২)

প্রোগ্রামি-এর শুরুঃ         

        প্রোগ্রামিং ল্যাংগুয়েজ গুলো কি কি এবং কেন ?


পৃথিবীতে অনেক অনেক (অনেক অনেক বলতে Infinite নয় আবার ) ।  ১০০ ( শিখে শেষ করতে পারলে ভাল ই হতো তাই অনেক বলেছি । কি বলেন? :P ) এর বেশি প্রোগ্রামিং ল্যাংঙ্গুয়েজ আছে পৃথিবীতে । বিভিন্ন ল্যাংগুয়েজ বিভিন্ন কাজে ব্যাবহার করা হয় (There Are Limitations In Every Programming Languages, Different languages Are Used For Different Tasks. ) ।

নিচের বিষয়গুলোর মধ্যে আমরা শুধু প্রথম দুটি নিয়ে মাথা ঘামাব । এবং তিন নাম্বারটা সম্বন্ধে শুধু জেনে রাখব । সব একসাথে জানতে গেলে তো মাথা Hang করবে । তাই ধীরে ধীরে সব জানবো ।


  1. WEB Languages
  2. Software Languages
  3. The Different Generations of Languages
  4. Procedure Oriented Programming
  5. Object Oriented Programming (OOP)

WEB Languages:

HTML, CSS, PHP, JAVA, JS (Java Script) etc ...

Software Languages:

C, C++, Assembly, Java, Visual Basic, FORTRAN, Basic, ruby, pearl, python etc.

The Different Generations of Languages:

There Are 5 Types Of Generations of Languages. 
  • 1GL
  • 2GL,
  • 3GL,
  • 4GL & 
  • 5GL.

GL For Generations Of Languages .
1st Generation: 1st Generation Of Language হল ১৯৬০'স COMPUTER প্রোগ্রামিং ল্যাঙ্গুয়েজ :P । Machine Language. ভাই কতক্ষন ধইরা দেখতাছি প্রোগ্রামিং এর ভিতর Machine, Machine করতেছেন । এটা কি আসলে? Machine Language Is A Programming Language Which Works With Only Zero (0) & One (1) (The Binary Number System ) . এর মানে হল, ০ এবং ১ দিয়ে সব লিখতে হবে । আর মাথা না ঘামানোই ভাল । ইহা মহা জটিল ।

2nd Generation: Assembly Language. Assembly মূলত Machine Language এর পরের ভার্সন ।

3rd Generation: এখন যেই প্রোগ্রামিং ল্যাংগুয়েজগুলো আছে ওগুলোকে 3rd Generation Of Language বলা হয় । C, C++, C#, Ada, Pascal, FORTRAN, COBOL, BASIC, Java,  etc...

আরও জানতে চাইলে (Click On The Link):
http://en.wikipedia.org/wiki/Programming_language_generations 

আচ্ছা এবার আমরা থামি কেননা, এরপর গেলে মাথা গরম করে ট্যাবটা কেটে দিতে পারেন । তাহলে আপনার আর শেখা হবে না :) । বাকি যে দুটো আছে সেগুলো নিয়ে পরে আলচনা করবো । আরেকটু লিখব :P ।

পৃথিবীতে যত ধরনের ল্যাংগুয়েজ আছে তাদের কে আবার তিনটি লেভেল এ ভাগ করা যায় । 
  • High Level
  • Mid Level
  • Low Level
High Level ল্যাংগুয়েজ গুলো হল Ada, FORTRAN, Pascal, Basic, Cobol, python, JAVA, C++
Mid Level ল্যাঙ্গুয়েজগুলো হল C, Macro Assembler, JAVA 

Low Level ল্যাঙ্গুয়েজগুলো হল Machine Language & Assembly


High Level মানে যে খুব কঠিন, ব্যাপারটা এরকম নয় । Computer Programming এ হাই লেভেল ল্যাঙ্গুয়েজ বলতে User Friendly অর্থাৎ User যাতে বুঝতে পারে এবং খুব তাড়াতাড়ি একটা প্রোগ্রাম যাতে লিখা যায় । মূলত High Level ল্যাঙ্গুয়েজ বলতে উন্নত মানের ল্যাঙ্গুয়েজ বুঝানো হয় । Mid Level ল্যাঙ্গুয়েজ বুঝতেই পারছেন উন্নতও না অনুন্নত ও না মাঝামাঝি :P । Low Level মানে হচ্ছে অনুন্নত ল্যাঙ্গুয়েজ । Low Level ল্যাঙ্গুয়েজ দেখে, অবহেলা করবেন না ( Low Level Languages Are The Core Programming In Computer Science  ) অর্থাৎ লো লেভেল ল্যাঙ্গুয়েজ Computer Science এর কেন্দ্রস্থল। 
            
            আসুন আরেকটু ভালভাবে বোঝার চেষ্টা করি । খেয়াল করুন Machine Language এ যদি প্রোগ্রামিং করতে যান তাহলে আপনাকে 0 & 1 বা বাইনারি নাম্বার সিস্টেম নিয়ে প্রোগ্রাম লিখতে হবে (Machine Language কিন্তু Low Level Language) । আর আপনি যদি High & Mid Level ল্যাঙ্গুয়েজ ব্যবহার করেন তাহলে সেটা কিন্তু আপনার জন্য বুঝতে সহজ হবে তাই না । Low Level Language মূলত OS(Operating System) & Hardware Based প্রোগ্রামিং বা Firmware (সহজ ভাষায় Firmware হচ্ছে সফটওয়্যার যেটাকে ROM (Read-Only Memory) তে ইন্সটল করা হয় অথবা বলতে পারেন ছোট্ট একটা চিপ এর ভিতর Software Install করে দেয়া হয় ) For Micro Controller । Mid Level Language হচ্ছে সি আরও কিছু রয়েছে । যেহেতু আমরা সি এর ব্যাপারে জানব এখান থেকে তাই আমরা সি দিয়ে আলচনা করব Mid Level Language এর কাজ কি । আর হাই লেভেল ল্যাঙ্গুয়েজগুলোর কিছু কিছু General Purpose, কিছু কিছু Robot বা AI (Artificial Intelligence) , কিছু কিছু  Application প্রোগ্রামিং এর জন্য এবং কিছু কিছু গেম তৈরির জন্য ব্যাবহার করা হয় ...... ইত্যাদি । Mid Level ল্যাঙ্গুয়েজ দিয়েও কিন্তু এগুলা করা যায় ।
ভাই থামেন মাথা গরম কইরা দিছেন । এটাই বলবেন স্বাভাবিক, আসলে High, Mid & Low Level ল্যাঙ্গুয়েজ কিছুই না এগুলো শুধু Terms ।  আমি যদি High, Mid and Low Level গুলো না লিখতাম তাহলে আপনার বুঝতে আরেকটু কষ্ট হত এবং আমার লিখতে । 
এখন আসি ভাই এত্ত এত্ত প্রোগ্রামিং ল্যাংগুয়েজ আছে, কেন সি প্রোগ্রামিং ল্যাঙ্গুয়েজ ই শিখব, এর চেয়েও তো সহজ ল্যাঙ্গুয়েজ আছে তাই না ?
There Is A Gnome (প্রবাদ) "C Is The Mother Of All Languages" । এই কথাটা হয়ত অনেক কিছু ব্যাখ্যা করে কিন্তু Efficient (সুবিধাজনক) না । C Is A General Purpose Language । সি দিয়ে অনেক কিছুই করা যায় । চলুন দেখি কি কি করা যায় ।


  • Operating System
  • Assemblers
  • Compilers
  • Editors
  • Interpreters
  • Data-Base Program
  • Virus & Anti-Virus &
  • 3D Gaming, 2D Gaming ইত্যাদি ।

অনেক Higher Level  ল্যাঙ্গুয়েজ আছে যা দিয়ে খুব সহজে প্রোগ্রাম লিখে ফেলা যায় বা Softwares, Applications Or Games ডেভেলপ করা যায় । But As I Said "C Is The Mother Of All Languages" . যখন High Level ল্যাঙ্গুয়েজ শিখবে তখন সব কিছু অনেকটা সহজ হবে কিন্তু প্রোগ্রামটা সঠিক কিভাবে কাজ করল বা ভিতরের কাজগুলো আর জানা হবে না । অর্থাৎ Compiling process, Hardware Process and etc etc একজন সি প্রোগ্রামার এর কাছে বাকি সব ল্যাঙ্গুয়েজ শেখা সহজ । সি এর প্রাধান্য সব জায়গায় রয়েছে । কখন প্রথমে বা কখন দুই এক ঘর পরে কিন্তু প্রাধান্য রয়েছে :D । সি শেখার অনলাইনে অনেক অনেক Resource (Organizations, Forums & Websites) বা তথ্য(Data) আছে । (C এর হাজার হাজার Source Code রয়েছে, যেহেতু সি প্রায় ৩০ বছর ধরে রয়েছে) ভাই এতটুকু কি গ্রহনযোগ্য না সি প্রোগ্রামিং শিখার জন্য ? কিন্তু কথা আছে সি তে কাজ যেমন সহজ তেমন ই কঠিন । আমি যতটুকু পারব সি কে সহজ করে তুলব আপনাদের সামনে । ভুলত্রুটি ক্ষমার চোখে দেখবেন । আর সহ্য না হলে Comment করে দিবেন & Feel free to talk with us ।
 
To Read The Next Part Of C Programming Language Click On The Link Below:   

সি প্রোগ্রামিংঃ পর্ব ০৩ >>সি ল্যাঙ্গুয়েজ উপাখ্যান

2 comments: