All for Joomla All for Webmasters

images/sample/slideshow/logo-loading.png

تالار گفتمان

سوالات خود را جست و جو کنید و اگر جوابی نیافتید، با ایجاد یک بحث جدید، از دیگران راهنمایی بگیرید

حل شده prolog

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

انواع دادهن وع داده در پرولوگ به صورت ترم‌ها تعریف می‌شود که این ترم‌ها می‌توانند اتم ،اعداد ،متغیرها و یا ترکیبی از ترم‌های دیگر باشند. اتم‌ها به طور کلی هیچ معنای ذاتی ندارند و یک سری رشته از حروف یا ... هستند که خواننده پرولوگ آنها را تجزیه کرده است. اتم کلمات آشکار در کد می‌باشند که هیچ نحو خاصی برای آنها در نظر گرفته نشده است مثل:
x, blue ,some ,atom
اعداد که می‌توانند به صورت اعداد شناور ، صحیح و حتی اعدا گویا باشند. متغیر که یک رشتهٔ متشکل از حروف است و می‌تواند نشان دهندهٔ یک واژه باشد و ارزش آنها با توجه به پرولوگ مقداردهی می‌شود. یک واژه مرکب (عمل کننده یا functor) ترکیبی از اتم‌ها است که به صورت یک متغیر با آن رفتار می کنیم و نیز مجموعه‌ای از استدلال هاست که یک نتیجه نهایی درست یا غلط را دربرمی گیرد. .واژه‌های مرکب در یک پرانتز تعریف می‌شوند و به آنها عبارت‌های مرکب نیز اطلاق می‌شود. مثل:
truck_year('Mazda', 1986)
'Person_Friends'(zelda,[tom,jim])
لیست‌ها که یک حالت خاص عبارت‌های ترکیبی هستند و ساختمان داده ایی پیشرفته برای نگهداشتن استدلال‌ها و منطق ها و به طور کلی لیستی از اتم‌ها هستند و بوسیله پرانتز، نقطه و کاما نشان داده می‌شود. رشته‌ها که مجموعه ایی از کارکترها برای نگهداری یونیکدها و نام‌های شخصیت‌های محلی هستند.
:
حلقه ها و بازگشت ها:الگوریتمهای Iterative (پشت سرهمی) می‌توانند بوسیله predicates (گزاره های) بازگشتی به اجرا درآیند. سیستم‌های Prolog معمولاً به روش بهینه سازی معروفی به نام تماس دم (tco) پایبندند که ملتزم به بازگشت قطعی است و حتماً در این روش بهینه سازی می بایست به دم برسند. به همین خاطر در روش بازگشتی از یک پشته با یک نوع محدودیت بهره می‌گیرند و بدین وسیله می‌توانند حلقه‌های متعدد و بازگشتی ، با اطمینان بازگشت به جواب را پاسخ گو باشند.
ملاحظات عملیاتی:یکسری قوانینی تعبیه شده است که در آن کاربر با استفاده از آن ها می‌تواند از ایجاد لوپ‌های تودرتو جلوگیری کند. و البته با نظم دادن به دستورات می‌توان از ایجاد آنها جلوگیری کرد به طور مثال:
predicate1(X) :- predicate2(X,X).
predicate2(X,Y) :- predicate1(X), X \= Y.
برای پرسش
?- predicate1(atom).
ایجاد یک حلقه بی نهایت توسط کاربر می‌کند ولی اگر دستورات را اینگونه نظم دهیم چنین اتفاقی نمی افتد
predicate2(X,Y) :- X \= Y, predicate1(X).
  1. maryam zamani
  2. مهندسی کامپیوتر
  3. دوشنبه, 04 خرداد 1394
  4.  اشتراک
هنوز نظری قرار داده نشده است
پاسخ صحیح
پاسخ صحیح Pending Moderation
1
رای
لغو
جالب بود مرسی
هنوز نظری قرار داده نشده است
  1. بیش از یک ماه پیش
  2. مهندسی کامپیوتر
  3. # لینک
پاسخ صحیح Pending Moderation
1
رای
لغو
مرسی

http://s6.picofile.com/file/8190517834/good_job.jpg
هنوز نظری قرار داده نشده است
  1. بیش از یک ماه پیش
  2. مهندسی کامپیوتر
  3. # 1
پاسخ صحیح Pending Moderation
2
رای
لغو
خواهش میکنم....:) :)
هنوز نظری قرار داده نشده است
  1. بیش از یک ماه پیش
  2. مهندسی کامپیوتر
  3. # 2
  • صفحه :
  • 1


پاسخی ارسال نشده است
همچنین این پست قفل است و امکان ارسال نیز وجود ندارد
ham
javidan
faranovin2
nabisa
nbt.p
pol
tat
ayande
 
 
Top
آیا به تازگی با مجموعه اِپرا آشنا شده اید؟ آیا تمایل دارید اطلاعات بیشتری از ما داشته باشید؟ More details…