پارادایم برنامه‌نویسی

پارادایم‌های برنامه‌نویسی ، روش‌های دسته‌بندی زبان‌های برنامه‌نویسی براساس ویژگی‌هایشان است. زبان‌ها را می‌توان به چندین پارادایم دسته‌بندی نمود.

دغدغه اصلی برخی از پارادایم‌ها عمدتاً مربوط به پیامدهای مدل اجرایی زبان است، همچون این که آیا اثرات جانبی مجاز باشند یا آیا دنباله ای از عملیات توسط مدل اجرایی تعریف شده‌است یا خیر. پارادایم‌های دیگر عمدتاً با راه‌های سازماندهی کد چون دسته‌بندی یک کد به واحدهای مختلف و تغییرات کد بر روی هر کدام از این واحدها می‌پردازند. باز پارادایم‌های دیگری نیز وجود دارند که عمدتاً دغدغه‌شان سبک، نحو و گرامر زبان هاست.

پارادایم‌های برنامه‌نویسی رایج شامل این مواردند:
 دستوری که در آن برنامه‌نویس به ماشین دستور می‌دهد که چگونه حالت خود را تغییر دهد،
برنامه نویسی پردازش موازی
 رویه‌ای، که در آن دستورها را به رویه‌ها گروه‌بندی می‌کند.
 شیء گرا، که در آن دستورها را با بخشی از حالتی که بر روی آن عمل می‌کند، گروه‌بندی می‌کند.
 اعلانی، که در آن برنامه‌نویس صرفاً خواص مربوط به نتایج مطلوبش را اعلان می‌کند، نه چگونگی محاسباتش را.
 تابعی، که در آن نتیجه مطلوب به صورت مقدار مربوط به به‌کارگیری یک سری از توابع، اعلان می‌گردد.
 منطقی، که در آن نتیجه مطلوب به صورت جواب به سؤالی در مورد دستگاهی از حقایق و قواعد اعلان می‌گردد.
 ریاضیاتی، که در آن نتیجه مطلوب به صورت راه حلی از یک مسئله بهینه‌سازی اعلان می‌گردد.
 واکنشی، که در آن نتیجه مطلوب به صورت جریان‌های داده‌ای و انتشار تغییرات اعلان می‌شود.

مرور کلی 
یک زبان برنامه‌نویسی ممکن است یک یا چند پارادایم برنامه‌نویسی را پشتیبانی نماید. برای مثال، برنامه‌های نوشته شده با سی++ می‌توانند کاملاً به صورت رویه‌ای باشند یا کاملاً منطبق بر پارادایم برنامه‌نویسی شئ‌گرا که در تضاد کامل با پارادایم رویه‌ای بوده یا حتی حاوی عناصری از هر دو پارادایم باشند. تصمیم‌گیری برای چگونگی استفاده از عناصر پارادایم‌های برنامه‌نویسی برعهده طراح برنامه یا برنامه‌نویس می‌باشد.

نمونه‌های مهم 
 برنامه‌نویسی دستوری در تضاد با برنامه‌نویسی تابعی
 برنامه‌نویسی رویه‌ای در تضاد با برنامه‌نویسی شئ‌گرا
 برنامه‌نویسی منطقی

منابع

پیوند به بیرون 

Classification of the principal programming paradigms
How programming paradigms evolve and get adopted?

پارادایم‌های برنامه‌نویسی
رده‌بندی زبان‌های برنامه‌نویسی
موضوعات مربوط به زبان‌های برنامه‌نویسی