Wednesday, 7 June 2017

এখান থেকেই শুরু ( হ্যালো পৃথিবী )

কেমন আছেন সবাই। যারা এই মুহুর্তে সি তে নতুন পা দিয়েছেন বা দিবেন ভাবছেন তাদের জন্য অবশ্যই এটি একটি স্মরণীয় মুহূর্ত।


  আজকে আমরা শিখবো কিভাবে কম্পিউটারকে নির্দেশ দিতে হয় তাই প্রথম ধাপ।
 বিশ্বের বাঘা বাঘা প্রোগ্রামার রা তাদের প্রোগ্রামিং শুরু করেছেন Hello World! দিয়ে।
 তাহলে আজ থেকেই শুরু হউক আপনার প্রোগ্রামার হওয়ার যাত্রা।


 #include <stdio.h>

 
int main( )

 {

     printf("Hello World !");

     return 0; 


আপনার কাছে হয়তো মনে হছে হিজিবিজি কিসব লিখেছি। আপনি যখন উপরের লেখাগুলোর মানে বোঝে যাবেন তখন বোঝতে পারবেন এই হিজিবিজ 
লেখাগুলো প্রোগ্রামের সৌন্দর্য। 
 
আমি কোডগুলা লেখবো কোথায়ঃ 
কোড আপনি আপনার কম্পিউটার এর নোট প্যাড এ লিখেও কম্পাইলার দিয়ে কম্পাইল করতে পারেন। আবার অনলাইনে বহু আই.ডি.ই আছে সেগুলা ব্যবহার করতে পারে।
সব থেকে সহজ পদ্ধতি নিজের কম্পিউটার এ আই.ডি.ই ব্যবহার করা।
আই.ডি.ই নিয়ে বিস্তারিত জানতে শরীফ ভাই এর এই লেখাটি পড়তে পারেন
বর্তমানে বহুল ব্যবহৃত আই.ডি.ই হচ্ছে কোড ব্লকস।  
সরাসরি কোড ব্লকস ডাউনলোড করতে পারবেন  এই লিংক থেকে
ডাউনলোড শেষ হওয়ার পর সাধারণ সফটওয়্যার এর মতো ইনস্টল দিন। 
তারপর কোড ব্লক ওপেন করুন।
কোড ব্লকস সেটআপ করতে কোন সমস্যা হলে 
উপরের প্রোগ্রামটি স্ক্রিনে প্রিন্ট করবে Hello World !
 আসো আবার দেখে নেই কিভাবে প্রোগ্রামটি কাজ করছে? 
#include<stdio.h>
  int main( )
{
   return 0; 

 এটা হলো একটি সি প্রোগ্রামের গঠন বা structure. আপাততো এতটুকু মনে রাখলেই চলবে, আমরা কোড এর দিকে নজর দেই।
 Int main ( ) হলো প্রোগ্রামের মেইন ফাংশন, প্রতিটা সি প্রোগ্রামে একটি এবং শুধুমাত্র একটিই মেইন ফাংশন থাকবে। মেইন ফাংশনের ভিতরে আমরা যে যে স্টেটমেন্ট লিখবো তা কম্পাইল হবে ।
 যেমন উপরের কোড এ আমরা লিখেছি   printf("Hello World !");   তাই আমরা আউটপুট দেখতে পাবো Hello World ! লেখাটি।
 এবার আসা যাক স্টেপ বাই স্টেপ ব্যাখ্যায়ঃ 
#include একে বলা হয় হেডার ফাইল ডিক্লিয়ারেশন, সি তে অনেক হেডার ফাইল আছে ।ধীরে ধীরে আমরা সেগুলার সাথে পরিচিত হবো। 
 #include দিয়ে আমরা একটি হেডার ফাইল আমাদের প্রোগ্রামে যুক্ত করেছি। এর নাম stdio । 
Stdio এর মানে হচ্ছে standard input and output. এর ভিতরেই অনেক গুলো লাইব্রেরি ফাংশন রয়েছে। লাইব্রেরি ফাংশন হচ্ছে আগে থেকে তৈরী করে দেওয়া ফাংশন। যেমন আমরা লিখেছি printf । এটি একটি লাইব্রেরি ফাংশন। এর কাজ হচ্ছে কোন কিছু প্রিন্ট করা বা সহজ ভাষায় আউটপুট দেখানো।
 Stdio এর পর .h দিয়ে বোঝানো হয়েছে এটি একটি হেডার ফাইল।
 Int main() দিয়ে মেইন ফাংশন শুরু করা হয়েছে।
 { }
এই দুইটা ব্রেস বা (সেকন্ড ব্রেকেট) এর ভিতরে যা যা থাকবে সবই মেইন ফাংশন এর অন্তর্ভুক্ত।     printf("Hello World !"); এটা একটা স্টেটমেন্ট।
 সি প্রোগ্রামের প্রতিটি লাইনকে বলা হয় সেটমেন্ট। ইংরেজী লেখার সময় প্রতিটি লাইনের শেষে যেমন আমরা ফুল স্টপ(.) দেই, সেভাবে সি ল্যংগুয়েজে প্রতিটি লাইন শেষে সেমিকোলোন ( ; ) দিতে হয়।
 Printf এর পর একটি প্যান্থেসিস বা (প্রথম বন্ধনী) দিতে হয়। এবং বন্ধনীর ভিতরে ডাবল কোটেশন(" ") দিতে হয়। ডাবল কোটেশনের ভিতরে আমরা যা লিখবো তা সবই আউটপুট দেখাবে।

সি প্রোগ্রামিং শুন্য থেকে শুরু!

 আজকে আমরা সি প্রোগ্রামিং নিয়ে আলোচনা করবো। প্রথমেই প্রশ্ন আসবে প্রোগ্রামিং কি? (এটি কি খায় নাকি মাথায় দে   )
তো চলুন জেনে নেই প্রোগ্রামিং কি??
কম্পিউটার নেহাত একটি যন্ত্র এর চেয়ে বেশী কিছু নয়। কখনো কি ভেবে দেখেছেন সামান্য এই যন্ত্রটি কিভাবে এতসব অসামান্য কাজ অবিরাম করে চলেছে।
হ্যা, উত্তরটা খুবই সাধারণ , কারণ কম্পিউটার নিজে কোন কাজ করে না। তাকে যা নির্দেশ দেওয়া হয় শুধু সে কাজটা ই করে। তো নির্দেশটা কে দেয়? নির্দেশ দেন তোমার আমার মতই একজন মানুষ। যিনি বিশেষ ভাষা ব্যবহার করে কম্পিউটারকে নির্দেশ দেন। ( কম্পিউটার তো আর  মানুষ এর মতো বুঝে না,  তাই কম্পিউটার কে তার বোধগম্য ভাষায় বলে দিতে হয় সে কি কি করবে। এই যে কম্পিউটার কে নির্দেশ দেওয়া হয় একেই বলে প্রোগ্রামিং। যিনি প্রোগ্রাম লেখেন তাকে বলা হয় প্রোগ্রামার।
যারা আরেকটু বিস্তারিত জানতে চান এইখানে দেখুন


এখন প্রশ্ন হলো আমরা A, B  না শিখে C কেন শিখবো ?  
আসুন জেনে নেইঃ
উৎপত্তি
১৯৬০-এর দশকে বেশ কিছু কম্পিউটার প্রোগ্রামিং ভাষা তৈরি করা হয়েছিল। মার্কিন কম্পিউটারবিদ গ্রেস হপার Mathematic, Flowmatic এবং A2 নামে তিনটি প্রোগ্রামিং ভাষা উদ্ভাবন করেন। এরপর জেম্‌স ব্যাকাস তৈরি করেন ForTran। তারও পরে ALGOL, COBOL, Ada ইত্যাদি প্রোগ্রামিং ভাষা উদ্ভাবন করা হয়। মূলত এই ভাষাগুলিই আধুনিক প্রোগ্রামিং ভাষাগুলির পূর্বসূরী। কিন্তু ঐ ভাষাগুলিকে ভিন্ন ভিন্ন কাজে ব্যবহার করা হত। তাই কম্পিউটার বিজ্ঞানীরা এমন একটি প্রোগ্রামিং ভাষার কথা ভাবতে থাকেন যার মাধ্যমে সব ধরনের সফটওয়্যার তৈরি করা সম্ভব হবে। এরই ফলশ্রুতিতে বিজ্ঞানীরা তৈরি করেন ALGOL 60 (Algorithmic Language) এবং এরপর Combined Programming Language (CPL), কিন্তু CPL শেখা এবং ব্যবহার করা ছিল বেশ কঠিন। তাই এটা জনপ্রিয়তা পায়নি।

"C" ভাষাটি তৈরির প্রথম উদ্দেশ্য ছিল ইউনিক্স- অপারেটিং সিস্টেম এর কোড লেখায় এর ব্যবহার, কিন্তু অচিরেই এটি একটি বহুল ব্যবহৃত ভাষায় পরিণত হয়। সি++ ও জাভা সহ পরিবর্তীকালের অনেক প্রোগ্রামিং ভাষার উপর সি'র গভীর প্রভাব পড়েছে। সি এর সবচেয়ে আকর্ষণীয় দিক হচ্ছে এর বহনযোগ্যতা। সি দিয়ে রচিত প্রোগ্রাম যেকোন অপাররেটিং সিস্টেমের কম্পিউটারে চালানো যায়। ৭০ এবং ৮০ দশকের দিকে সি এর জনপ্রিয়তা বাড়ার সাথে সাথে এর অনেকগুলো ভার্সন তৈরি হয়। ১৯৮৩ সালে আমেরিকান মাননিয়ন্ত্রক সংস্থা সি এর ১টি আদর্শ ভার্সন তৈরির জন্য কমিটি গঠন করে। দীর্ঘ ৬ বছর পরে ১৯৮৯ সালে সেই আদর্শ সি ভাষাটি তৈরি হয়, যা আমেরিকান মাননিয়ন্ত্রক সংস্থা সি (আনসি সি (ANSI C)) নামে পরিচিত। পরবর্তিতে আন্তর্জাতিক মাননিয়ন্ত্রক সংস্থা ১৯৯০ সালে সি এর এই আদর্শ ভার্সনটি গ্রহণ করে, যা সি৯০ নামে পরিচিত। মুলত "সি৮৯" এবং "সি৯০" একই ভাষা। যুগের প্রয়োজনে আন্তর্জাতিক মাননিয়ন্ত্রক সংস্থা ১৯৯৫ সালে এই সংস্করণকে বর্ধিত করে এবং পরবর্তিতে ১৯৯৯ সালে সম্পূর্ণ নতুন একটি সংস্করণ প্রকাশ করে যা সি৯৯ নামে পরিচিত। সর্বশেষ ২০১১ সালে সি প্রোগ্রামিং ল্যাঙ্গুয়েজের নবীনতম সংস্করণ সি১১ প্রকাশিত হয়।
ক্যামব্রিজ বিশ্ববিদ্যালয় এর মার্টিন রিচার্ড CPL কে ভিত্তি করে ১৯৬৭ সালে তৈরি করেন Basic Combined Programming Language (BCPL) কিন্তু এটি ছিল মূলত Less Powerful to Specific এবং টাইপবিহীন একটি প্রোগ্রামিং ভাষা।
এ সময়েই যুক্তরাষ্ট্রের বেল গবেষণাগারে বিজ্ঞানী টমসন তৈরি করেন বি (B) নামক একটি প্রোগ্রামিং ভাষা; এটি ছিল পূর্বের BCPL-এর একটি উন্নত সংস্করণ। ডেনিস রিচি পরবর্তীতে B এবং BCPL অনুসরণ করেন এবং নিজে থেকে আরো কিছু কৌশল ব্যবহার করে তৈরি করেন "সি" (C)। মূলত B-এর সীমাবদ্ধতা গুলো দূর করার উদ্দেশ্যেই "সি" এর উৎপত্তি।
(সুত্র উইকিপেডিয়া)