برنامهنویسی اعلانی
برنامهنویسی اعلانی (به انگلیسی: Declarative programming) یک پارادایم برنامهنویسی است که در آن منطق و هدف محاسبات بدون شرح چگونگی انجام آنها بیان میشود. در این پارادایم تلاش میشود که با توصیف عملیات مورد نیاز بجای توضیح چگونگی انجام عملیات، اثر جانبی برنامهها را کاهش یا به کل ازمیان برداشت که از لحاظ اولویتهای عملیاتی در تناقض کامل با شیوه (برنامهنویسی دستوری) است. زبانهای دستوری زبانهایی هستند که عملیات تحلیلی را برحسب عباراتی که در وضعیت برنامهها تغییراتی ایجاد میکنند، شرح میدهند حال آنکه زبانهای اعلانی برنامهها رابه عنوان اصول منطق محاسباتی و محاسبات را کسورات و اجزای کوچک درون فضای آن منطق میبینند. از آنجا که این زبان میتواند تا حد چشمگیری نوشتن برنامههای موازی برای رایانش موازی را آسان و ساده کند توانسته توجه زیادی را به خود معطوف سازد.
زبانهای معمول اعلانی شامل برنامهنویسی تابعی، عبارت باقاعده، برنامهنویسی منطقی میشوند.
تعریف
زبانهای اعلانی معمولاً به روشهای گوناگونی معرفی میشوند:
- هر زبانی که توضیح دهد چه عملیاتی مورد نیاز است نه اینکه به توصیف چگونگی انجام عملیات بپردازد.
- هر زبانی که عاری از هر گونه اثر جانبی باشد.
- هر زبانی که در مطابقت کامل و واضح با منطق ریاضیات باشد.
خلاصه
زبانهای اعلانی را میتوان به منزله چتری فرض کرد که شامل چند نمونه ساختار برنامهنویسی معروف میباشد:
- برنامهنویسی تابعی (functional programming)
در این شیوه محاسبات و تحلیلات به مانند ارزیابی توابع ریاضیاتی رفتار میکنند و از دادههای توضیحی (state) و بیثبات (mutable) دوری میکنند؛ و بر خلاف برنامهنویسی دستوری که به تغییرات وضعیت درون برنامهها تأکید دارد به کاربرد توابع تآکید میکند. از جملهٔ این گونه زبانهای برنامهنویسی میتوان به لیسپ و ای پی ال اشاره کرد که بعدها نمونههای پیشرفته آن مانند اسکیم ایجاد شد.
- برنامهنویسی منطقی (logic programming)
برنامهنویسی منطقی به عنوان یک سطح وسیع استفاده از منطق ریاضیات میباشد که در زمینههای تحلیل و محاسبات کامپیوتری، اثبات تئوریهای علمی، ایجاد مدل و حل مسائل، از این پارادایم برنامهنویسی استفاده میشود. زبانهایی چون پرولوگ از نمونه زبانهای برنامهنویسی منطقی بهشمار میآیند.