04 June, 2012
অনেকদিন ধরেই ইচ্ছা ছিল পাইথন নিয়ে লিখব। এটা আমার খুব পছন্দের একটি প্রোগ্রামিং ভাষা। প্রথেমই একটা মজার তথ্য দেই। আমরা অনেকেই মনে করি পাইথন মানে অজগর। আসলে পাইথন হচ্ছে ময়াল সাপ। এই ময়াল সাপ যে কি জিনিস তা অবশ্য আমি জানি না। তবে অজগর হচ্ছে Boa. আসলে একেবারে পাইথন নিয়ে লেখা সম্ভব না, আমি বিভিন্ন পর্বে ভাগ ভাগ করে এটা নিয়ে লিখব। পাইথন আমার পছন্দের, এর পেছনে অনেকগুলো কারন আছে। প্রথমেই হচ্ছে পাইথন একটা ওপেন সোর্স প্রজেক্ট। এটা প্লাটফরম ইন্ডিপেন্ডেন্ট আর পোর্টেবল, এক অপারেটিং সিস্টেমে লেখা কোড কোন ধরনের পরিবর্তন ছাড়াই যে কোন অপারেটিং সিস্টেমে চলতে পারে। এটা সোর্স হতে কম্পাইল ছাড়াই সরাসরি রান করতে পারে, পিএইচপি, জাভাস্ক্রীপ্ট বা অন্যান্য স্ক্রীপ্টিং ল্যাংগুয়েজের মত। এটা অনেক সহজ, অনেকটাই ন্যাচারাল ল্যাংগুয়েজের সাথে সামঞ্জস্যপূর্ণ। এটা অবজেক্ট অরিয়েন্টেড তবে জাভার মত স্ট্রীক্টলি অবজেক্টে অরিয়েন্টেড না। অর্থাৎ প্রসিডিউরাল ল্যাংগুয়েজের মতও কোড করা যায়। এরকম আরো বহু কারন আছে।
এখন কয়েকটা প্রশ্ন নিশ্চই মনে এসে দাড়িয়েছে। ন্যাচারাল ল্যাংগুয়েজ কি, অবজেক্ট অরিয়েন্টেড ল্যাংগুয়েজ কি, প্রসিডিউরাল ল্যাংগুয়েজ কি? একটা একটা করে উত্তর দেয়ার চেষ্টা করি।
ন্যাচারাল ল্যাংগুয়েজ ও ফরমাল ল্যাংগুয়েজঃ ন্যাচারাল ল্যাংগুয়েজ হচ্ছে আমরা মানুষজন যে ভাষায় কথা বলি, যেমন বাংলা, ইংরেজি, আরবি ইত্যাদি। আর ফরমাল ল্যাংগুয়েজ হচ্ছে আমাদেরই তৈরী বিশেষ ভাষা যা বিভিন্ন ধরনের কাজের জন্য তৈরী করা হয়েছে। যেমন- গাণিতিক বিভিন্ন ধরনের নোটেশন ব্যবহার করে আমরা একটা স্টেটমেন্ট তৈরী করি, বিভিন্ন রাসায়নিক বিক্রিয়া বোঝাতে আমরা বিভিন্ন ধরনের রাসায়নিক সংকেত ব্যবহার করি ইত্যাদি। কম্পিউটারের প্রোগ্রামিং ভাষাও এই ধরনেরই একটা ফরমাল ল্যাংগুয়েজ।
প্রসিডিউরাল ও অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ল্যাংগুয়েজঃ ধরুন একটা প্রোগ্রাম ১০ লাইনের। যদি প্রোগ্রামের এক্সিকিউশন এভাবে হয় যে, প্রথমে ১ তারপর ২ এভাবে বাকি লাইনগুলো কাজ করে তাহলে সেটা হচ্ছে প্রসিডিউরাল ল্যাংগুয়েজ। আর অবজেক্ট অরিয়েন্টেড ল্যাংগুয়েজ হচ্ছে যেখানে প্রতিটা প্রোগ্রাম অবজেক্ট ধরে ধরে কাজ করে। এ ব্যাপারে পরে আরো বিস্তারিত আলাপ করব।
আজ এই পর্যন্তই। পরবর্তীতে বাকিটা আলোচনা করব।