ماكليس

ماكليسب (أو ماكليسب ، وتُكتب أحيانًا MacLisp أو MacLISP ) هي لغة برمجة ، وهي لهجة من لغة ليسب . نشأت في مشروع ماك التابع لمعهد ماساتشوستس للتكنولوجيا (MIT) [ 1 ] (والذي اشتُقّ منه اسمها) في أواخر الستينيات، واستندت إلى ليسب 1.5. [ 2 ] كان ريتشارد جرينبلات المطور الرئيسي لقاعدة الشفرة الأصلية لجهاز PDP-6 ؛ [ 1 ] وكان جون إل. وايت مسؤولاً عن صيانتها وتطويرها لاحقًا. بدأ استخدام اسم ماكليسب في أوائل السبعينيات لتمييزها عن النسخ الأخرى من ليسب PDP-6، ولا سيما BBN ليسب .

تاريخ

لغة ماكليسب هي امتداد للغة ليسب 1.5 . [ 3 ] تختلف ماكليسب عن ليسب 1.5 في استخدامها لخلية القيمة للوصول إلى القيم الديناميكية للمتغيرات وتخزينها ؛ [ 4 ] بينما كانت ليسب 1.5 تستخدم بحثًا خطيًا في قائمة الارتباطات لتحديد قيمة المتغير. [ 5 ] يتميز تقييم المتغيرات في ماكليسب بسرعة أكبر ، ولكنه يختلف في دلالات المتغيرات. كما تستخدم ماكليسب وحدات ماكرو للقراءة لجعل الإدخال والإخراج أكثر وضوحًا ، وهو ما يُعرف بالإدخال/الإخراج (I/O). فبدلاً من إدخال ، يمكن إدخال للحصول على نفس التعبير s-expression . على الرغم من أن كلا التطبيقين يضعان الدوال في قائمة الخصائص، إلا أن ماكليسب تستخدم صيغة مختلفة لتعريف الدوال. [ 6 ] كما تتميز ماكليسب بخاصية التحميل عند الطلب. [ 7 ](QUOTE A)'A

بدأ تطوير لغة ماكليسب على أجهزة كمبيوتر PDP-6 و PDP-10 التابعة لشركة ديجيتال إكويبمنت، والتي كانت تعمل بنظام المشاركة الزمنية غير المتوافق (ITS). لاحقًا، تم نقلها إلى جميع أنظمة تشغيل PDP-10 الأخرى، مثل نظام المشاركة الزمنية/نظام التشغيل الكامل ، ونظام TOPS-10 ، ونظام TOPS-20 . كانت النسخة الأصلية مكتوبة بلغة التجميع ، ولكن تم استخدام لغة PL/I في نسخة لاحقة على نظام Multics . شهدت ماكليسب تطورًا ملحوظًا خلال فترة تطويرها، حيث أُضيفت إليها ميزات رئيسية تُقابل عادةً أرقام إصدارات رئيسية في أنظمة لغات البرمجة الأخرى.

استُخدمت لغة ماكليسب لتنفيذ نظام الجبر الحاسوبي ماكسيما (CAS) أو برنامج الجبر الرمزي. كما ساهم تطوير ماكسيما في تطوير العديد من الميزات في ماكليسب. كُتب برنامج SHRDLU (برنامج عالم الكتل) بلغة ماكليسب، ولذلك كانت اللغة شائعة الاستخدام في مجتمع أبحاث الذكاء الاصطناعي حتى أوائل ثمانينيات القرن العشرين. كما استُخدمت لتنفيذ لغات برمجة أخرى، مثل بلانر وسكيم . واستُخدمت لغة مالتي سي إس ماكليسب لتنفيذ أول برنامج إيماكس مبني على لغة ليسب .

كان برنامج Maclisp تطبيقًا مؤثرًا للغة Lisp، ولكنه لم يعد يُحدَّث بانتظام. وهو يعمل الآن على محاكيات PDP-10 ويمكن استخدامه لتجربة برامج الذكاء الاصطناعي المبكرة.

19581960196519701975198019851990199520002005201020152020
 LISP 1، 1.5، LISP 2 (مهجورة)
 ماكليس
 تداخل
 MDL
 آلة التأتأة
 مخطط R5RS R6RS R7RS صغير
 لا شيء
 ZIL (لغة تنفيذ Zork)
 فرانز ليسب
 muLisp
 لغة الشفرة الشائعة معيار ANSI
 لي لِسْب
 مخطط معهد ماساتشوستس للتكنولوجيا
 XLISP
 تي
 شيز سكيم
 إيماكس ليسب
 أوتو ليسب
 PicoLi sp
 غامبيت
 EuLisp
 لغة ISLISP
 أوبن ليسب
 مخطط PLT مضرب
 لغة نيو ليسب
 جنو غايل
 لغة ليسب المرئية
 كلوجر
 قوس
 LFE
 هي

صفات

