پارادایم برنامه نویسی چیست؟ – توضیح ساده + معرفی ۸ الگوی کاربردی و رایج
پارادایم برنامه نویسی یک الگوی فکری و چارچوب کلی برای نوشتن و طراحی برنامهها است. به زبان ساده، پارادایم برنامه نویسی نحوه فکر کردن برای حل مسئله، ساختاردهی کد و برقراری ارتباط بین اجزای مختلف برنامه را مشخص میکند. آشنایی با پارادایمهای برنامه نویسی به صورت مستقیم بر کیفیت طراحی، خوانایی کد، مقیاسپذیری و سرعت انجام پروژه تاثیر میگذارد. بر همین اساس در این مطلب از مجله فرادرس به این سوال پاسخ دادهایم که پارادایم برنامه نویسی چیست و چرا باید از آنها استفاده کرد.
- یاد میگیرید پارادایم برنامه نویسی چه اهمیتی دارد.
- با ۸ مورد از مهمترین پارادایمهای برنامه نویسی آشنا میشوید.
- یاد میگیرید کاربرد هر پارادایم در چه مسائلی بیشتر است.
- خواهید توانست پارادایم مناسب پروژه خود را انتخاب کنید.
- دیدی ساختارمند نسبت به شیوههای مختلف برنامه نویسی به دست میآورید.


در این مطلب ۸ مورد از رایجترین پارادایمهای برنامه نویسی همچون پارادایم دستوری، پارادایم رویهای، پارادایم شیگرا، پارادایم تابعی، پارادایم رویداد محور، پارادایم منطقی، پارادایم پردازش موازی و پارادایم داده محور همراه با کاربردها، تفاوتها و رویکرد هر کدام در حل مسئله معرفی خواهند شد.
پارادایم برنامه نویسی چیست؟
واژه «پارادایم» (Paradigm) به روش حل یک مسئله یا نحوه انجام یک کار اشاره دارد. پارادایم برنامه نویسی نیز یک روش فکری و چارچوب ذهنی مشخص برای حل مسئله یا نوشتن برنامه است. به زبان ساده، پارادایم در برنامه نویسی نحوه فکر کردن به مسئله و دیدگاه برنامه نویس برای نوشتن کد را شکل میدهد.
همان طور که زبانهای برنامه نویسی زیادی وجود دارد، در نقطه مقابل نیز پارادایمهای برنامه نویسی متعددی قرار گرفتهاند که نحوه پیادهسازی زبانهای برنامه نویسی را مشخص میکنند. هر زبان برنامه نویسی به یک یا چند پارادایم پایبند است و با استفاده از آنها پیادهسازی میشود. هر پارادایم شامل ساختار، ویژگیها و ایده مشخصی برای حل مشکلات برنامه نویسی است.

درک آسان پارادایم در برنامه نویسی با مثال
برای درک بهتر پارادایم برنامه نویسی به این مثال توجه کنید. فرض کنید میخواهید یک خانه بسازید. در این حالت برای ساخت خانه میتوانید یکی از روشهای زیر را انتخاب کنید.
- ساخت خانه به شیوه سنتی
- استفاده از خانههای پیشساخته و آماده
- ساخت خانه به شیوه مدرن
خروجی نهایی در تمام موارد بالا «خانه» خواهد بود و تنها روش ساخت، ابزارها و طرز فکر تفاوت دارد. در برنامه نویسی نیز پارادایم مانند یک نقشه ذهنی برای پیادهسازی برنامه و نوشتن کد است. از نظر فنی پارادایم در برنامه نویسی مجموعهای از اصول، مفاهیم و الگوها است که موارد زیر را مشخص میکند:
- برنامه چگونه ساختاربندی شود.
- منطق برنامه چگونه پیادهسازی شود.
- دادهها و رفتارها چگونه مدیریت شوند.
به بیان دیگر، پارادایم در برنامه نویسی تعیین میکند که کد چگونه نوشته شود، نه اینکه با چه زبانی نوشته شود. در ادامه چند مثال ساده دیگر برای درک بهتر و عمیقتر این مفهوم آورده شده است.
مثال ۱: پارادایم یعنی «روش انجام کار»
فرض کنید با یک مسئله ریاضی روبرو هستید و میخواهید آن را حل کنید. در این حالت ممکن است:
- یک نفر گامبهگام فرمولها را بنویسد.
- فرد دیگری ابتدا مسئله را به چند بخش کوچکتر تقسیم کند.
- شخص سومی نیز از یک الگوی آماده یا تجربه قبلی خود استفاده کند.
در تمام موارد بالا همه به یک پاسخ یکسان خواهند رسید، ولی روش فکر کردن و حل مسئله متفاوت است. در برنامه نویسی به این تفاوت در شیوه حل مسئله پارادایم گفته میشود.

