پارادایم برنامه‌نویسی

از ویکی‌پدیا، دانشنامهٔ آزاد

پارادایم‌های برنامه‌نویسی (به انگلیسی: Programming Paradigms)، روش‌های دسته بندی زبان‌های برنامه نویسی براساس ویژگی‌هایشان است. زبان‌ها را می توان به چندین پارادایم دسته بندی نمود.

دغدغه اصلی برخی از پارادایم‌ها عمدتاً مربوط به پیامدهای مدل اجرایی زبان است، همچون این که آیا اثرات جانبی مجاز باشند یا آیا دنباله ای از عملیات توسط مدل اجرایی تعریف شده است یا خیر. پارادایم‌های دیگر عمدتاً با راه‌های سازماندهی کد چون دسته بندی یک کد به واحدهای مختلف و تغییرات کد بر روی هر کدام از این واحدها می پردازند. باز پارادایم‌های دیگری نیز وجود دارند که عمدتاً دغدغه‌شان سبک، نحو و گرامر زبان هاست.

پارادایم‌های برنامه نویسی رایج شامل این مواردند:[۱][۲][۳]

  • دستوری که در آن برنامه‌نویس به ماشین دستور می دهد که چگونه حالت خود را تغییر دهد،
    • رویه‌ای، که در آن دستورها را به رویه‌ها گروه‌بندی می‌کند.
    • شیء گرا، که در آن دستورها را با بخشی از حالتی که بر روی آن عمل می کند، گروه بندی می کند.
  • اعلانی، که در آن برنامه نویس صرفاً خواص مربوط به نتایج مطلوبش را اعلان می کند، نه چگونگی محاسباتش را.
    • تابعی، که در آن نتیجه مطلوب به صورت مقدار مربوط به بکارگیری یک سری از توابع، اعلان می گردد.
    • منطقی، که در آن نتیجه مطلوب به صورت جواب به سؤالی در مورد دستگاهی از حقایق و قواعد اعلان می گردد.
    • ریاضیاتی، که در آن نتیجه مطلوب به صورت راه حلی از یک مسئله بهینه سازی اعلان می گردد.
    • واکنشی، که در آن نتیجه مطلوب به صورت جریان‌های داده‌ای و انتشار تغییرات اعلان می‌شود.

مرور کلی

یک زبان برنامه‌نویسی ممکن است یک یا چند پارادایم برنامه‌نویسی را پشتیبانی نماید. برای مثال، برنامه‌های نوشته شده با سی++ می‌توانند کاملاً به صورت رویه‌ای باشند یا کاملاً منطبق بر پارادایم برنامه‌نویسی شئ‌گرا که در تضاد کامل با پارادایم رویه‌ای بوده یا حتی حاوی عناصری از هر دو پارادایم باشند. تصمیم‌گیری برای چگونگی استفاده از عناصر پارادایم‌های برنامه‌نویسی برعهده طراح برنامه یا برنامه‌نویس می‌باشد.

نمونه‌های مهم

منابع

  1. Nørmark, Kurt. Overview of the four main programming paradigms. Aalborg University, 9 May 2011. Retrieved 22 September 2012.
  2. Frans Coenen (1999-10-11). "Characteristics of declarative programming languages". cgi.csc.liv.ac.uk. Retrieved 2014-02-20.
  3. Michael A. Covington (2010-08-23). "CSCI/ARTI 4540/6540: First Lecture on Symbolic Programming and LISP" (PDF). University of Georgia. Archived from the original (PDF) on 2012-03-07. Retrieved 2013-11-20.

پیوندهای بیرونی