HiLog
ہائی لاگ ایک پروگرامنگ منطق ہے جس میں اعلی ترتیب کی نحو ہے، جو صوابدیدی اصطلاحات کو پیش گوئی اور فنکشن پوزیشنوں میں ظاہر کرنے کی اجازت دیتی ہے۔ تاہم، ہائی لاگ کا ماڈل تھیوری فرسٹ آرڈر ہے۔ اگرچہ نحو طور پر ہائی لاگ سختی سے فرسٹ آرڈر منطق کو بڑھاتا ہے، لیکن ہائی لاگ کو اس منطق میں شامل کیا جا سکتا ہے۔ ہیلوگ کو پہلی بار 1989 میں بیان کیا گیا تھا۔ بعد میں اسے متعدد ترتیب شدہ منطق کی سمت میں بڑھایا گیا۔ ایکس ایس بی سسٹم ہائی لاگ نحو کو تجزیہ کرتا ہے، لیکن ایکس ایس بی میں ہائی لاگ کا انضمام صرف جزوی ہے۔ خاص طور پر، ہائی لاگ ایکس ایس بی ماڈیول سسٹم کے ساتھ مربوط نہیں ہے۔ فلورا-2 نظام میں ہائی لاگ کا مکمل نفاذ دستیاب ہے۔ یہ دکھایا گیا ہے کہ ہائی لاگ کو کافی آسان تبدیلی کے ذریعے فرسٹ آرڈر منطق میں شامل کیا جا سکتا ہے۔ مثال کے طور پر، p (X) (Y، Z (V) (W)) مندرجہ ذیل فرسٹ آرڈر ٹرم کے طور پر سرایت کر جاتا ہے: لاگو کریں (p (X)، Y، لاگو کریں (لاگو کریں (Z، V)، W)۔ رول انٹرچینج فارمیٹ (آر آئی ایف) کا منطق پر مبنی بولیوں کا فریم ورک (آر آئی ایف-ایف ایل ڈی) بڑی حد تک ہائی لاگ اور ایف-منطق کے بنیادی خیالات پر مبنی ہے۔ مثال نیچے دی گئی تمام مثالوں میں، بڑے حروف والی علامتیں متغیرات کی نشاندہی کرتی ہیں اور کوما منطقی امتزاج کی نشاندہی کرتا ہے، جیسا کہ زیادہ تر منطق پروگرامنگ زبانوں میں ہوتا ہے۔ پہلی اور دوسری مثالیں ظاہر کرتی ہیں کہ متغیرات پیش گوئی کی پوزیشنوں میں ظاہر ہو سکتے ہیں۔ پیشن گوئی پیچیدہ اصطلاحات بھی ہو سکتی ہیں، جیسے کہ ذیل میں بندش (پی) یا نقشہ فہرست (ایف)۔ تیسری مثال سے پتہ چلتا ہے کہ متغیرات جوہری فارمولوں کی جگہ بھی ظاہر ہو سکتے ہیں، جبکہ چوتھی مثال فنکشن علامتوں کی جگہ متغیرات کے استعمال کی وضاحت کرتی ہے۔ پہلی مثال ایک عام عارضی بندش آپریٹر کی وضاحت کرتی ہے، جس کا اطلاق صوابدیدی بائنری پیشن گوئی پر کیا جا سکتا ہے۔ دوسری مثال بھی اسی طرح کی ہے۔ یہ ایل آئی ایس پی جیسے نقشہ سازی آپریٹر کی وضاحت کرتا ہے، جو صوابدیدی بائنری پیشن گوئی پر لاگو ہوتا ہے۔ تیسری مثال سے پتہ چلتا ہے کہ پرولاگ میٹا پریڈیکیٹ کال/1 کا اظہار ہائی لاگ میں قدرتی انداز میں اور غیر منطقی خصوصیات کے استعمال کے بغیر کیا جا سکتا ہے۔ آخری مثال ایک پیش گوئی کی وضاحت کرتی ہے جو صوابدیدی بائنری درختوں کو عبور کرتی ہے جس کی نمائندگی پہلے درجے کی اصطلاحات کے طور پر کی جاتی ہے۔ بندش (P) (X، Y) <-P (X، Y)۔ بندش (P) (X، Y) <-P (X، Z)، بندش (P) (Z، Y)۔ نقشہ فہرست (F) ([]، [])۔ نقشہ فہرست (F) ([X|R]، [Y|Z]) <-F (X, Y)، نقشہ فہرست (F) (R, Z)۔ کال کریں (X) <-X. ٹراورس (X (L, R)) <-ٹراورس (L)، ٹراورس (R)۔ مزید پڑھنے کے لیے حوالہ جات منطقی پروگرامنگ زبانیں اعلانیہ پروگرامنگ زبانیں علم کی نمائندگی