مثال ۲: پارادایم شبیه آشپزی کردن
آشپزی کردن نیز میتواند مثال خوبی برای درک مفهوم پارادایم در برنامه نویسی باشد. شرایطی را در نظر بگیرید که میخواهید غذای مشخصی را بپزید. در این حالت افراد ممکن است به یکی از شیوههای زیر عمل کنند.
- برخی غذا را دقیقاً بر اساس دستورالعمل آماده میکنند.
- بعضی دیگر مواد را به شیوهای خلاقانه فارغ از دستورالعمل با یکدیگر ترکیب میکنند.
- افراد دیگری نیز همه چیز را به صورت ماژولار یا مرحلهای آماده میکنند و در نهایت ترکیب میکنند.
نتیجه نهایی کار این افراد یکسان است و همگی یک غذای مشخص را آماده میکنند، ولی سبک آشپزی آنها متفاوت است. در برنامه نویسی نیز خروجی برنامه مهم است، ولی پارادایم تعیین میکند که کد با چه دیدگاهی و چه ساختاری نوشته شود.
مثال ۳: پارادایم در کدنویسی
پارادایمهای بسیاری برای نوشتن برنامه و کد نویسی وجود دارد. فرض کنید میخواهید یک برنامه ساده را بنویسید. برای این منظور میتوان از پارادایمهای مختلفی استفاده کرد. یکی از حالتهای زیر وجود دارد.
- در یک پارادایم برنامه به صورت مجموعهای از دستورها نوشته میشود.
- پارادایم دیگری برنامه را به شکل توابع مستقل طراحی میکند.
- در پارادایم شیگرا نیز برنامه از چندین شی مختلف با دادهها و رفتار مشخص تشکیل میشود.
در تمام این حالتها برنامه به درستی کار میکند، اما مدل ذهنی برنامه نویس و نگرش او به حل مسئله متفاوت است. این مدل ذهنی همان مفهوم پارادایم در برنامه نویسی را نشان میدهد.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
اهمیت یادگیری پارادایم برنامه نویسی چیست؟
شاید در نگاه اول به نظر برسد که پارادایمهای برنامه نویسی یک مفهوم تئوری محض هستند، اما پارادایمها تاثیر مستقیمی بر روی نحوه فکر کردن، کد نویسی و حتی موفقیت پروژههای نرمافزاری دارند.
در ادامه مهمترین دلایل اهمیت پارادایمهای برنامه نویسی آورده شده است.
- شکلدهی مدل ذهنی برنامه نویس
- تغییر ساختار و معماری کد
- افزایش خوانایی کد
- انتخاب زبان برنامه نویسی
- افزایش کیفیت نرمافزار

شکلدهی مدل ذهنی برنامه نویس
هر پارادایم در برنامه نویسی به شیوه خاص خود به مسئله نگاه میکند و رویکرد متفاوتی نیز برای حل مسئله دارد. به عنوان مثال، پارادایم دستوری تمرکز خود را بر روی دستورها قرار میدهد و پارادایم شیگرا سعی دارد تا با استفاده از اشیا و تعامل بین آنها برنامه کامپیوتری را به دنیای واقعی نزدیک کند. در نتیجه، دو برنامه نویس تنها به دلیل داشتن پارادایمهای ذهنی متفاوت ممکن است که یک مسئله یکسان را با دو دیدگاه متفاوت حل کنند.
تغییر ساختار و معماری کد
رویکرد متفاوت پارادایمهای برنامه نویسی برای حل مسئله میتواند ساختار و معماری کد را نیز تغییر دهد. در واقع، انتخاب پارادایم بر روی موارد زیر تاثیر میگذارد.
- کد چگونه سازماندهی شود.
- بخشهای مختلف برنامه چطور با یکدیگر ارتباط داشته باشند.
- توسعه و نگهداری پروژه چقدر ساده یا پیچیده باشد.
در پروژههای بزرگ برنامه نویسی استفاده از پارادایم مناسب در نهایت به کدی تمیز و قابل توسعه منجر میشود.
افزایش خوانایی کد
یکی دیگر از دلایل استفاده از پارادایمهای برنامه نویسی افزایش خوانایی کد است. نوشتن برنامه بر مبنای یک پارادایم مشخص باعث میشود که:
- کد الگوی مشخصی داشته باشد.
- سایر برنامهنویسان به سادگی آن را درک کنند.
- همکاری تیمی را سادهتر میکند.
به همین دلیل است که تیمهای حرفهای برنامه نویسی به یک یا چند پارادایم مشخص پایبند هستند.
انتخاب زبان برنامه نویسی
پارادایمها حتی بر روی انتخاب زبان برنامه نویسی نیز تاثیر میگذارند. بسیاری از زبانهای برنامه نویسی بر اساس یک یا چند پارادایم خاص طراحی شدهاند. به عنوان مثال:
- برخی زبانها از پارادایم شیگرایی پشتیبانی میکنند.
- تعدادی از زبانها بر پارادایم تابعی تمرکز دارند.
- برخی از زبانها نیز چندپارادایمی هستند.
آشنایی با پارادایمهای برنامه نویسی کمک میکند تا زبان برنامه نویسی مناسب برای پروژه انتخاب شود.
افزایش کیفیت نرمافزار
انتخاب پارادایم مناسب با تاثیرگذاری بر روی موارد زیر میتواند کیفیت نرمافزار نهایی را ارتقا دهد.
- کاهش خطا
- تستپذیری بهتر کد
- توسعه سریعتر
- نگهداری سادهتر در آینده
به زبان ساده، پارادایم تنها یک مفهوم آموزشی نیست، بلکه ابزاری عملی برای نوشتن نرمافزاری بهتر است.
چگونه برنامه نویسی را اصولی یاد بگیریم؟
برنامه نویسی یکی از آن مهارتهایی است که باید به صورت اصولی آموخته شود. بسیاری از افراد برنامه نویسی را با دیدن چند ویدیو یا حل چند تمرین ساده شروع میکنند، ولی تفاوت میان یک کدنویس معمولی و برنامه نویس حرفهای در یادگیری اصولی نهفته است. با یادگیری سطحی ممکن است بتوانید چندین خط کد بنویسید یا برنامهای ساده را توسعه دهید، ولی یادگیری اصولی به شما توانایی تحلیل مسئله، طراحی راهحل و ساخت سیستمهای پایدار و مقیاسپذیر میدهد.
بزرگترین چالش برای علاقهمندان به برنامه نویسی، کمبود منابع نیست بلکه پراکندگی آنهاست. انتخاب زبان مناسب، درک ترتیب یادگیری مفاهیم، شناخت مهارتهای پایه و پیشرفته همگی نیازمند یک نقشه راه شفاف هستند. خوشبختانه فرادرس با هدف آموزش اصولی مفاهیم برنامه نویسی مجموعهای از فیلمهای آموزشی مختلف را تهیه و منتشر کرده است. این فیلمها به صورت گامبهگام هر آنچه برای یادگیری اصولی برنامه نویسی لازم است را آموزش میدهند. این آموزشها در مجموعه فیلم آموزش برنامه نویسی مقدماتی تا پیشرفته از فرادرس قابل دسترسی هستند که لینک آن در ادامه آورده شده است.
علاقهمندان به یادگیری مبانی برنامه نویسی میتوانند بر اساس سطح خود از مبتدی گرفته تا پیشرفته و همچنین هدف خود از یادگیری این آموزشها را تهیه کنند. در ادامه تعدادی از دورههای پیشنهادی موجود در این مجموعه آورده شده است.
- فیلم آموزش رایگان اصول و مبانی برنامه نویسی از فرادرس
- فیلم آموزش مبانی برنامه نویسی شامل الگوریتم و فلوچارت با رویکرد حل مساله با گواهینامه از فرادرس
- فیلم آموزش شی گرایی در سی شارپ از فرادرس
- فیلم آموزش برنامه نویسی C++ سی پلاس پلاس با گواهینامه از فرادرس
- فیلم آموزش برنامه نویسی پایتون + مثال های عملی در Python از فرادرس
- فیلم آموزش برنامه نویسی پی اچ پی از فرادرس

