ویژوال پرولوگ کیست؟ توضیح بده.
ویژوال پرولوگ ،که در گذشته با اسم‌های PDC Prolog و Turbo Prolog شناخته شده‌بود،یکی از قوی‌ترین طبقه‌بندی‌های گسترش یافتهٔ پرولوگ شیءگرا است.به عنوان مثال Turbo Prolog توسط بورلند به بازار عرضه شد،اما اکنون توسط شرکت Danish،مرکز توسعهٔ پرولوگ (PCD)،توسعه یافته و به بازار عرضه شد.ویژوال پروگ می‌تواند کاربرد-واسط گرافیکی کاربر مایکروسافت ویندوز، کاربرد کنسول، DLLs(پیوندهای پویای کتابخانه‌ها)،و برناهای-CGI را بسازد.ویژوال پرولوگ همچنین می‌تواند با استفاده از ODBC به الگوی جزء تشکیل دهنده شیء و پایگاه داده‌ها پیوند برقرار کند.زبان‌های منطقی به‌طور سنتی تفسیری هستند، ولی ویژوال پرولوگ کامپایلری است که این پیشرفت مهمی را در تبدیل سنتی خطاهای معمولیِ زمان اجرا به هشدارهای کامپایلر،فراهم کرده‌است،که یک استحکام بهتری از کاربردهای خاتمه یافته را تضمین می‌کند.هستهٔ ویژوال پرولوگ مانند پرولوگ سنتی بندهای horn، نوع دادهٔ جبری ، تطبیق الگو و الگوریتم‌های غیر قطعی کنترل شده هستند،و بر خلاف پرولوگ سنتی،ویژوال پرولوگ همواره از نوع دادهٔ ایستا و شدید است.تاریخچه‌ی انتشار بصورت مختصر.نسخه 7.5 شامل سرور http و مولد تجزیه کنندهٔ (1)LALR است. (همچنین نگاه کنید به ویژگی‌های جدید ویژوال پرولوگ 7.5)نسخه 7.4 می‌تواند کد ویندوز 64بیتی را تولید کند. (همچنین نگاه کنید به ویژگی‌های جدید ویژوال پرولوگ 7.4)نسخه 7.3 کلاس‌های ژنریک و رابط‌ها را معرفی کرد.(نگاه کنید به برنامه‌های ژنریک)،حفاظت از مانیتورها (همچنین نگاه کنید به ویژگی‌های جدید ویژوال پرولوگ 7.3)نسخه 7.2 گزاره‌های ناشناس را معرفی کرد.(وابستگی منطقی با تابع‌های ناشناس) و فضای نام‌ها (namespaces).(همچنین نگاه کنید به ویژگی‌های جدید ویژوال پرولوگ 7.2)نسخه 7.0 پارامترهای چندریختی را معرفی کرد.از نسخهٔ 6.0 زبان کاملاً شیءگرا شد.مثال هانوی.در مثال 'برج هانوی'،موتور استنتاج پرولوگ دریافت که چگونه یک پشته شامل تعدادی از دیسک‌های به تدریج کوچک‌تر را در مسیر شرح داده شده یکی یکی از قطب چپ ("left") به قطب راست ("right")جابجا کند،به این معنی که قطب میانی ("centre") به عنوان راه عبور است،طوری که هیچ دیسک بزرگ‌تری روی دیسک کوچک‌تری وجود نداشته باشد.به عنوان استدلال اولیه،استنتاج "هانوی" یک عدد صحیح برابر با تعداد دیسک‌ها اختیار می‌کند.در واقع،ویژوال پرولوگ به ویژه برای مسائل پیچیده همانند برنامه‌ریزی منابع و... مناسب است.همانطور که مثال نشان می‌دهد،ویژوال پرولوگ می‌تواند برای برنامه‌نویسی سریع در سطح کوچک استفاده شود،ولی اکثراً برای کاربردهای بزرگ قدرت صنعتی بکار گرفته می‌شود.class hanoi predicates hanoi : (unsigned N). end class hanoiimplement hanoi domains pole = string. clauses hanoi(N) :- move(N, "left", "centre", "right"). class predicates move : (unsigned N, pole A, pole B, pole C). clauses move(0, _, _, _) :- !. move(N, A, B, C) :- move(N-1, A, C, B), stdio::writef("move a disc from % pole to the % pole\n", A, C), move(N-1, B, A, C). end implement hanoigoal console::init(), hanoi::hanoi(4).برنامه‌های کنسول.برای آشنایی بیشتر با برنامهٔ کنسول به مثال آورده شده توجه کنید:میخواهیم فاکتوریل یک عدد را حساب کنیم،دستورالعمل‌های زیر را دنبال کنیدGeneralproject name:facfunUI Strategy:console.یک عدد در قسمت اعلان تایپ کنید و فاکتوریل آن را دریافت خواهید کرد.implement facfunclass predicates fact:(integer N,integer Res)procedure(i.o).clauses classinfo("facfun","1.0").fact(N,1):-N&lt;1,!.fact(N,N*F):-fact(N-1,F).run:-console::init(), fact(stdio::read(),F),stdio::write(F),stdio::nl.end implement facfungoal mainExe::run(facfun::run).توجه: برای آزمایش و اجرای یک برنامهٔ کنسول از گزینه Build/Run in Window استفاده کنید نه Execute.