بدأت لغة ماكليسب بعدد محدود وثابت من أنواع البيانات : cons cell، وatom (الذي سُمّي لاحقًا symbol )، و integer ، و float-point number . وشملت الإضافات اللاحقة: المصفوفات ، التي لم تكن أبدًا من أنواع البيانات الأساسية؛ والأعداد الصحيحة ذات الدقة العشوائية (bignums)؛ والسلاسل النصية ؛ والصفوف . تم تنفيذ جميع الكائنات (باستثناء inums) كمؤشرات ، وتم تحديد نوع بياناتها بواسطة كتلة الذاكرة التي تشير إليها، مع حالة خاصة للأعداد الصغيرة (inums).

يمكن تفسير البرامج أو تجميعها . كان سلوك البرنامج المُجمَّع مماثلاً لسلوك البرنامج المُفسَّر، باستثناء أن المتغيرات المحلية كانت معجمية افتراضيًا في الكود المُجمَّع، ما لم يتم تعريفها كمتغيرات خاصة (SPECIAL)، [ 8 ] ولم يتم إجراء أي فحص للأخطاء للعمليات المضمنة مثل CAR وCDR. أدخل مُجمِّع Ncomplr (منتصف سبعينيات القرن العشرين) دعمًا عدديًا سريعًا للغات Lisp، حيث كان يُولِّد رمز الآلة (التعليمات) للعمليات الحسابية بدلاً من استدعاء إجراءات تفسيرية تُنفَّذ بناءً على نوع البيانات. جعل هذا العمليات الحسابية في Lisp مُقاربة في السرعة لسرعة Fortran في العمليات العددية (مع أن تنفيذ المصفوفات والحلقات في Fortran ظل أسرع بكثير).

كانت النسخة الأصلية محدودةً بذاكرة الكلمات ذات 18 بت في جهاز PDP-10، وبُذلت جهودٌ كبيرةٌ للحفاظ على بساطة التنفيذ وكفاءته. كانت لغة Multics Maclisp تتمتع بمساحة عناوين أكبر بكثير، ولكن استخدامها كان مكلفًا. عندما تجاوزت قدرة الذاكرة والمعالجة في جهاز PDP-10 حدودها، تم اختراع آلة Lisp : لغة Lisp Machine هي الوريث المباشر للغة Maclisp. كانت هناك أيضًا عدة لهجات أخرى للغة Lisp قيد الاستخدام، وأدت الحاجة إلى توحيد مجتمع المطورين إلى ظهور لغة Common Lisp الحديثة .

اسم

سُميت لغة ماكليس نسبةً إلى مشروع ماك ، وهي لا تمت بصلة إلى حاسوب ماكنتوش (ماك) من شركة أبل، الذي سبقته بعقود، ولا إلى جون مكارثي . ولا توجد أي أوجه تشابه بين أنظمة ليسب المختلفة الخاصة بماكنتوش ولغة ماكليس. [ 9 ]

مراجع

  1. 1 2 ليفي، ستيفن (1984). المخترقون: أبطال ثورة الحاسوب . دابلداي. ISBN 0-385-19195-2.
  2. تقرير مرحلي لمشروع ماك الرابع: يوليو 1966 إلى يوليو 1967 (ملف PDF) (تقرير). ndp 19. مؤرشف من الأصل (ملف PDF) بتاريخ 8 مارس 2016. لغة البرمجة عالية المستوى المستخدمة في معظم برنامج مختبر الرؤية هي نظام PDP-6 LISP. يعتمد هذا النظام بشكل أساسي على لغة برمجة LISP 1.5، ولكنه خضع لتعديلات واسعة النطاق في عدة جوانب. تشمل هذه التعديلات العديد من الوظائف والخدمات الجديدة، بما في ذلك إمكانية الربط مع البرامج المكتوبة بلغات أخرى. 
  3. مون 1974 ، ص. 1 
  4. مون 1974 ، ص 47 
  5. في Lisp 1.5، صفحة 13، يتم تقييم ذرةeفي البيئةaباستخدام(cdr (assoc e a)). يتضمن ذلك بحثًا خطيًا في قائمة الارتباطاتa. يُقدَّم وصف أكثر تفصيلًا مع الثوابت العامة والأخطاء في الصفحة 71؛ حيث يتم إجراء بحث خطي في قائمة الخصائص قبل البحث في قائمة الارتباطات.
  6. يستخدم Maclispdefun؛ يستخدم Lisp 1.5define.
  7. مون 1974 ، ص 107 ؛الملكية. autoload
  8. بيتمان، كينت (16 ديسمبر 2007). " دليل ماكليسب المنقح (دليل بيتمان)، طبعة صباح الأحد" . maclisp.info . شركة هايبرميتا. التصريحات والمترجم، مفهوم "المتغيرات" . تم الاطلاع عليه في 20 أكتوبر 2018. إذا تم تعريف المتغير المراد ربطه على أنه خاص، يتم تجميع الربط كشفرة لمحاكاة طريقة ربط المفسر للمتغيرات.
  9. بيتمان، كينت (16 ديسمبر 2007). "دليل ماكليسب المنقح (دليل بيتمان)، طبعة صباح الأحد" . maclisp.info . شركة هايبرميتا. ص 1، الأسئلة الشائعة، س1 . تم الاطلاع عليه في 20 أكتوبر 2018. لم يكن لمشروع ماك أي علاقة بجهاز ماك من آبل. وكذلك لم يكن لماكليسب أي علاقة به .