انواع پارادایم برنامه نویسی چیست؟
در بخشهای قبلی به این سوال مهم پاسخ داده شد که پارادایم برنامه نویسی چیست و چگونه میتواند موجب بهبود کیفیت نرمافزار شود. حال زمان آن فرا رسیده است که با محبوبترین پارادایمهای برنامه نویسی آشنا شویم. محبوبترین و پرکاربردترین پارادایمهای برنامه نویسی در ادامه آورده شده است.
- پارادایم دستوری
- پارادایم رویهای
- پارادایم شیگرا
- پارادایم تابعی
- پارادایم رویداد محور
- پارادایم منطقی
- پارادایم پردازش موازی
- پارادایم داده محور

بر همین اساس، در این بخش رایجترین پارادایمهای برنامه نویسی از نظر ویژگیها، ساختار و رویکرد حل مسئله مورد بررسی قرار خواهند گرفت. این پارادایمها هر کدام دیدگاه متفاوتی برای حل مسئله و طراحی نرمافزار ارائه میدهند که در ادامه با آنها آشنا خواهید شد.
۱. پارادایم دستوری
«پارادایم دستوری» (Imperative Programming) یکی از قدیمیترین رویکردهای برنامه نویسی است که ارتباط نزدیکی نیز با معماری ماشین دارد. در پارادایم دستوری، برنامه نویس به کامپیوتر میگوید که چه کاری را، به چه ترتیبی انجام دهد. تمرکز اصلی در این پارادایم بر روی اجرای دستورات و تغییر وضعیت برنامه است. این رویکرد از تعدادی دستور تشکیل شده است و پس از اجرا تمام نتایج به دست آمده ذخیره میشوند.
زبانهای برنامه نویسی معروفی همچون C، پاسکال، Assembly و فرترن از پارادایم دستوری پشتیبانی میکنند. در ادامه قطعه کدی به زبان برنامه نویسی C آورده شده است که از پارادایم دستوری استفاده میکند.
مثال مفهومی از پارادایم دستوری
پارادایم دستوری مانند این است که لیستی از کارها را مرحله به مرحله انجام دهید تا به نتیجه برسید. به عنوان مثال فرایند پخت کیک از نوع پارادایم دستوری است و مراحل زیر را شامل میشود.
- آرد را در یک کاسه بریزید.
- چند تخممرغ را در همان کاسه بریزید.
- مقداری شیر اضافه کنید.
- مواد را کامل با هم مخلوط کنید.
- مخلوط به دست آمده را در یک قالب بریزید.
- قالب را درون فر قرار دهید.
- بعد از ۳۵ دقیقه قالب را از فر خارج کنید.
- اجازه دهید تا کیک خنک شود.
در مثال بالا لیستی از کارها به صورت متوالی انجام شدند و نتیجه نهایی یک کیک خواهد بود.
مزایا و معایب پارادایم برنامه نویسی دستوری چیست؟
از جمله مهمترین مزایای این پارادایم به موارد زیر میتوان اشاره کرد.
در نقطه مقابل، معایب پارادایم دستوری عبارتنداز:
- قابلیت حل مسائل پیچیده را ندارد.
- کارایی و بهرهوری کمی دارد.
- قابلیت برنامه نویسی موازی ندارد.
۲. پارادایم رویهای
«پارادایم رویهای» (Procedural Programming) نسخه ساختاریافتهتر پارادایم دستوری است که برنامه را به توابع کوچکتر تقسیم میکند. در این رویکرد اجرای برنامه به چند تابع کوچکتر تقسیم میشود که امکان سازماندهی کد را آسانتر میکند. به زبان ساده، ایده اصلی در پارادایم رویهای تقسیم کردن برنامه به بخشهای قابل مدیریت برای کاهش پیچیدگی و افزایش خوانایی است.
بسیاری از زبانهای برنامه نویسی محبوب همچون ++C، جاوا، پایتون و جاوا اسکریپت از پارادایم رویهای پشتیبانی میکنند. در ادامه قطعه کدی به زبان C آورده شده است که از پارادایم رویهای استفاده میکند.
رویکرد رویهای منطق برنامه را در قالب یک یا چند تابع پیادهسازی میکند و کد نهایی خواناتر میشود.
مثال مفهومی از پارادایم رویهای
رویکرد رویهای مانند این است که به جای انجام تمام کارها به صورت پشت سر هم، هر کار را به یک وظیفه مستقل تبدیل کنید. به عنوان مثال فرض کنید کارگاهی چند کار مشخص را انجام میدهد که این کارها به صورت زیر هستند.
- ثبت سفارش
- آمادهسازی مواد
- تولید محصول
- ارسال
در این مثال به جای انجام تمام کارها به صورت پشت سر هم، برای هر کدام یک رویه (وظیفه) مشخص تعریف شده است و در صورت نیاز آن رویه صدا زده میشود. دو مزیت اصلی این جداسازی عبارت است از:
- در صورت تغییر مرحله فقط همان وظیفه اصلاح میشود.
- کارها منظمتر و قابل مدیریتتر میشوند.
این رویکرد مبتنی بر پارادایم رویهای است که برنامه را به بخشهای کوچکتر و قابل مدیریت تقسیم میکند.
۳. پارادایم شی گرا
امروزه یکی از پرکاربردترین و محبوبترین رویکردها در برنامه نویسی «پارادایم شی گرا» (Object-Oriented Programming) است. در پارادایم شی گرا هر برنامه از مجموعهای از اشیا تشکیل میشود که هر کدام دادهها و رفتارهای خاص خود را دارند. این رویکرد سعی دارد تا با مدلسازی دنیای واقعی با استفاده از کلاسها و اشیا، درک برنامه نویسی را آسان و مسائل را سادهتر حل کند.
کوچکترین و مهمترین موجودیت در این پارادایم شی است که با استفاده از کلاس ساخته میشود. تمام محاسبات برنامه نیز بر روی اشیا صورت میگیرد. رویکرد شی گرا میتواند تمام مشکلات و مسائل دنیای واقعی را در قالب اشیا مدلسازی کند. امروزه بیشتر زبانهای برنامه نویسی مدرن همچون #C، پایتون، جاوا، جاوا اسکریپت و ++C از شیگرایی پشتیبانی میکنند. در ادامه قطعه کدی به زبان #C آورده شده است که از پارادایم شیگرایی استفاده میکند.
در مثال بالا، کلاسPerson برای ساخت اشیا تعریف شده است که ویژگیName و رفتار یا متدSayHello() را دارد. پیشتر در مطلب زیر از مجله فرادرس مفهوم شیگرایی در برنامه نویسی به زبان ساده مورد بررسی قرار گرفته است.
مثال مفهومی از پارادایم شی گرا
پارادایم شی گرا تلاش میکند تا سیستم را به موجودیتهایی مانند کاربر، محصول و سفارش تقسیم کند که هر کدام ویژگیها و وظایف مشخصی دارند. برای درک بهتر این موضوع فرض کنید که میخواهیم یک مدرسه را با این رویکرد مدلسازی کنیم. در مدرسه موجودیتهای مختلفی وجود دارد که عبارتند از:
- دانش آموز
- معلم
- کلاس
- درس
- مدیر
هر کدام از این موجودیتهای اطلاعات مخصوص به خود را دارند و رفتارها خاص خود را نیز نشان میدهند. به عنوان مثال:
- دانش آموز در مدرسه ثبتنام میکند.
- معلم تدریس را انجام میدهد.
- مدیر وظیفه سازماندهی مدرسه را برعهده دارد.
این سیستم بر اساس موجودیتها و تعامل بین آنها طراحی شده است که در واقع، همان رویکرد شی گرا است.
مزایا و معایب پارادایم برنامه نویسی شی گرا چیست؟
رویکرد شی گرا به دلیل مدلسازی دنیای واقعی کمک میکند تا درک کدها آسانتر شود. از جمله مهمترین مزایای دیگر این رویکرد به موارد زیر میتوان اشاره کرد.
- امنیت دادهها
- قابلیت استفاده مجدد از کد
- وراثت
رویکرد شی گرا معایبی نیز دارد که در ادامه آورده شده است.
- حجم زیاد کدها
- زمانبر بودن پیادهسازی
تا این بخش یاد گرفتیم سه نوع از اصلیترین انواع پارادایم برنامه نویسی چیست و هریک چه کاربردی دارند. در ادامه، با چند انواع دیگر آشنا میشویم.
۴. پارادایم برنامه نویسی تابعی چیست؟
«پارادایم تابعی» (Functional Programming) مفهوم توابع را کمی بیشتر بسط میدهد. در رویکرد برنامه نویسی تابعی تمرکز اصلی بر روی توابع و محاسبات بدون تغییر وضعیت است. توابع در این رویکرد نقش بسیار کلیدی دارند و میتوان توابع را به متغیرها اختصاص داد، به عنوان آرگومان ارسال کرد و حتی از توابع دیگر نیز به عنوان خروجی بازگرداند.
نکته مهم دیگر در این رویکرد ایده توابع خالص است. یک تابع خالص، تابعی است که تنها به ورودیهای خود برای تولید نتیجه متکی است. این تابع با دریافت ورودی یکسان همیشه نتایج یکسانی را نیز تولید میکند. به زبان ساده، ایده اصلی در پارادایم تابعی نوشتن برنامه با توابع خالص و پرهیز از تغییر مستقیم دادهها است. زبانهای برنامه نویسی جاوا اسکریپت، پایتون، اسکالا، Lisp و Erlang همگی از رویکرد تابعی پشتیبانی میکنند. قطعه کد زیر به زبان پایتون مثالی از رویکرد تابعی در برنامه نویسی را نشان میدهد.
در مثال بالا تابع تنها ورودی را دریافت میکند و خروجی میدهد. در این بین وضعیت خارجی هیچ تغییر نمیکند. در مطلب زیر به طور کامل به این سوال که پارادایم برنامه نویسی تابعی چیست پاسخ دادهایم.
مثال مفهومی از پارادایم تابعی
یک ماشین حساب ساده نمونه بسیار خوبی برای رویکرد تابعی است که ورودی را دریافت میکند و بدون تغییر چیزی، خروجی مشخصی را تولید میکند. به عنوان مثالی دیگر برای درک بهتر رویکرد تابعی خط تولید یک کارخانه را در نظر بگیرید. اتفاقات زیر در خط تولید رخ میدهد.
- هر دستگاه ورودی دریافت میکند.
- پردازش را انجام میدهد.
- خروجی مناسب را تحویل میدهد.
- سایر دستگاهها را تغییر نمیدهد.
در صورت دریافت ورودی یکسان، خروجی همیشه یکسان خواهد بود. این مثال بسیار شبیه به پارادایم تابعی است که بر توابع خالص و بدون تغییر وضعیت تاکید دارد.
۵. پارادایم رویداد محور
یکی دیگر از رویکردهای مهم در برنامه نویسی «پارادایم رویداد محور» (Event-Driven Programming) است. در این رویکرد جریان اجرا توسط رویدادها تعیین میشود. منظور از «رویداد» (Event) یعنی اتفاقی که رخ میدهد و برنامه باید نسبت به آن واکنش نشان دهد. رویداد میتواند هر نوع اتفاقی باشد، به عنوان مثال موارد زیر همگی یک رویداد هستند.
- کلیک کاربر روی دکمه
- فشردن یک کلید از صفحه کلید
- ارسال یک فرم
- دریافت پیام
- اتمام دانلود یک فایل
در رویکرد رویداد محور به محض رخ دادن یکی از این رویدادها، برنامه واکنش مناسب را نشان میدهد. به زبان ساده، در پارادایم رویداد محور اجرای برنامه بر اساس وقوع رویدادها انجام میشود.

