ویژوال پرولوگ
ویژوال پرولوگ ،که در گذشته با اسمهای PDC Prolog و Turbo Prolog شناخته شدهبود،یکی از قویترین طبقهبندیهای گسترش یافتهٔ پرولوگ شیءگرا است.به عنوان مثال Turbo Prolog توسط بورلند به بازار عرضه شد،اما اکنون توسط شرکت Danish،مرکز توسعهٔ پرولوگ (PCD)،توسعه یافته و به بازار عرضه شد.ویژوال پروگ میتواند کاربرد-واسط گرافیکی کاربر مایکروسافت ویندوز، کاربرد کنسول[1]، DLLs[2](پیوندهای پویای کتابخانهها)،و برناهای-CGI را بسازد.ویژوال پرولوگ همچنین میتواند با استفاده از ODBC[3] به الگوی جزء تشکیل دهنده شیء و پایگاه دادهها پیوند برقرار کند.
زبانهای منطقی بهطور سنتی تفسیری هستند، ولی ویژوال پرولوگ کامپایلری است که این پیشرفت مهمی را در تبدیل سنتی خطاهای معمولیِ زمان اجرا به هشدارهای کامپایلر،فراهم کردهاست،که یک استحکام [4] بهتری از کاربردهای خاتمه یافته را تضمین میکند.
هستهٔ ویژوال پرولوگ مانند پرولوگ سنتی بندهای horn[5]، نوع دادهٔ جبری [6]، تطبیق الگو و الگوریتمهای غیر قطعی[7] کنترل شده هستند،و بر خلاف پرولوگ سنتی،ویژوال پرولوگ همواره از نوع دادهٔ ایستا و شدید است.
توسعهدهنده(ها) | مرکز توسعهی پرولوگ |
---|---|
انتشار پایدار | 7.5، ساخنه شد 7501
۸ دسامبر ۲۰۱۴ |
سیستمعامل | مایکروسافت ویندوز /ویندوز ویستا/ویندوز ۷/ویندوز ۸ |
گونه | زبان برنامهنویسی |
پروانه | اختصاصی |
وبگاه |
تاریخچهی انتشار بصورت مختصر
نسخه 7.5 شامل سرور http و مولد تجزیه کنندهٔ (1)LALR است. (همچنین نگاه کنید به ویژگیهای جدید ویژوال پرولوگ 7.5)
نسخه 7.4 میتواند کد ویندوز 64بیتی را تولید کند. (همچنین نگاه کنید به ویژگیهای جدید ویژوال پرولوگ 7.4)
نسخه 7.3 کلاسهای ژنریک و رابطها را معرفی کرد.(نگاه کنید به برنامههای ژنریک[8])،حفاظت از مانیتورها (همچنین نگاه کنید به ویژگیهای جدید ویژوال پرولوگ 7.3)
نسخه 7.2 گزارههای ناشناس را معرفی کرد.(وابستگی منطقی با تابعهای ناشناس) و فضای نامها (namespaces).(همچنین نگاه کنید به ویژگیهای جدید ویژوال پرولوگ 7.2)
نسخه 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[9]،شیءگرا
- زبان برنامه نویسی مرکوری،نوع داده ایستا و شدید
- برنامهنویسی شیءگرا
- پرولوگ
پیوند به بیرون
- en.wikipedia.org