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