بسیاری از زبانهای برنامه نویسی نظیر سی شارپ، Visual Basic و جاوا اسکریپت از این رویکرد پشتیبانی میکنند.
در مثال بالا با وقوع رویداد کلیک کد اجرا میشود.
مثال مفهومی از پارادایم رویداد محور
برای درک بهتر پارادایم رویداد محور یک تلفن در منزل را تصور کنید که مثال بسیار خوبی برای این رویکرد است. تا زمانی که تلفن زنگ نخورد، هیچ کسی کاری انجام نمیدهد. به محض زنگ خوردن تلفن افراد حاضر در منزل از جای خود بلند میشوند تا به تلفن پاسخ دهند. این مورد مشابه منطق پارادایم رویداد محور است.
۶. پارادایم منطقی
«پارادایم منطقی» (Logic Programming) یکی دیگر از رویکردهای برنامه نویسی است که میتوان آن را مدلی انتزاعی برای محاسبات دانست. در پارادایم منطقی، برنامه نویس به جای نوشتن مراحل اجرای برنامه، قوانین و روابط منطقی را تعریف میکند. به زبان ساده، ایده اصلی در این رویکرد توصیف مسئله و اجازه دادن به سیستم برای پیدا کردن راه حل است.
در برنامه نویسی منطقی یک پایگاه دانش وجود دارد که از قبل با آن آشنا هستیم و یک پایگاه دانش و تعدادی سوال نیز به ماشین داده میشود تا نتیجه را تولید کند. این مدل میتواند در حل مسائلی همچون پازلها، سریها و سایر موارد دیگر مورد استفاده قرار گیرد. اجرای برنامه بسیار شبیه به اثبات گزارههای ریاضی است. پرولوگ یک زبان برنامه نویسی منطقی چند منظوره است که از همین رویکرد استفاده میکند. در ادامه قطعه کدی به زبان پرولوگ با رویکرد برنامه نویسی منطقی آورده شده است.
مثال بالا نمونهای از پیادهسازی رویکرد منطقی است. در این رویکرد برنامه نویس فقط مراحل را مشخص میکند و سیستم خودش راهحل را پیدا میکند.
مثال مفهومی از پارادایم منطقی
رویکرد منطقی برای حل مسئله از مجموعهای از قوانین «اگر ... آنگاه ...» استفاده میکند. به عنوان مثال میتوان قوانین دادگاه را در نظر گرفت. در یک دادگاه موارد زیر وجود دارد.
- قوانین مشخص هستند.
- روابط بین افراد تعریف شده است.
- قاضی بر اساس این قوانین نتیجهگیری میکند.
در دادگاه کسی به قاضی نمیگوید که چگونه فکر کند، بلکه فقط قوانین وجود دارند و نتیجه بر اساس آنها مشخص میشود. در پارادایم منطقی نیز برنامه نویس قوانین را تعریف میکند و سیستم خودش راهحل را پیدا میکند.
۷. پارادایم پردازش موازی
رویکرد «پردازش موازی» (Parallel Processing) عملیات پردازش دستورالعملهای برنامه را با تقسیم آنها بین چند پردازنده انجام میدهد. به زبان ساده، در این رویکرد برنامه به چند بخش مستقل تقسیم میشود و این بخشها به صورت همزمان اجرا میشوند تا یک کار سریعتر انجام شود.
یک سیستم پردازش موازی دارای تعداد زیادی پردازنده است که هدف اصلی آن اجرای برنامه در زمان کمتر با تقسیم آنها است. زبانهای معروفی همچون ++C، جاوا، پایتون و CUDA از رویکرد پردازش موازی پشتیبانی میکنند. در ادامه قطعه کدی به زبان پایتون آورده شده است که از رویکرد پردازش موازی استفاده کرده است.
در مثال بالا، دو کار به صورت همزمان اجرا میشوند. این رویکرد برای انجام کارهای سنگین و زمانبر گزینه بسیار خوبی است.
مثال مفهومی از پارادایم پردازش موازی
برای درک بهتر رویکرد پردازش موازی فرض کنید میخواهید یک مهمانی در منزل خود برگزار کنید. در این حالت اگر:
- یک نفر هم غذا بپزد.
- هم میز بچیند.
- هم خانه را تمیز کند.
انجام تمام این کارها توسط یک نفر زمان بسیار زمانبر خواهد بود و ممکن است که در زمان لازم به پایان نرسد. در نقطه مقابل اگر کارها تقسیم شود، یعنی:
- یک نفر غذا بپزد.
- یک نفر میز را بچیند.
- یک نفر هم خانه را تمیز کند.
در نتیجه، همه کارها همزمان انجام خواهد شد و خیلی زودتر از پیشبینی تمام خواهند شد. این مثال به خوبی رویکرد پردازش موازی را نشان میدهد.
کاربردهای پارادایم پردازش موازی چیست؟
این رویکرد با تقسیم و حل مسئله زمان انجام را بسیار کوتاه میکند. از جمله مهمترین کاربردهای پردازش موازی به موارد زیر میتوان اشاره کرد.
- پردازش دادههای حجیم
- محاسبات علمی و مهندسی
- بازیها و موتورهای گرافیکی
- سیستمهای چند هستهای

