سؤال

أعني بالبرمجة المنطقية النموذج الفرعي للغات البرمجة التعريفية.لا تخلط بين هذا السؤال و"ما هي المشكلات التي يمكنك حلها باستخدام طريقة "إذا حدث ذلك؟""

لغة مثل Prolog رائعة جدًا، وتستحق التعلم من أجل التعلم، لكن يجب أن أتساءل ما هي فئة مشاكل العالم الحقيقي التي يتم التعبير عنها بشكل أفضل وحلها بواسطة مثل هذه اللغة.هل هناك لغات أفضل؟هل توجد البرمجة المنطقية باسم آخر في لغات البرمجة الأكثر عصرية؟هل النسخة الساخرة من الإجابة هي نسخة مختلفة من مفارقة بايثون?

هل كانت مفيدة؟

المحلول

النماذج .

وحاسوب الحيوية وكان لمدة 50 عاما. مترجم ليبرالية، والحد الأدنى لغوي، و "القيام الاشياء" غير سهلة، ممتعة وفعالة. SWI-حاسوب له المدمج في التتبع (مصحح)! وحتى رسومية التتبع . يمكنك تغيير رمز على الطاير، وذلك باستخدام make/0، يمكنك تحميل وحدات حيوي، إضافة بضعة أسطر من التعليمات البرمجية دون ترك المترجم، أو تحرير الملف الذي تستخدمه حاليا على الطاير مع edit(1). هل تعتقد أنك قد وجدت مشكلة مع المسند foobar/2؟

?- edit(foobar).

وبمجرد ترك المحرر، هذا الشيء سوف يتم إعادة تجميعها. بالتأكيد، الكسوف يفعل الشيء نفسه لجافا، ولكن جافا ليست بالضبط اللغة النماذج.

وبصرف النظر عن الاشياء النماذج النقي، حاسوب لا يصدق مناسبة تماما ل<م> ترجمة قطعة من المنطق إلى رمز . لذا، البروفر التلقائي وهذا النوع من الاشياء يمكن بسهولة أن تكون مكتوبة في حاسوب.

وكتب أول مترجم إرلانج في برولوج - ولسبب ما، منذ <م> حاسوب هو جيد جدا مناسبة للتحليل، وترميز منطق تجد في الأشجار في التحليل . في الواقع، حاسوب يأتي مع محلل المدمج في! لا، ليس مكتبة، انها في بناء الجملة، وهما DCG الصورة .

وحاسوب هو تستخدم كثيرا في البرمجة اللغوية العصبية، وخاصة في بناء الجملة ودلالات حسابية .

ولكن، وتستخدم بكثرة حاسوب وتقدر حق قدرها. للأسف، يبدو أن تحمل أكاديمي أو "غير صالحة للاستعمال في أي غرض حقيقي" وصمة العار. ولكن يمكن استخدامها على نحو جيد للغاية في العديد من التطبيقات في العالم الحقيقي تنطوي على الحقائق وحساب العلاقات بين الحقائق. انها ليست بشكل جيد للغاية يناسب عدد الطحن، ولكن CS ليس فقط حول عدد الطحن.

نصائح أخرى

منذ برولوج = التوحيد النحوي + تسلسل إلى الوراء + ردل,

تعد معظم الأماكن التي يتم فيها استخدام التوحيد النحوي أيضًا استخدامًا جيدًا لـ Prolog.

استخدامات التوحيد النحوي

  • تحويلات AST
  • اكتب الاستدلال
  • إعادة كتابة المصطلح
  • إثبات النظرية
  • معالجة اللغة الطبيعية
  • نمط مطابقة
  • توليد حالة اختبار اندماجي
  • استخراج الهياكل الفرعية من البيانات المنظمة مثل مستند XML
  • الحساب الرمزي أيحساب التفاضل والتكامل
  • قواعد البيانات الاستنتاجية
  • النظم الخبيرة
  • الذكاء الاصطناعي
  • تفسير
  • لغات الاستعلام

برمجة منطق القيد (CLP)

لقد تم بالفعل ذكر العديد من حالات الاستخدام الجيدة جدًا والمناسبة للبرمجة المنطقية.أود أن أكمل القائمة الحالية بعدة مهام من مجال تطبيقي بالغ الأهمية للبرمجة المنطقية:

تمتزج البرمجة المنطقية بسلاسة أكبر من النماذج الأخرى قيود, ، مما أدى إلى إطار يسمى برمجة منطق القيد.

وهذا يؤدي إلى حلول قيود مخصصة لمختلف المجالات, ، مثل:

  • CLP(فد) ل الأعداد الصحيحة
  • CLP(ب) ل القيم المنطقية
  • CLP(س) ل عاقِل أعداد
  • CLP(R) ل النقطة العائمة أعداد.

تؤدي أدوات حل القيود المخصصة هذه إلى العديد من حالات الاستخدام المهمة للبرمجة المنطقية التي لم يتم ذكرها، والتي سأعرض بعضها أدناه.

عند اختيار نظام Prolog، غالبًا ما تكون قوة وأداء أدوات حل القيود الخاصة به من بين العوامل الحاسمة، خاصة بالنسبة للمستخدمين التجاريين.

CLP(FD) — التفكير في الأعداد الصحيحة

من الناحية العملية، يعد CLP(FD) أحد أهم تطبيقات البرمجة المنطقية، ويستخدم لحل المهام في المجالات التالية، من بين أمور أخرى:

  • جدولة
  • تخصيص الموارد
  • تخطيط
  • كومبيناتوريال الأمثل

يرى لمزيد من المعلومات والعديد من الأمثلة.

CLP(B) — القيود المنطقية

يُستخدم CLP(B) غالبًا فيما يتعلق بما يلي:

  • حل SAT
  • التحقق من الدائرة
  • العد التوافقي

يرى .

CLP(Q) — الأعداد النسبية

يتم استخدام CLP(Q) لحل فئات مهمة من المشكلات التي تنشأ في بحوث العمليات:

  • البرمجة الخطية
  • البرمجة الخطية الصحيحة
  • البرمجة الخطية المختلطة

يرى .

وحاسوب مثالية للمشاكل غير رقمية. هذا يعطي بعض الأمثلة على بعض تطبيقات حاسوب وأنه قد تساعدك على فهم نوع من المشاكل أنه قد حل.

واحدة من الأشياء حاسوب يوفر لك مجانا هو خوارزمية البحث التراجع - هل يمكن تنفيذ ذلك بنفسك، ولكن إذا كان أفضل حل مشكلتك من خلال وجود خوارزمية المتاحة، ثم أنه من الجيد أن استخدامه

وشيئين رأيت أن يكون جيدا في هي البراهين الرياضية وفهم اللغة الطبيعية.

وحاسوب كبيرة في حل الألغاز، وما شابه ذلك. وقال، في مجال لغز حل يجعل من السهل / متوسطة أسهل ولغز معقد يحل أصعب حل اللغز. ومع ذلك، الكتابة يحلون الالغاز للشبكة ومثل مثل Hexiom، سودوكو، أو Nurikabe ليست صعبة للغاية.

واحد الجواب البسيط هو "بناء أنظمة". اللغة المستخدمة لبناء Makefiles (على الأقل، وجزء لوصف تبعيات) هي في الأساس لغة برمجة المنطق، وإن لم يكن حقا "نقية" لغة برمجة المنطق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top