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

ویژوال پرولوگ ،که در گذشته با اسم‌های PDC Prolog و Turbo Prolog شناخته شده‌بود،یکی از قوی‌ترین طبقه‌بندی‌های گسترش یافته‌ی پرولوگ شیءگرا است.به عنوان مثال Turbo Prolog توسط بورلند به بازار عرضه شد،اما اکنون توسط شرکت Danish،مرکز توسعه‌ی پرولوگ (PCD)،توسعه یافته و به بازار عرضه شد.ویژوال پروگ میتواند کاربرد-واسط گرافیکی کاربر مایکروسافت ویندوز، کاربرد کنسول ، DLLs (پیوندهای پویای کتابخانه‌ها)،و برناهای-CGI را بسازد.ویژوال پرولوگ همچنین می‌تواند با استفاده از ODBC به الگوی جزء تشکیل دهنده شیء و پایگاه داده‌ها پیوند برقرار کند.
زبان‌های منطقی بطور سنتی تفسیری هستند، ولی ویژوال پرولوگ کامپایلری است که این پیشرفت مهمی را در تبدیل سنتی خطاهای معمولی زمان اجرا به هشدارهای کامپایلر،فراهم کرده‌است،که یک استحکام بهتری از کاربردهای خاتمه یافته را تضمین می‌کند.
هسته‌ی ویژوال پرولوگ مانند پرولوگ سنتی بندهای horn ، نوع داده‌ی جبری ، تطبیق الگو و الگوریتم‌های غیر قطعی کنترل شده هستند،و بر خلاف پرولوگ سنتی،ویژوال پرولوگ همواره از نوع داده‌ی ایستا و شدید است.
تاریخچه‌ی انتشار بصورت مختصر
نسخه 7.5 شامل سرور http و مولد تجزیه کننده‌ی (1)LALR است. (همچنین نگاه کنید به )
نسخه 7.4 میتواند کد ویندوز 64بیتی را تولید کند. (همچنین نگاه کنید به )
نسخه 7.3 کلاس‌های ژنریک و رابط‌ها را معرفی کرد.(نگاه کنید به برنامه‌های ژنریک )،حفاظت از مانیتورها (همچنین نگاه کنید به )
نسخه 7.2 گزاره‌های ناشناس را معرفی کرد.(وابستگی منطقی با تابع‌های ناشناس) و فضای نام‌ها (namespaces).(همچنین نگاه کنید به )
نسخه 7.0 پارامترهای چندریختی را معرفی کرد.
از نسخه‌ی 6.0 زبان کاملا شیءگرا شد.
مثال هانوی
در مثال برج هانوی،موتور استنتاج پرولوگ دریافت که چگونه یک پشته شامل تعدادی از دیسک‌های به تدریج کوچک‌تر را در مسیر شرح داده شده یکی یکی از قطب چپ ("left") به قطب راست ("right")جابجا کند،به این معنی که قطب میانی ("centre") به عنوان راه عبور است،طوری که هیچ دیسک بزرگ‌تری روی دیسک کوچک‌تری وجود نداشته باشد.به عنوان استدلال اولیه،استنتاج "هانوی" یک عدد صحیح برابر با تعداد دیسک‌ها اختیار می‌کند.در واقع،ویژوال پرولوگ به ویژه برای مسائل پیچیده همانند برنامه‌ریزی منابع و… مناسب است.همانطور که مثال نشان می‌دهد،ویژوال پرولوگ می‌تواند برای برنامه نویسی سریع در سطح کوچک استفاده شود،ولی اکثرا برای کاربردهای بزرگ قدرت صنعتی بکار گرفته می‌شود.
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 را با توجه به اطلاعات زیر تکمیل کنید:
General
project name:facfun
UI Strategy:console.
یک عدد در قسمت اعلان تایپ کنید و فاکتوریل آن را دریافت خواهید کرد.
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, کتاب راهنما برای هوش مصنوعی توسط ویژوال پرولوگ،
برنامه‌نویسی منطقی
Logtalk ،شیءگرا
زبان برنامه نویسی مرکوری،نوع داده ایستا و شدید
برنامه‌نویسی شیءگرا
پرولوگ