در مطلب زیر در مورد این روش به طور کامل توضیح داده شده است:
۸. پارادایم برنامه نویسی داده محور چیست؟
رویکرد «برنامه نویسی مبتنی بر داده» (Data Driven Programming) بر اساس تغییر دادهها و حرکت آنها پایهگذاری شده است. در پارادایم داده محور، دادهها نقش اصلی را در رفتار برنامه دارند. به زبان ساده، این دادهها هستند که تعیین میکنند برنامه چگونه عمل کند.
در پارادایم داده محور برای تغییر رفتار برنامه نیازی به تغییر کد نیست و با تغییر دادهها رفتار برنامه عوض میشود. برنامههای مبتنی بر داده از پایگاه داده برای ذخیره دادهها استفاده میکنند. برنامه پایگاه داده به عنوان قلب یک سیستم اطلاعاتی شناخته میشود و توابعی برای ایجاد فایل، ورود داده، بهروزرسانی، پرسوجو و گزارشدهی را ارائه میدهد. زبانهای برنامه نویسی مختلفی برای کار با پایگاه داده توسعه داده شدهاند که زبان SQL یکی از محبوبترین آنها است. در ادامه قطعه کدی به زبان SQL برای درج داده در پایگاه داده آورده شده است.
مثال مفهومی از پارادایم داده محور
برای درک بهتر نحوه عملکرد برنامههای نوشته شده مبتنی بر پارادایم داده محور یک فروشگاه اینترنتی را در نظر بگیرید. در فروشگاه اینترنتی قوانین زیر وجود دارد.
- تخفیفها
- قیمتها
- دستهبندی محصولات
- سطح دسترسی کاربران
تمام این قوانین در داخل پایگاه داده ذخیره شدهاند. مدیر فروشگاه برای اعمال تخفیف جدید یا تغییر قیمت محصولات نیازی به تغییر کد برنامه ندارد. به دلیل استفاده از رویکرد داده محور تنها با تغییر دادهها، رفتار سیستم عوض میشود.
کاربردهای پارادایم داده محور چیست؟
از جمله مهمترین کاربردهای پارادایم داده محور به موارد زیر میتوان اشاره کرد.
- سیستمهای مدیریتی و سازمانی
- نرمافزارهای مالی و حسابداری
- سیستمهای احراز هویت و دسترسی
- سیستمهای گزارشگیری و داشبورد

