تبلیغات
هوش مصنوعی - برنامه‌نویسی تابعی
 
هوش مصنوعی
 
 
چهارشنبه 29 شهریور 1391 :: نویسنده : sh mirzaei

   یک تابع ریاضی نگاشتی از یکی مجموعه (دامنه) به مجموعه دیگر (برد) است.  تعریف یک تابع توصیفی این نگاشت است که یا بصراحت به وسیله شمارش یا به طور ضمنی به وسیله یک عبارت است.

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

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

LISP    اولین زبان برنامه‌نویسی تابعی است که با استفاده از لیست‌های پیوندی (Linked List) به عنوان ساختار مرکزی داده‌ها ابداع شد.  اولین نگارش محیط برنامه‌نویسی LISP سال ۱۹۶۰ آماده شد که شامل یک مفسر، یک کامپایلر و مکانیزم تخصیص حافظه و برگشت حافظه پویا بود.  یک سال بعد اولین زبان استاندارد با نام LISPY.S معرفی شد، پس از آن تعدادی از نسخه‌ها و محیط‌های برنامه‌نویسی LISP توسعه یافتند، مانند: MacLISP، FranzLISP، InterLISP و… .  هرچند در بعضی از جزئیات خاص متفاوتند، ولی هسته اصلی ساختار جملات (Syntax) و ارتباط بین آنها (Semantic) اساسا یکسان است.  پراستفاده‌ترین نسخه‌های LISP، Common LISP و Schema هستند.  در کنار LISP تعدادی از زبان‌های برنامه‌نویسی تابعی دیگر نیز توسعه یافتند، برای مثال ML که برگرفته از Meta Language است، یک زبان برنامه‌نویسی تابعی با دامنه ایستا (Static) است و تفاوت اصلی آن با زبان LISP در Syntax (گرامر) آن است.  بیشتر شبیه زبان برنامه‌نویسی پاسکال است.  Haskell نیز دارای خاصیت گرامری مشابه با ML با دامنه ایستاست و تفاوت آن زبان ML در آن است که شامل هیچ‌گونه ویژگی دستوری نیست.  لیست‌ها رایج‌ترین ساختار داده در Haskell هستند.


برای گذراندن دوره های تخصصی برنامه نویسی و شبکه به شرکت بین المللی اموزش علوم و فناوری اطلاعات سروش سپاهان ( سیتکو ) مراجعه نمایید.





نوع مطلب :
برچسب ها :




درباره وبلاگ



مدیر وبلاگ : sh mirzaei
نویسندگان
جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :