ویژوال پرولوگ

**ویژوال پرولوگ** ،که در گذشته با اسم‌های 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") به عنوان راه عبور است،طوری که هیچ دیسک بزرگ‌تری روی دیسک کوچک‌تری وجود نداشته باشد.به عنوان استدلال اولیه،استنتاج "هانوی" یک عدد صحیح برابر با تعداد دیسک‌ها اختیار می‌کند.در واقع،ویژوال پرولوگ به ویژه برای مسائل پیچیده همانند برنامه‌ریزی منابع و... مناسب است.همانطور که مثال نشان می‌دهد،ویژوال پرولوگ می‌تواند برای برنامه‌نویسی سریع در سطح کوچک استفاده شود،ولی اکثراً برای کاربردهای بزرگ قدرت صنعتی بکار گرفته می‌شود.

```visualprolog
class hanoi 
   predicates 
       hanoi : (unsigned N). 
end class hanoi

implement 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 hanoi

goal 
   console::init(), 
   hanoi::hanoi(4).
```


## برنامه‌های کنسول
برای آشنایی بیشتر با برنامهٔ کنسول به مثال آورده شده توجه کنید:
میخواهیم فاکتوریل یک عدد را حساب کنیم،دستورالعمل‌های زیر را دنبال کنید
* یک پروژهٔ جدید ایجاد کنید . کادر project setting را با توجه به اطلاعات زیر تکمیل کنید:


```visual
General
project name:facfun
UI Strategy:console.
```


یک عدد در قسمت اعلان تایپ کنید و فاکتوریل آن را دریافت خواهید کرد.

 
```visualprolog
implement facfun
class predicates
  fact:(integer N,integer Res)procedure(i.o).
clauses
   classinfo("facfun","1.0").

fact(N,1):-N<1,!.
fact(N,N*F):-fact(N-1,F).

run:-console::init(),
   fact(stdio::read(),F),stdio::write(F),stdio::nl.
end implement facfun
goal
  mainExe::run(facfun::run).
```


**توجه:** برای آزمایش و اجرای یک برنامهٔ کنسول از گزینه Build/Run in Window استفاده کنید نه Execute.
## ویدئوهای آموزشی ویژوال پرولوگ
* !Hello World|ویژوال پرولوگ|ویدئوی آموزشی ویژگی پایه‌ای IDE زمان خلق برنامه "!Hello World" را نشان می‌دهد.
* نسخه‌ی نمایشی فورم|ویژوال پرولوگ|ویدئوی آموزشی چگونگی خلق یک فورم و پیوند آن به بخش‌های فهرست انتخاب را نشان می‌دهد.
* سرعت هوش|ویژوال پرولوگ|ویدئوی آموزشی امکانات تکمیل خودکار در IDE را نشان می‌دهد.
## کتاب‌های مرتبط با ویژوال پرولوگ
* Thomas W. de Boer, راهنمای ابتدایی برای ویژوال پرولوگ
** ترجمه چینی
* Eduardo Costa, ویژوال پرولوگ برای تازه کارها
** ترجمه روسی
** ترجمه چینی
* Giovanni Torrero, ویژوال پرولوگ برای مبتدی‌ها *ایتالیایی* 113 صفحه (pdf)
* Randall Scott, کتاب راهنما برای هوش مصنوعی توسط ویژوال پرولوگ، 
## جستارهای وابسته
* برنامه‌نویسی منطقی
* شیءگرا
* زبان برنامه نویسی مرکوری
* برنامه‌نویسی شیءگرا
* پرولوگ
## منابع

* 
## پیوند به بیرون
* صفحه‌ی خانگی ویژوال پرولوگ
** زبان مرجع
** آموزش
** ویکی
** انجمن بحث و گفتگو
* مرکز توسعه‌ی پرولوگ

رده:ابزارهای برنامه‌نویسی برای ویندوز
رده:اشکال‌یاب (برنامه‌نویسی)
رده:زبان‌های برنامه‌نویسی ایستا
رده:زبان‌های برنامه‌نویسی شیءگرا
رده:زبان‌های برنامه‌نویسی کلاس محور
رده:زبان‌های برنامه‌نویسی منطقی
رده:زبان‌های برنامه‌نویسی هم‌روند
رده:کامپایلرها و مفسرهای آزاد
رده:محیط‌های توسعه مجتمع
رده:نرم‌افزارهای بورلند