مقایسه پارادایم های برنامه نویسی
پارادایمهای مختلفی در برنامه نویسی وجود دارند که هر کدام از آنها رویکرد و نگاه متفاوتی به حل مسائل را ارائه میدهند. در بخش قبلی سعی شد تا ۸ پارادایم رایج در برنامه نویسی مورد بررسی قرار گیرد. در جدول زیر تمام پارادایمهای برنامه نویسی معرفی شده با یکدیگر مقایسه شدهاند.
| پارادایم | ایده اصلی | زبانهای برنامه نویسی |
| دستوری | مشخص کردن گامبهگام مراحل کار برنامه | پایتون، جاوا و C |
| رویهای | تقسیم برنامه به توابع و رویهها | پاسکال و C |
| شیگرا | مدلسازی برنامه با اشیا و کلاسها | پایتون، جاوا و #C |
| تابعی | تمرکز بر توابع و حذف وضعیت | اسکالا و جاوا اسکریپت |
| رویداد محور | واکنش به رویدادها | جاوا اسکریپت و سی شارپ |
| منطقی | تعریف قوانین و روابط | پرولوگ |
| پردازش موازی | انجام همزمان چند کار | پایتون و CUDA |
| داده محور | تصمیمگیری بر اساس داده | SQL |
بهترین پارادایم برنامه نویسی چیست؟
در برنامه نویسی چیزی به نام بهترین پارادایم وجود ندارد. بهترین پارادایم، پارادایم یا رویکردی است که بیشترین تناسب را با مسئله مورد نظر ما دارد. عوامل متعددی در انتخاب پارادایم برنامه نویسی نقش دارند که تعدادی از آنها در ادامه آورده شده است.
- نوع پروژه
- مقیاس نرمافزار
- میزان پیچیدگی
- عملکرد
- تجربه تیم توسعه
امروزه نیز مشاهده میشود که بسیاری از زبانها و پروژههای نرمافزاری از ترکیب چند پارادایم استفاده میکنند تا نتیجه مطلوب را به دست آورند.

