برنامه‌نویسی اعلانی: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Rezabot (بحث | مشارکت‌ها)
جز ربات: حذف از رده:ویکی‌سازی رباتیک
جز اصلاح نگارش و تصحیح معنایی متن
خط ۱:
{{شیوه‌های برنامه‌نویسی}}
'''برنامه‌نویسی اعلانی'''، در [[علوم رایانه]] یکی از [[پارادایم برنامه نویسی|شیوه‌های برنامه‌نویسی]] است که در آن منطق محاسبات بدون شرح چگونگی انجام آنها بیان می‌شود. برنامه‌های اعلانی تلاش می‌کنند تا با توصیف عملیات مورد نیاز برنامه‌ها بجای توضیح چگونگی انجام عملیات، تاثیرات[[اثر جانبی ([//en.wikipedia.org/wiki/Side_effect_(computer_science) side effects])] درون برنامه‌ها را کاهش و یا به کل ازمیان بردارند که از لحاظ اولویت‌های عملیاتی در تناقض کامل با شیوه [[برنامه‌نویسی دستوری|برنامه‌نویسی دستوری]] می‌باشند. زبانهای دستوری زبان‌هایی هستند که عملیات تحلیلی را برحسب عباراتی که در وضعیت برنامه‌ها تغییراتی ایجاد می‌کنند، شرح می‌دهند حال آنکه زبانهای اعلانی برنامه هارابه عنوان اصول منطق محاسباتی و محاسبات را کسورات و اجزای کوچک درون فضای آن منطق می‌بینند. از آنجا که این زبان می‌تواند تا حد چشمگیری نوشتن برنامه‌های موازی برای [[رایانش موازی]] را آسان و ساده کند توانسته توجه زیادی را به خود معطوف سازد.
 
زبانهای معمول اعلانی شامل [[برنامه‌نویسی تابعی]]، [[عبارت باقاعده]]، [[برنامه‌نویسی منطقی]] می‌شوند.‎[[:w:en:Declarative_Language|۱]]
خط ۶:
== تعریف ==
 
[[زبان ها]] و یا برنامه‌هایزبان‌های اعلانی معمولاً به روشهای گوناگونی معرفی می‌شوند:‎[[:w:en:Declarative_Language|۲]]
* هر سبک برنامه ریزی، که دستوری نباشد.
* هر برنامه‌ای که توضیح دهد چه عملیاتی مورد نیاز است و نه اینکه به توصیف چگونگی انجام آن عملیات بپردازد.
* هر نوع برنامه‌ای که عاری از هر گونه تآثیرات[[اثر جانبی (side effects)]] باشد.
* هر زبانی که در مطابقت کامل و واضح با منطق ریاضیات باشد.
 
== خلاصه ==
زبانزبان‌های اعلانی را می‌توان به منزله چتری فرض کرد که شامل چند نمونه ساختار برنامه نویسی معروف می‌باشد:‎[[:w:en:Declarative_Language|۳]]‎
* برنامه‌های[[برنامه‌نویسی تابعی]] کاربردی(functional programming)
ابندر نوع برنامه‌ها، برنامه‌هایی هستند کهاین باشیوه محاسبات و تحلیلات به مانند ارزیابی توابع ریاضیاتی رفتار می‌کنند و از داده‌های توضیحی (state) و بی ثبات (mutable) دوری می‌کنند. و بر خلاف برنامه‌هایبرنامه‌نویسی دستوری که به تغییرات وضعیت درون برنامه‌ها تاکید دارنددارد به کاربرد توابع تآکید می‌کنندمی‌کند. از جملهٔ این قبیلگونه برنامه‌هازبان‌های برنامه‌نویسی می‌توان به lips،APL[[لیسپ]] و [[ای پی ال]] اشاره کرد که بعدها نمونه‌های پیشرفته آن مانند Schemایجاد[[اسکیم]] ایجاد شد.
* برنامه‌های[[برنامه‌نویسی منطقی]] منطق(logic programming)
برنامهبرنامه‌نویسی ریزی منطقمنطقی به عنوان یک سطح وسیع استفاده از منطق ریاضیات می‌باشد که در زمینه‌های تحلیل و محاسبات کامپیوتری، اثبات تئوریهای علمی، ایجاد مدل و حل مسائل، از این نوع ساختار [[برنامهپارادایم ریزیبرنامه‌نویسی|الگوی برنامه‌نویسی]] استفاده می‌شود. زبانهایی چون svg،html،xsltاز[[پرولوگ]] از نمونه زبانهای منطقبرنامه‌نویسی منطقی به شمار می‌آیند.
این نوع زبان خود به سه دسته برنامه‌های قیدی(constraint programming)، برنامه‌های تحلیل داده(data flow programs)و برنامه‌های (domain specific) تقسیم می‌شود.
برنامه ریزی منطق به عنوان یک سطح وسیع استفاده از منطق ریاضیات می‌باشد که در زمینه‌های تحلیل و محاسبات کامپیوتری، اثبات تئوریهای علمی، ایجاد مدل و حل مسائل، از این نوع ساختار [[برنامه ریزی]] استفاده می‌شود.زبانهایی چون svg،html،xsltاز نمونه زبانهای منطق به شمار می‌آیند.
 
== منابع ==