مقدمة مرئية

لغة البرمجة Visual Prolog ، المعروفة سابقًا باسم PDC Prolog و Turbo Prolog ، هي امتدادٌ للغة Prolog يتميز بنوع بيانات قوي وتوجه كائني . سوّقتها شركة Borland تحت اسم Turbo Prolog (الإصدار 1.0 عام 1986 والإصدار 2.0 عام 1988). وتقوم حاليًا بتطويرها وتسويقها شركة PDC الدنماركية التي ابتكرتها في الأصل. تُتيح Visual Prolog إنشاء تطبيقات واجهة المستخدم الرسومية (GUI) لأنظمة Microsoft Windows ، وتطبيقات سطر الأوامر ، ومكتبات الارتباط الديناميكي ( DLLs )، وبرامج CGI . كما تُتيح الربط بمكونات COM وقواعد البيانات عبر بروتوكول ODBC .

تحتوي لغة Visual Prolog على مُصرّف يُولّد شيفرة الآلة x86 و x86-64 . على عكس لغة Prolog القياسية، فإن البرامج المكتوبة بلغة Visual Prolog ذات كتابة ثابتة . وهذا يسمح باكتشاف بعض الأخطاء أثناء وقت الترجمة بدلاً من وقت التشغيل.

تاريخ

إصدارميزات جديدة
الإصدار 11يقدم هذا البحث عبارات تعليقية للبرمجة غير المتزامنة [ 1 ]
الإصدار 10يقدم هذا الإصدار تعابير الكائنات، ودعم العمليات الرئيسية/التابعة، وعنصر تحكم Microsoft Edge webView2، وبعض الدعم لـ Direct2D + DirectWrite + مكون Windows Imaging . [ 2 ]
الإصدار 9يقدم هذا النظام تعدد الأشكال المحدود، ومسندات التمديد، وقواعد بيانات الحقائق الآمنة للخيوط والخالية من القفل، والمعلمات المسماة. [ 3 ]
الإصدار 8يقدم هذا النظام عارضين، لعرض البيانات بطريقة أكثر سهولة للمستخدم في مصحح الأخطاء والبرنامج قيد التشغيل. [ 4 ]
الإصدار 7.5يحتوي على خادم HTTP ومولد محلل LALR(1). [ 5 ]
الإصدار 7.4يمكنه توليد كود ويندوز 64 بت. [ 6 ]
الإصدار 7.3تم تقديم الفئات والواجهات العامة (انظر البرمجة العامةوالمراقبين المحميين . [ 7 ]
الإصدار 7.2تم تقديم المسندات المجهولة (وهي نظير منطقي للدوال المجهولة ) ومساحات الأسماء. [ 8 ]
الإصدار 7.0تم تقديم تعدد الأشكال البارامتري .
منذ الإصدار 6.0لقد كانت اللغة كائنية التوجه بالكامل .

مثال هانوي

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

class hanoi predicates hanoi : ( unsigned N ). end class hanoi implement hanoi domains pole = left ; center ; right . clauses hanoi ( N ) :- move ( N , left , center , 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 ).

استقبال

أشاد بروس ف. ويبستر من مجلة BYTE بلغة Turbo Prolog في سبتمبر 1986، مصرحًا بأنها أول منتج من Borland يثير إعجابه بقدر ما أثارته لغة Turbo Pascal. أعجبته واجهة المستخدم وسعرها المنخفض، وذكر أن اثنين من أساتذة جامعة بريغهام يونغ أكدا تفوقها على لغة Prolog التي استخدموها في الجامعة. وبينما شكك ويبستر في مدى إقبال السوق على هذه اللغة، خلص إلى أن "Turbo Prolog قد تُمثل قفزة نوعية في تصميم البرمجيات تُضاهي ما مثّلته Turbo Pascal قبل ثلاث سنوات"، وأوصى بها لكل من "يهتم بالذكاء الاصطناعي، وقواعد البيانات، وأنظمة الخبراء، أو بأساليب جديدة في التفكير البرمجي". [ 9 ] وكتب مؤلف آخر في المجلة نفسها في ذلك الشهر أن بناء الجملة غير القياسي والأكثر تنظيمًا في اللغة يجعل "قوائم الشفرة المصدرية أكثر قابلية للقراءة من تلك الخاصة بلغة Prolog القياسية". وبينما أشار إلى أنها تتمتع "بميزات جيدة عديدة"، ذكر أن "نكهة Turbo Pascal في مُترجم Turbo Prolog وقوة تحديد أنواع البيانات... تُشكلان معضلة هوية للغة". وصفه المؤلف بأنه "توربو برولوج"، وخلص إلى أنه "لا ينصح به إذا كنت تفكر جدياً في أن تصبح مبرمج برولوج". [ 10 ] وفي عام 1989، أدرجت المجلة برنامج توربو برولوج 2.0 ضمن الفائزين بجوائز "التميز" في جوائز بايت، مشيدةً بكيفية تطوير بورلاند "لنظام برمجة تطبيقات العالم الحقيقي". [ 11 ]

كتب عن لغة البرمجة المرئية (Visual Prolog)

انظر أيضاً

مراجع