فاکتورهای انتخاب بهترین پارادایم برنامه نویسی چیست؟
حالا که میدانیم پارادایم برنامه نویسی چیست، باید با روش انتخاب آن نیز آشنا شویم. برای افراد تازه وارد به برنامه نویسی پارادایمهای دستوری و رویهای بهترین نقطه برای شروع هستند. این پارادایمها ساده، قابل درک و نزدیک به طرز فکر طبیعی انسان در حل مسئله هستند. ایده اصلی این پارادایمها قدمبهقدم جلو رفتن و حل مسئله است.
بعد از این مرحله، یادگیری پارادایم شیگرا به درک بهتر ساختار پروژههای بزرگ کمک میکند. در ادامه برای تکمیل فرایند یادگیری میتوان به سراغ پارادایمهای پیشرفتهتری مانند تابعی، رویداد محور یا پردازش موازی رفت. برای انتخاب پارادایم مناسب باید موارد زیر را در نظر گرفت.
- هدف
- سطح تجربه
- نوع مسئله

هدف
انتخاب پارادایم مناسب به طور مستقیم به زمینه کاربرد آن بستگی دارد. به عنوان مثال، پارادایم مورد استفاده در توسعه وب، تحلیل داده و ساخت برنامههای سیستمی با یکدیگر متفاوت است. در جدول زیر پارادایم مناسب برای هر کدام از حوزههای کاری بالا آورده شده است.
| زمینه کاری | پارادایم مناسب |
| توسعه وب | رویداد محور و شیگرا |
| تحلیل داده | داده محور و تابعی |
| برنامههای سیستمی | رویهای یا دستوری |
شاید برایتان سوال پیش آمده باشد که دلیل انتخاب این پارادایمها چیست. برای پاسخ به این سوال باید ماهیت هر کدام از زمینههای کاری بالا را بررسی کرد.
توسعه وب (رویداد محور و شیگرا)
در وب همه چیز بر اساس رویدادها رخ میدهد.
- کاربر کلیک میکند.
- فرمی از اطلاعات ارسال میشود.
- داده از سرور برمیگردد.
بنابراین، ساختار اصلی برنامه رویداد محور است. با بزرگتر شدن پروژه باید مواردی همچون کاربران، محصولات، سبد خرید و سفارشها را به صورت موجودیتهای مدلسازی کرد. برای این منظور باید از پارادایم شیگرا استفاده کرد. در نتیجه، در طراحی وب باید ترکیبی از پارادایم رویداد محور برای تعامل و پارادایم شیگرا برای ساختاردهی را استفاده کرد.
تحلیل داده (داده محور و تابعی)
در حوزه تحلیل داده تمرکز اصلی بر روی داده است و مراحل اجرایی اهمیت کمتری دارند. کارهای اصلی در تحلیل داده عبارتنداز:
- فیلتر کردن دادهها
- گروهبندی
- محاسبه میانگین
- تبدیل ساختار داده
برای پیادهسازی موارد بالا پارادایم تابعی بسیار عالی عمل میکند. بنابراین، بهترین انتخاب برای حوزه تحلیل داده پارادایم تابعی و داده محور است.
برنامههای سیستمی (رویهای یا دستوری)
در پیادهسازی برنامههای سطح پایین مانند سیستمعامل، درایور و برنامههای embedded کنترل دقیق روی حافظه و منابع بسیار مهم است. به طور خلاصه باید موارد زیر را هنگام پیادهسازی برنامههای سیستمی و سطح پایین در نظر گرفت.
- ترتیب اجرای دستورات مهم است.
- عملکرد حیاتی است.
- مدیریت مستقیم منابع لازم است.
بنابراین، پارادایم دستوری یا رویهای برای برنامههای سیستمی مناسبتر است.
سطح تجربه
یکی دیگر از عوامل مهم برای انتخاب پارادایم برنامه نویسی، سطح تجربه است. افراد مبتدی بهتر است از پارادایمهای دستوری و رویهای استفاده کنند، زیرا این پارادایمها پیچیدگی کمتری دارند. در نقطه مقابل، در سطوح متوسط تا حرفهای برنامهنویسان میتوانند از پاردایمهای پیچیدهتری همچون شیگرا، تابعی و موازی در پروژههای خود استفاده کنند.
نوع مسئله
گاهی اوقات ماهیت مسئله بر هدف ارجحیت دارد و باید با توجه به نوع مسئله پارادایم مناسب را انتخاب کرد. در جدول زیر پارادایم مناسب با توجه به نوع مسئله آورده شده است.
| ماهیت مسئله | پارادایم مناسب | مثال |
| مرحلهای و خطی | دستوری | محاسبه حقوق |
| مدلسازی موجودیتها | شیگرا | فروشگاه اینترنتی |
| سیستمهای بلادرنگ | موازی یا رویداد محور | بازی آنلاین |
در مجموع، انتخاب پارادایم یعنی پاسخ به این سوال که مسئله من به چه مدلی از فکر کردن نیاز دارد.
یادگیری برنامه نویسی پروژه محور با فرادرس
یکی از بزرگترین اشتباهات در مسیر یادگیری برنامه نویسی، آموزش مفاهیم بدون داشتن تجربه عملی است. برنامه نویسی نیز مانند هر مهارتی برای تثبیت در ذهن باید در قالب پروژههای عملی آموخته شود. یادگیری پروژه محور باعث میشود تا مفاهیم از حالت تئوری خارج شده و به مهارت کاربردی تبدیل شوند.
برای همین منظور فرادرس آموزشهای پروژه محور متعددی را در حوزههای مختلف برنامه نویسی منتشر کرده است که در مجموعه فیلم آموزشهای پروژه محور برنامه نویسی مقدماتی تا پیشرفته از فرادرس گردآوری شدهاند.
تمرکز اصلی در این آموزشها بر روی یادگیری مفاهیم برنامه نویسی از طریق انجام پروژه است. با مشاهده این آموزشها نه تنها با دستورات و مفاهیم پایه آشنا میشوید، بلکه گامبهگام یک پروژه واقعی را طراحی و پیادهسازی خواهید کرد. مشاهده آموزشهای پروژه محور برای ارتقا سطح دانش برنامه نویسی و تبدیل آن به مهارتی عملی و قابل استفاده در بازار کار انتخابی هوشمندانه است. در ادامه تعدادی از دورههای آموزشی موجود در این مجموعه آورده شده است.
- فیلم آموزش پروژه محور سی شارپ C# باسیستم حسابداری و انبارداری
- فیلم آموزش پروژه محور شی گرایی در سی پلاس پلاس C++ در سامانه امور دانشجویی
- فیلم آموزش ساخت اپلیکیشن وب اندروید با PHP و MySQL
- فیلم آموزش پروژه محور سی شارپ C# با پیاده سازی نرم افزار حسابداری شخصی
- فیلم آموزش پروژه محور پایتون با ساخت بازی حافظه تصویری با کتابخانه Tkinter و Turtle با گواهینامه
- فیلم آموزش پروژه محور سی شارپ C# با ساخت برنامه دانلودگر

جمعبندی
<p>در این مطلب از مجله فرادرس به این سوال پاسخ داده شد که پارادایم برنامه نویسی چیست و چرا دانستن آن برای هر برنامه نویسی ضروری است. یاد گرفتیم که پارادایم برنامه نویسی یک سبک یا الگوی فکری برای حل مسئله است که طراحی ساختار کد و نحوه نگاه کردن به مسئله را مشخص میکند. در ادامه مهمترین پارادایمهای رایج از دستوری و رویهای گرفته تا شیگرا، تابعی و داده محور معرفی شد.
هدف از شناخت پارادایمها صرفاً دانستن نام آنها نیست بلکه باید یاد بگیریم چه زمانی از چه پارادایمی استفاده کنیم. هر چه با دامنه گستردهتری از پارادایمهای برنامه نویسی آشنا باشید، آنگاه توانایی بیشتری برای طراحی راهحلهای تمیز، مقیاسپذیر و قابل نگهداری دارید.












