প্রোগ্রামিং প্যারাডাইম
প্রোগ্রামিং প্যারাডাইম বা প্রোগ্রামিং ধারা হল প্রোগ্রামিং ভাষাসমূহের বৈশিষ্ট্য-ভিত্তিক প্রকারভেদ। কিছু প্যারাডাইম প্রোগ্রামিং ভাষার এক্সিকিউশনকালীন বৈশিষ্ট্যে গুরুত্ব দেয়, এবং কিছু প্যারাডাইম কোডের নির্মাণরীতিকে সর্বাগ্রে রাখে। প্রচলিত প্রধান প্যারাডাইমসমূহ: ইম্পারেটিভ প্রোগ্রামিং - অভীষ্ট ফলাফল পাওয়ার জন্য কম্পিউটারের আভ্যন্তরীণ অবস্থা পরিবর্তনের অনুক্রম বর্ণনা করা হয়। প্রসিডিউরাল প্রোগ্রামিং - প্রোগ্রামিং নির্দেশ তথা ইনস্ট্রাকশনসমূহ এক-একটি পদ্ধতিগত গুচ্ছে সংকলিত থাকে। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং - ইনস্ট্রাকশনসমূহ তাদের সংশ্লিষ্ট তথ্যের সঙ্গে সংকলিত থাকে। ডিক্লারেটিভ প্রোগ্রামিং - সমাধানের প্রক্রিয়ার পরিবর্তে অভীষ্ট ফলাফলের বৈশিষ্ট্যসমূহ প্রোগ্রামে বর্ণিত থাকে। ফাংশনাল প্রোগ্রামিং - কিছু ফাংশনের সমষ্টিগত আউটপুট হিসেবে কাঙ্ক্ষিত ফলাফলটি বর্ণিত থাকে। লজিক প্রোগ্রামিং - তথ্যনির্ভর এবং যুক্তিভিত্তিক বিধির সমন্বিত পদ্ধতির সাপেক্ষে কাঙ্ক্ষিত সমাধানের যৌক্তিক বর্ণনা করা থাকে। ম্যাথমেটিকাল প্রোগ্রামিং - কাঙ্ক্ষিত ফলাফলটি একটি অপটিমাইজেশন সমস্যার সমাধান হিসেবে বিবৃত করা হয়। প্রতিকী প্রোগ্রামিং কৌশল (যেমন প্রতিফলন, যা প্রোগ্রামের নিজেকে নির্দেশ করার সুযোগ দেয়) এবং অন্যান্য কিছু প্রচলিত প্রোগ্রামিং রীতিকেও একেক প্রকারের প্রোগ্রামিং প্যারাডাইম হিসেবে গণ্য করা যায়। তবে এ ধরনের কৌশলসমূহ অন্য সকল প্রধান প্যারাডাইমের অংশ হিসেবেই সাধারণত ব্যবহার করা হয়, তাই এদেরকে স্বতন্ত্র গুরুত্ববাহী প্যারাডাইম হিসেবে শ্রেণীভুক্ত করা হয় না। ইম্পারেটিভ বা আজ্ঞাবাহী প্রোগ্রামিং ধারার দুটি মূল বৈশিষ্ট্য রয়েছে। প্রথমত, এরা প্রোগ্রামিং ধাপগুলো সম্পাদনের ক্রম (ক্রম নিয়ন্ত্রক প্রণালীসহ) বর্ণনা করে। এবং দ্বিতীয়ত, পার্শ্বপ্রতিক্রিয়া ঘটার সুযোগ দেয়, অর্থাৎ কোডের এক অংশে প্রোগ্রামের আভ্যন্তরীণ অবস্থা বা স্টেট পরিবর্তন করতে পারে এবং পরে ভিন্ন এক অংশ থেকে ওই পরিবর্তিত স্টেট পাঠ করা যায়। কোডের বিভিন্ন অংশের মধ্যে তথ্যগত যোগাযোগ স্পষ্টভাবে বিভক্ত নয়। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ধারায় প্রোগ্রামের ইনস্ট্রাকশনসমূহ তথ্য এবং কোডের সমন্বিত রূপ অবজেক্ট-এ বিন্যস্ত থাকে, এবং কোন অবজেক্টের স্টেট একমাত্র সংশ্লিষ্ট কোড দ্বারা পরিবর্তনযোগ্য হয়। বেশিরভাগ অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা ইম্পারেটিভ প্রোগ্রামিং ধারারই অন্তর্গত। অন্যদিকে, ডিক্লারেটিভ বা বর্ণনামূলক প্রোগ্রামিং প্যারাডাইমে প্রোগ্রামিং ধাপগুলো সম্পাদনের ক্রম বর্ণনা করা হয় না। এর পরিবর্তে ব্যবহারযোগ্য কিছু প্রোগ্রামিং প্রণালী (বা অপারেশন) সরবরাহ করা হয়, এবং তারা কেমন পরিবেশে এক্সিকিউট হতে পারে তা বর্ণিত হয়। প্রোগ্রামিং ভাষাটির এক্সিকিউশন মডেল নির্ণয় করে কোন কোন অপারেশন এক্সিকিউটযোগ্য এবং তার সাপেক্ষে প্রোগ্রামের ধাপসমূহের ক্রম নির্ধারণ করে।