پارادایم چیست؟
پارادایم چیست؟
پارادایم چیست؟ پارادایم برنامهنویسی در اصل شیوه (استایل) برنامهنویسی در كامپیوتر است.
پارادایمهای اصلی :
چهار پارادایم اصلی در برنامهنویسی وجود دارد:
شیءگرا،دستوری،تابعی و اعلانی.
تفاوت این چهار پارادایم در مدل محاسبه آنهاست. در برنامهنویسی دستوری و شیءگرا، از مدل ماشین تورینگ،
محاسبات لامبدا در برنامهنویسی تابعی و منطق ردیف اول در برنامه نویسی منطقی استفاده میشود.
مدل برنامهنویسی، در واقع سیستمی انتزاعی از یك كامپیوتر است.
برای مثال، ماشین فون نیومان، مدلی است كه در كامپیوترهای سنتی ترتیبی از آن استفاده میشد.
در محاسبات موازی، مدلهای زیادی وجود دارند كه در آنها پردازندهها به روشهای مختلفی با یكدیگر در تعامل
قرار میگیرند. از معمولترین سیستمهای كامپیوتری میتوان به حافظه مشترك یا حافظه توزیعشده با استفاده
از سیستم پیامدهی یا تركیبی از این دو اشاره كرد.
یك زبان برنامهنویسی میتواند از چند پارادایم برنامهنویسی پشتیبانی كند.
برای مثال، برنامههایی كه در ++C یا Object Pascal نوشته میشوند، میتوانند كاملا ساختیافته یا كاملا
شیءگرا باشند یا از مولفههای هر دو پارادایم به صورت تركیبی استفاده كنند.
طراحان برنامهنویس و برنامهنویسان میتوانند تصمیم بگیرند ازكدام مولفه چه پارادایمی بهتر است استفاده كنند.
در برنامهنویسی شیءگرا، نگاه به برنامه، مثل مجموعهای از اشیاست كه با یكدیگر در تعامل هستند،
در حالی كه در برنامهنویسی تابعی، برنامه میتواند مجموعهای از چند فرمول تابع باشد.
وقتی برای سیستمی با چند پردازنده برنامه مینویسند، معمولا از پارادایم پردازش محور استفاده میكنند.
در این پارادایم، نگاه به برنامه همانند چند پروسس همروند است كه در یك ساختار داده منطقی مشترك
فعالیت میكنند.
درست همانند شیوههای مختلف مهندسی نرمافزار كه متدولوژیهای مختلفی را پیشنهاد میدهند،
در برنامهنویسی، زبانها نقش اساسی در معرفی پارادایمهای برنامهنویسی دارند.
برخی از زبانها تنها از یك پارادایم برنامهنویسی پشتیبانی كرده (اسمالتاك تنها از برنامهنویسی
شیءگرا پشتیبانی میكند) و برخی دیگر از چند پارادایم پشتیبانی میكنند.
بسیاری از پارادایمهای برنامهنویسی بیشتر به دلیل ممنوعكردن برخی از تكنیكها شكل گرفته است.
مثلا در برنامهنویسی تابعی، استفاده از Side-Effects ممنوع شده است، در حالی كه در برنامهنویسی ساخت
یافته استفاده از عبارت goto صحیح نیست.
تاریخچه :
تاریخچه پارادایم چیست؟ پایینترین سطح برنامهنویسی در كامپیوتر، كد ماشین است كه درست معادل
دستوراتی است كه در پردازنده اجرا میشود.
در یك سطح بالاتر، زبان اسمبلی قرار دارد. در این زبان، كد ماشین یك مرحله سادهتر شده و امكان استفاده ازلیبل
برای آدرس حافظه و متغیرها وجود دارد.معمولا به این دو سطح، زبانهای نسل اول و دوم نیز میگویند.
در سال 1960، زبان اسمبلی به دو رویه COPY و CALL مجهز شد كه میتوانست از متغیرهای بیرونی و بخشهای
عمومی پشتیبانی كند و برای نخستینبار امكان استفاده مجدد (re-use) از كد را به وجود آورد
اسمبلی از آنموقع تاكنون برای سیستمهایی كه زمان اجرای دستور در سیستم بسیار حیاتی است،
استفاده میشود و به برنامهنویس، كنترل مستقیم عملكرد كامپیوتر را میدهد.
نسل بعدی زبانهای كامپیوتر (نسل سوم) ـكه به آنها زبانهای سطح بالا نیز میگویند،از عبارات قابل فهم
به عنوان دستور استفاده میكنند.از میان این زبانها میتوان به PL/I ، ALGOL ، FORTRAN ، C و BASIC اشاره كرد.
تمام این زبانها از پارادایم رویهای استفاده و دستورات را خط به خط اجرا میكردند. میزان بازدهی برنامههای
نوشتهشده به این زبان، به تجربه و مهارت برنامه نویس بسیار وابسته بود.
بعد زبانهای شیءگرا به وجود آمد. در این زبانها، داده و متدهای كار با داده در یك واحد به نام شیء قرار داده
میشود. تنها روشی كه میتوان به دادههای موجود در شیء دسترسی پیدا كرد، از طریق متدهاست.
به این ترتیب، بدون اینكه دست به كد بزنیم، میتوانیم با شیء در ارتباط باشیم و مقادیر اشیا را تغییر دهیم ،
هر چند بسیاری از برنامهنویسان مطرح معتقدند استفاده از پارادایم شیءگرا میتواند به نفخ نرمافزار منجر شود
كه برای حل این دغدغه، راهحلی به نام Polymorphism یا چندشكلی را به شیءگرایی اضافه كردند.